/** * @see org.teiid.designer.ui.common.actions.IActionWorker#getEnableState() * @since 4.2 */ @Override public boolean setEnabledState() { boolean enable = false; Object selection = getSelection(); boolean foundResource = false; if (selection instanceof ISelection) { ISelection iSelection = (ISelection) selection; if (!iSelection.isEmpty() && !isReadOnly() && canLegallyEditResource()) { if (SelectionUtilities.isAllEObjects(iSelection)) { enable = true; // check each object, break out if false for (Iterator iter = SelectionUtilities.getSelectedEObjects(iSelection).iterator(); iter.hasNext() && enable; ) { EObject obj = (EObject) iter.next(); // Check Read-Only, Check if Diagram (ask diagram), Check Helper if (obj == null || ModelObjectUtilities.isReadOnly(obj)) { enable = false; // and quit checking } else { if (obj instanceof Diagram) { enable = DiagramHelperManager.canDelete((Diagram) obj); } else { enable = ModelObjectEditHelperManager.canDelete(obj); // and keep checking } // We got this far, now we need to cache up a focused object for opening an editor // so it reveals the proper container (i.e. package diagram) // Only do this once for effiency if (!foundResource && enable) { focusedObject = obj; foundResource = true; modelResource = ModelUtilities.getModelResourceForModelObject(obj); } } if (!enable) break; } } } } if (!enable) { modelResource = null; focusedObject = null; } if (UiPlugin.getDefault().getCurrentWorkbenchWindow().getActivePage() != null) { IWorkbenchPart theActivePart = UiPlugin.getDefault().getCurrentWorkbenchWindow().getActivePage().getActivePart(); if (theActivePart != null) { // System.out.println(" >>> DeleteWorker.setEnabledState() Active Part = " + // theActivePart); } } return enable; }