Bug 425928 - [Contributions] [regression] A toolbar command from CDT is
not visible in the Debug view toolbar in 4.4
Only consider creating the toolbar if the part itself has already been
instantiated.
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 473076d..7baf907 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
@@ -765,7 +765,7 @@
}
ToolBar newViewTB = null;
- if (needsTB) {
+ if (needsTB && part != null && part.getObject() != null) {
part.getToolbar().setVisible(true);
newViewTB = (ToolBar) renderer.createGui(part.getToolbar(),
ctf.getTopRight(), part.getContext());
diff --git a/tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/tests/workbench/PartRenderingEngineTests.java b/tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/tests/workbench/PartRenderingEngineTests.java
index 3834b36..ef47742 100644
--- a/tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/tests/workbench/PartRenderingEngineTests.java
+++ b/tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/tests/workbench/PartRenderingEngineTests.java
@@ -2171,6 +2171,8 @@
window.setSelectedElement(partStack);
MPart partA = BasicFactoryImpl.eINSTANCE.createPart();
+ partA.setContributionURI("bundleclass://org.eclipse.e4.ui.tests/org.eclipse.e4.ui.tests.workbench.SampleView");
+
partStack.getChildren().add(partA);
partStack.setSelectedElement(partA);
@@ -2178,6 +2180,8 @@
partA.setToolbar(toolBarA);
MPart partB = BasicFactoryImpl.eINSTANCE.createPart();
+ partB.setContributionURI("bundleclass://org.eclipse.e4.ui.tests/org.eclipse.e4.ui.tests.workbench.SampleView");
+
partStack.getChildren().add(partB);
MToolBar toolBarB = MenuFactoryImpl.eINSTANCE.createToolBar();
@@ -2214,6 +2218,8 @@
application.setSelectedElement(window);
MPart part = BasicFactoryImpl.eINSTANCE.createPart();
+ part.setContributionURI("bundleclass://org.eclipse.e4.ui.tests/org.eclipse.e4.ui.tests.workbench.SampleView");
+
window.getSharedElements().add(part);
MToolBar toolBar = MenuFactoryImpl.eINSTANCE.createToolBar();
@@ -2297,6 +2303,8 @@
window.setSelectedElement(partStack);
MPart partA = BasicFactoryImpl.eINSTANCE.createPart();
+ partA.setContributionURI("bundleclass://org.eclipse.e4.ui.tests/org.eclipse.e4.ui.tests.workbench.SampleView");
+
partStack.getChildren().add(partA);
partStack.setSelectedElement(partA);
@@ -2304,6 +2312,8 @@
partA.setToolbar(toolBarA);
MPart partB = BasicFactoryImpl.eINSTANCE.createPart();
+ partB.setContributionURI("bundleclass://org.eclipse.e4.ui.tests/org.eclipse.e4.ui.tests.workbench.SampleView");
+
partStack.getChildren().add(partB);
MToolBar toolBarB = MenuFactoryImpl.eINSTANCE.createToolBar();
@@ -2500,6 +2510,7 @@
application.setSelectedElement(window);
MPart part = BasicFactoryImpl.eINSTANCE.createPart();
+ part.setContributionURI("bundleclass://org.eclipse.e4.ui.tests/org.eclipse.e4.ui.tests.workbench.SampleView");
window.getSharedElements().add(part);
MToolBar toolBar = MenuFactoryImpl.eINSTANCE.createToolBar();
@@ -2569,6 +2580,7 @@
application.setSelectedElement(window);
MPart part = BasicFactoryImpl.eINSTANCE.createPart();
+ part.setContributionURI("bundleclass://org.eclipse.e4.ui.tests/org.eclipse.e4.ui.tests.workbench.SampleView");
window.getSharedElements().add(part);
MToolBar toolBar = MenuFactoryImpl.eINSTANCE.createToolBar();