Revert "Bug 374568 - Part menu is not rendered correctly after removing menu items"
This reverts commit d0d966c9226abaada1a9b6bc98e4c486ceb4f640.
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 912a15e..0cf54a3 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
@@ -52,7 +52,6 @@
import org.eclipse.e4.ui.model.application.ui.menu.impl.MenuFactoryImpl;
import org.eclipse.e4.ui.workbench.IResourceUtilities;
import org.eclipse.e4.ui.workbench.UIEvents;
-import org.eclipse.e4.ui.workbench.UIEvents.ElementContainer;
import org.eclipse.e4.ui.workbench.modeling.ExpressionContext;
import org.eclipse.e4.ui.workbench.swt.util.ISWTResourceUtilities;
import org.eclipse.emf.common.util.URI;
@@ -209,68 +208,6 @@
}
};
- private EventHandler childUpdater = new EventHandler() {
- public void handleEvent(Event event) {
- // Ensure that this event is for a MMenu
- final Object obj = event.getProperty(UIEvents.EventTags.ELEMENT);
- if (!(obj instanceof MMenu) || (obj instanceof MOpaqueMenu))
- return;
-
- MMenu menuModel = (MMenu) obj;
-
- if (UIEvents.isADD(event)) {
- MenuManager parentManager = getManager(menuModel);
- if (parentManager == null) {
- return;
- }
- Object newValue = event
- .getProperty(UIEvents.EventTags.NEW_VALUE);
- if (newValue instanceof List) {
- for (Object object : (List) newValue) {
- if (object instanceof MMenuElement) {
- modelProcessSwitch(parentManager,
- (MMenuElement) object);
- }
- }
- } else if (newValue instanceof MMenuElement) {
- modelProcessSwitch(parentManager, (MMenuElement) newValue);
- }
- } else if (UIEvents.isREMOVE(event)) {
- MenuManager parentManager = getManager(menuModel);
- if (parentManager == null) {
- return;
- }
- Object oldValue = event
- .getProperty(UIEvents.EventTags.OLD_VALUE);
- if (oldValue instanceof MMenu
- && !(oldValue instanceof MOpaqueMenu)) {
- cleanUp((MMenu) oldValue);
- disposeMenuManager(getManager((MMenu) oldValue),
- parentManager, (MMenu) oldValue);
- } else if (oldValue instanceof MMenuElement) {
- disposeContributionItem(
- getContribution((MMenuElement) oldValue),
- parentManager, (MMenuElement) oldValue);
- parentManager.update(false);
- } else if (oldValue instanceof List) {
- for (Object object : (List) oldValue) {
- if (object instanceof MMenu
- && !(object instanceof MOpaqueMenu)) {
- cleanUp((MMenu) object);
- disposeMenuManager(getManager((MMenu) object),
- parentManager, (MMenu) object);
- } else if (object instanceof MMenuElement) {
- disposeContributionItem(
- getContribution((MMenuElement) object),
- parentManager, (MMenuElement) object);
- }
- }
- parentManager.update(false);
- }
- }
- }
- };
-
private MenuManagerRendererFilter rendererFilter;
@PostConstruct
@@ -280,7 +217,6 @@
eventBroker.subscribe(UIEvents.Item.TOPIC_ENABLED, enabledUpdater);
eventBroker
.subscribe(UIEvents.UIElement.TOPIC_ALL, toBeRenderedUpdater);
- eventBroker.subscribe(ElementContainer.TOPIC_CHILDREN, childUpdater);
context.set(MenuManagerRenderer.class, this);
Display display = context.get(Display.class);
@@ -303,7 +239,6 @@
eventBroker.unsubscribe(selectionUpdater);
eventBroker.unsubscribe(enabledUpdater);
eventBroker.unsubscribe(toBeRenderedUpdater);
- eventBroker.unsubscribe(childUpdater);
ContextInjectionFactory.uninject(MenuManagerEventHelper.showHelper,
context);
@@ -602,19 +537,6 @@
parentManager.update(false);
}
- private void disposeMenuManager(MenuManager menuManager,
- MenuManager parentManager, MMenu modelElement) {
- clearModelToManager(modelElement, menuManager);
- parentManager.remove(menuManager);
- }
-
- private void disposeContributionItem(IContributionItem contributionItem,
- MenuManager parentManager, MMenuElement menuElement) {
- clearModelToContribution(menuElement, contributionItem);
- parentManager.remove(contributionItem);
- // contributionItem.dispose();
- }
-
private void addToManager(MenuManager parentManager, MMenuElement model,
IContributionItem menuManager) {
MElementContainer<MUIElement> parent = model.getParent();
@@ -707,8 +629,8 @@
Object obj = itemModel.getContributionItem();
if (obj instanceof IContextFunction) {
final IEclipseContext lclContext = getContext(itemModel);
- ici = (IContributionItem) ((IContextFunction) obj).compute(
- lclContext, null);
+ ici = (IContributionItem) ((IContextFunction) obj)
+ .compute(lclContext, null);
itemModel.setContributionItem(ici);
} else if (obj instanceof IContributionItem) {
ici = (IContributionItem) obj;