public void handleEvent(Event event) { Object element = event.getProperty(UIEvents.EventTags.ELEMENT); String attName = (String) event.getProperty(UIEvents.EventTags.ATTNAME); if (element instanceof MMenuItem) { MMenuItem itemModel = (MMenuItem) element; if (UIEvents.UIElement.TOBERENDERED.equals(attName)) { Object obj = itemModel.getParent(); if (!(obj instanceof MMenu)) { return; } MenuManager parent = getManager((MMenu) obj); if (itemModel.isToBeRendered()) { if (parent != null) { modelProcessSwitch(parent, itemModel); } } else { IContributionItem ici = getContribution(itemModel); clearModelToContribution(itemModel, ici); if (ici != null && parent != null) { parent.remove(ici); } if (ici != null) { ici.dispose(); } } } } if (UIEvents.UIElement.VISIBLE.equals(attName)) { if (element instanceof MMenu) { MMenu menuModel = (MMenu) element; MenuManager manager = getManager(menuModel); if (manager == null) { return; } manager.setVisible(menuModel.isVisible()); if (manager.getParent() != null) { manager.getParent().markDirty(); } } else if (element instanceof MMenuElement) { MMenuElement itemModel = (MMenuElement) element; Object obj = getContribution(itemModel); if (!(obj instanceof ContributionItem)) { return; } ContributionItem item = (ContributionItem) obj; item.setVisible(itemModel.isVisible()); if (item.getParent() != null) { item.getParent().markDirty(); } } } }
public void handleEvent(Event event) { // Ensure that this event is for a MMenuItem if (!(event.getProperty(UIEvents.EventTags.ELEMENT) instanceof MToolBarElement)) return; MToolBarElement itemModel = (MToolBarElement) event.getProperty(UIEvents.EventTags.ELEMENT); String attName = (String) event.getProperty(UIEvents.EventTags.ATTNAME); if (UIEvents.UIElement.TOBERENDERED.equals(attName)) { Object obj = itemModel.getParent(); if (!(obj instanceof MToolBar)) { return; } ToolBarManager parent = getManager((MToolBar) obj); if (itemModel.isToBeRendered()) { if (parent != null) { modelProcessSwitch(parent, itemModel); parent.update(true); ToolBar tb = parent.getControl(); if (tb != null && !tb.isDisposed()) { tb.pack(true); tb.getShell().layout(new Control[] {tb}, SWT.DEFER); } } } else { IContributionItem ici = modelToContribution.remove(itemModel); if (ici != null && parent != null) { parent.remove(ici); } if (ici != null) { ici.dispose(); } } } else if (UIEvents.UIElement.VISIBLE.equals(attName)) { IContributionItem ici = getContribution(itemModel); if (ici == null) { return; } ici.setVisible(itemModel.isVisible()); ToolBarManager parent = (ToolBarManager) ((ContributionItem) ici).getParent(); if (parent != null) { parent.markDirty(); parent.update(true); // MUIElement tbModel = itemModel.getParent(); // disposeToolbarIfNecessary((MToolBar) tbModel); ToolBar tb = parent.getControl(); if (tb != null && !tb.isDisposed()) { tb.pack(true); tb.getShell().layout(new Control[] {tb}, SWT.DEFER); } } } }
/** @see IContributionItem#dispose() */ @Override public void dispose() { item.dispose(); }