public UnlinkElementsAction() { setImageDescriptor( AbstractUIPlugin.imageDescriptorFromPlugin(FLATTT.ID_PLUGIN, "icons/link_break.png")); setText(FLATTT.getResourceString("actions.UnlinkElementsAction.ToolTip")); // We want to be notified when the active concern model changes ConcernModelFactory.singleton().addListener(this); concernModelProvider = ConcernModelFactory.singleton(); // We want to be notified when any concerns or links are // changed in the active concern model concernModelProvider.getModel().addListener(this); }
/* * Refresh menu when concerns and links change */ @Override public void modelChanged(ConcernEvent events) { if (events.isChangedDomainName()) return; if (events.isChangedActiveConcernModel()) { concernModelProvider.getModel().removeListener(this); concernModelProvider = ConcernModelFactory.singleton(); // We want to be notified when any concerns or links are // changed in the active concern model concernModelProvider.getModel().addListener(this); } boolean hasLinkOrUnlink = false; for (ConcernEvent event : events) { if (event.isLinked() || event.isUnlinked()) { hasLinkOrUnlink = true; break; } } if (hasLinkOrUnlink) Display.getDefault().asyncExec(new UpdateDropDownMenusRunner(events)); }