public void widgetDisposed(DisposeEvent e) { MUIElement element = (MUIElement) e.widget .getData(OWNING_ME); if (element != null) unbindWidget(element); } });
@Override public Object unbindWidget(MUIElement me) { MRenderedMenu menuModel = (MRenderedMenu) me; Object contributionManager = menuModel.getContributionManager(); if (contributionManager instanceof IMenuManager) { ((IMenuManager) contributionManager).dispose(); } return super.unbindWidget(me); }
@Override public Object unbindWidget(MUIElement me) { MRenderedMenuItem item = (MRenderedMenuItem) me; Object contributionItem = item.getContributionItem(); if (contributionItem instanceof ExtensionPointProxy) { ExtensionPointProxy proxy = (ExtensionPointProxy) contributionItem; Object delegate = proxy.getDelegate(); if (delegate instanceof IContributionItem) { ((IContributionItem) delegate).dispose(); } } else if (contributionItem instanceof IContributionItem) { ((IContributionItem) contributionItem).dispose(); } return super.unbindWidget(me); }
public void disposeWidget(MUIElement element) { if (element.getWidget() instanceof Widget) { Widget curWidget = (Widget) element.getWidget(); if (curWidget != null && !curWidget.isDisposed()) { unbindWidget(element); try { curWidget.dispose(); } catch (Exception e) { Logger logService = context.get(Logger.class); if (logService != null) { String msg = "Error disposing widget for : " + element.getClass().getName(); //$NON-NLS-1$ if (element instanceof MUILabel) { msg += ' ' + ((MUILabel) element) .getLocalizedLabel(); } logService.error(e, msg); } } } } element.setWidget(null); }
@Override public void bindWidget(MUIElement me, Object widget) { if (widget instanceof Widget) { ((Widget) widget).setData(OWNING_ME, me); // Set up the CSS Styling parameters; id & class setCSSInfo(me, widget); // Ensure that disposed widgets are unbound form the model Widget swtWidget = (Widget) widget; swtWidget.addDisposeListener(e -> { MUIElement element = (MUIElement) e.widget .getData(OWNING_ME); if (element != null) unbindWidget(element); }); } // Create a bi-directional link between the widget and the model me.setWidget(widget); }
@Override public void disposeWidget(MUIElement element) { if (element.getWidget() instanceof Widget) { Widget curWidget = (Widget) element.getWidget(); if (curWidget != null && !curWidget.isDisposed()) { unbindWidget(element); try { curWidget.dispose(); } catch (Exception e) { Logger logService = context.get(Logger.class); if (logService != null) { String msg = "Error disposing widget for : " + element.getClass().getName(); //$NON-NLS-1$ if (element instanceof MUILabel) { msg += ' ' + ((MUILabel) element) .getLocalizedLabel(); } logService.error(e, msg); } } } } element.setWidget(null); }