diff options
| author | Tom Schindl | 2014-05-22 11:50:07 +0000 |
|---|---|---|
| committer | Tom Schindl | 2014-05-22 11:50:07 +0000 |
| commit | 4502836f4026e25f1f4efa71c671c4d001216b5b (patch) | |
| tree | 9eda06a0c14e0862fb271d01675a75df9548a247 | |
| parent | 6e365a59151fd13e1f10a7fe2e22b164256344f4 (diff) | |
| download | org.eclipse.rap.incubator.e4-4502836f4026e25f1f4efa71c671c4d001216b5b.tar.gz org.eclipse.rap.incubator.e4-4502836f4026e25f1f4efa71c671c4d001216b5b.tar.xz org.eclipse.rap.incubator.e4-4502836f4026e25f1f4efa71c671c4d001216b5b.zip | |
Bug 435496 - [e4] RAP renderer does not support ViewMenu & Part-ToolBars
2 files changed, 27 insertions, 6 deletions
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributedPartRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributedPartRenderer.java index 183345d..3bccf45 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributedPartRenderer.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributedPartRenderer.java @@ -27,6 +27,8 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Event; @@ -47,6 +49,9 @@ public class ContributedPartRenderer extends SWTPartRenderer { @Optional private Logger logger; + @Inject + IPresentationEngine renderer; + private MPart partToActivate; private Listener activationListener = new Listener() { @@ -71,11 +76,16 @@ public class ContributedPartRenderer extends SWTPartRenderer { if (!(element instanceof MPart) || !(parent instanceof Composite)) return null; + + Widget parentWidget = (Widget) parent; Widget newWidget = null; final MPart part = (MPart) element; - final Composite newComposite = new Composite((Composite) parentWidget, + boolean contentToolBar = part.getToolbar() != null + && part.getToolbar().getTags().contains("ContentArea"); //$NON-NLS-1$ + + Composite newComposite = new Composite((Composite) parentWidget, SWT.NONE) { /** @@ -113,10 +123,19 @@ public class ContributedPartRenderer extends SWTPartRenderer { } }; - newComposite.setLayout(new FillLayout(SWT.VERTICAL)); - + bindWidget(element, newComposite); newWidget = newComposite; - bindWidget(element, newWidget); + + if (contentToolBar) { + newComposite.setLayout(new GridLayout()); + Control toolbar = (Control) renderer.createGui(part.getToolbar(), + newComposite, part.getContext()); + toolbar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + newComposite = new Composite(newComposite, SWT.NONE); + newComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); + } + + newComposite.setLayout(new FillLayout(SWT.VERTICAL)); // Create a context for this part IEclipseContext localContext = part.getContext(); diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java index e248fbf..3c146f9 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java @@ -720,7 +720,8 @@ public class StackRenderer extends LazyStackRenderer { // Hide the old TB if we're changing if (part != curPart && curPart != null - && curPart.getToolbar() != null) { + && curPart.getToolbar() != null + && !curPart.getToolbar().getTags().contains("ContentArea")) { //$NON-NLS-1$ // RCP does reparenting curPart.getToolbar().setVisible(false); Control c = (Control) curPart.getToolbar().getWidget(); c.setVisible(false); @@ -732,7 +733,8 @@ public class StackRenderer extends LazyStackRenderer { Control[] kids = trComp.getChildren(); boolean needsTB = part != null && part.getToolbar() != null - && part.getToolbar().isToBeRendered(); + && part.getToolbar().isToBeRendered() + && !part.getToolbar().getTags().contains("ContentArea"); //$NON-NLS-1$ // View menu (if any) MMenu viewMenu = getViewMenu(part); |
