- @CanExecute
- public boolean canExecute(@Active MPart part) {
- if (!(part.getObject() instanceof CompatibilityEditor))
- return false;
- CompatibilityEditor editor = (CompatibilityEditor) part.getObject();
- if (!(editor.getPart() instanceof DiagramEditor))
- return false;
- return true;
- }
-
+ private static final String HANDLED_ITEM_ID = "fi.vtt.apros.ui.diagram.handledtoolitem.enableimageeditability";
+
+ @Inject
+ private EModelService modelService;
+
+ private void updateStateForPart(MPart part) {
+ IWorkbenchPart wbPart = tryGetWorkbenchPart(part);
+ if (wbPart != null) {
+ MWindow win = modelService.getTopLevelWindowFor(part);
+ MToolItem item = (MToolItem) modelService.find(HANDLED_ITEM_ID, win);
+ ILayersEditor le = getLayers(wbPart);
+ if (item != null && le != null) {
+ setToolItemState(item, le.getIgnoreFocusSettings());
+ }
+ }
+ }
+
+ // tracks the active part
+ @Inject
+ @Optional
+ public void receiveActivePart(@Named(IServiceConstants.ACTIVE_PART) MPart activePart) {
+ updateStateForPart(activePart);
+ }
+
+ @CanExecute
+ public boolean canExecute(@Active MPart part) {
+ return tryGetWorkbenchPart(part) instanceof DiagramEditor;
+ }
+