Bug 506306 - Make use of modelService.getContainer() method in renderer
Change-Id: I457fb0f69ea3d8e1332e55655950350578d8f760
Signed-off-by: Simon Scholz <simon.scholz@vogella.com>
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 6ba9b5a..956ad41 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2015 IBM Corporation and others.
+ * Copyright (c) 2009, 2016 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -9,6 +9,7 @@
* IBM Corporation - initial API and implementation
* Lars Vogel <Lars.Vogel@vogella.com> - Bug 426460, 441150
* Andrey Loskutov <loskutov@gmx.de> - Bug 466524
+ * Simon Scholz <simon.scholz@vogella.com> - Bug 506306
*******************************************************************************/
package org.eclipse.e4.ui.workbench.renderers.swt;
@@ -23,7 +24,6 @@
import org.eclipse.e4.ui.model.application.ui.menu.MMenu;
import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
import org.eclipse.e4.ui.workbench.IPresentationEngine;
-import org.eclipse.emf.ecore.EObject;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
@@ -231,8 +231,7 @@
@Override
public Object getUIContainer(MUIElement element) {
if (element instanceof MToolBar) {
- MUIElement container = (MUIElement) ((EObject) element)
- .eContainer();
+ MUIElement container = modelService.getContainer(element);
MUIElement parent = container.getParent();
if (parent == null) {
MPlaceholder placeholder = container.getCurSharedRef();
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java
index e700adb..85b926e 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java
@@ -17,6 +17,7 @@
* Dirk Fauth <dirk.fauth@googlemail.com> - Bug 460556
* Lars Vogel <Lars.Vogel@vogella.com> - Bug 391430, 472654, 460886
* Daniel Kruegler <daniel.kruegler@gmail.com> - Bug 473779
+ * Simon Scholz <simon.scholz@vogella.com> - Bug 506306
*******************************************************************************/
package org.eclipse.e4.ui.workbench.renderers.swt;
@@ -66,7 +67,6 @@
import org.eclipse.e4.ui.workbench.UIEvents.ElementContainer;
import org.eclipse.e4.ui.workbench.swt.util.ISWTResourceUtilities;
import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.action.AbstractGroupMarker;
import org.eclipse.jface.action.ContributionItem;
import org.eclipse.jface.action.GroupMarker;
@@ -363,7 +363,7 @@
boolean menuBar = false;
if (parent instanceof Decorations) {
- MUIElement container = (MUIElement) ((EObject) element).eContainer();
+ MUIElement container = modelService.getContainer(element);
if (container instanceof MWindow) {
menuManager = getManager(menuModel);
if (menuManager == null) {
@@ -566,7 +566,7 @@
private boolean isPartMenu(MMenu menuModel) {
// don't want popup menus as their visibility does not need to be
// tracked by a separate RunAndTrack
- return !(menuModel instanceof MPopupMenu) && ((EObject) menuModel).eContainer() instanceof MPart;
+ return !(menuModel instanceof MPopupMenu) && modelService.getContainer(menuModel) instanceof MPart;
}
private static ArrayList<ContributionRecord> DEFAULT = new ArrayList<>();
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/PerspectiveRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/PerspectiveRenderer.java
index a392897..2f336fb 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/PerspectiveRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/PerspectiveRenderer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * Copyright (c) 2009, 2016 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -7,6 +7,7 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ * Simon Scholz <simon.scholz@vogella.com> - Bug 506306
*******************************************************************************/
package org.eclipse.e4.ui.workbench.renderers.swt;
@@ -16,7 +17,6 @@
import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
import org.eclipse.e4.ui.services.IStylingEngine;
import org.eclipse.e4.ui.workbench.IPresentationEngine;
-import org.eclipse.emf.ecore.EObject;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
@@ -63,7 +63,7 @@
if (!(element instanceof MWindow))
return super.getUIContainer(element);
- MPerspective persp = (MPerspective) ((EObject) element).eContainer();
+ MUIElement persp = modelService.getContainer(element);
if (persp.getWidget() instanceof Composite) {
Composite comp = (Composite) persp.getWidget();
return comp.getShell();
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolBarManagerRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolBarManagerRenderer.java
index 6784213..200173a 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolBarManagerRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolBarManagerRenderer.java
@@ -14,6 +14,7 @@
* Dirk Fauth <dirk.fauth@googlemail.com> - Bug 431990
* Sopot Cela <scela@redhat.com> - Bug 472761
* Patrik Suzzi <psuzzi@gmail.com> - Bug 473184
+ * Simon Scholz <simon.scholz@vogella.com> - Bug 506306
*******************************************************************************/
package org.eclipse.e4.ui.workbench.renderers.swt;
@@ -59,7 +60,6 @@
import org.eclipse.e4.ui.workbench.UIEvents.ElementContainer;
import org.eclipse.e4.ui.workbench.UIEvents.EventTags;
import org.eclipse.e4.ui.workbench.modeling.EModelService;
-import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.action.AbstractGroupMarker;
import org.eclipse.jface.action.ContributionItem;
import org.eclipse.jface.action.GroupMarker;
@@ -502,7 +502,7 @@
IContributionManagerOverrides overrides = null;
MApplicationElement parentElement = element.getParent();
if (parentElement == null) {
- parentElement = (MApplicationElement) ((EObject) element).eContainer();
+ parentElement = modelService.getContainer(element);
}
if (parentElement != null) {
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/WBWRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/WBWRenderer.java
index 0aed81f..f0d98a3 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/WBWRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/WBWRenderer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2015 IBM Corporation and others.
+ * Copyright (c) 2008, 2016 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -8,7 +8,7 @@
* Contributors:
* IBM Corporation - initial API and implementation
* Lars Vogel <Lars.Vogel@vogella.com> - Bug 429728, 441150, 444410, 472654
- * Simon Scholz <Lars.Vogel@vogella.com> - Bug 429729
+ * Simon Scholz <simon.scholz@vogella.com> - Bug 429729, 506306
* Mike Leneweit <mike-le@web.de> - Bug 444410
*******************************************************************************/
package org.eclipse.e4.ui.workbench.renderers.swt;
@@ -640,7 +640,7 @@
app.setSelectedElement(w);
w.getContext().activate();
} else if (parentME == null) {
- parentME = (MUIElement) ((EObject) w).eContainer();
+ parentME = modelService.getContainer(w);
if (parentME instanceof MContext) {
w.getContext().activate();
}
@@ -686,7 +686,7 @@
}
private void cleanUp(MWindow window) {
- Object parent = ((EObject) window).eContainer();
+ MUIElement parent = modelService.getContainer(window);
if (parent instanceof MApplication) {
MApplication application = (MApplication) parent;
List<MWindow> children = application.getChildren();
@@ -761,7 +761,7 @@
MUIElement parent = element.getParent();
if (parent == null) {
// might be a detached window
- parent = (MUIElement) ((EObject) element).eContainer();
+ parent = modelService.getContainer(element);
return parent == null ? null : parent.getWidget();
}