/** {@inheritDoc} */ @Override public void dispose() { modelElementChangeListener.remove(); if (meControl != null) { meControl.dispose(); } }
private void updateLink() { if (meControl != null) { meControl.dispose(); } if (labelWidget != null) { labelWidget.dispose(); } EObject opposite = (EObject) getModelElement().eGet(eReference); if (opposite != null) { MELinkControlFactory meLinkControlFactory = new MELinkControlFactory(); meControl = meLinkControlFactory.createMELinkControl( getItemPropertyDescriptor(), opposite, getModelElement(), getContext()); meControl.createControl( linkArea, style, getItemPropertyDescriptor(), opposite, getModelElement(), getToolkit(), getContext()); } else { labelWidget = getToolkit().createLabel(linkArea, "(Not Set)"); labelWidget.setBackground(parent.getBackground()); labelWidget.setForeground(parent.getShell().getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY)); } linkArea.layout(true); composite.layout(true); }