diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/actions/DeleteAction.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/actions/DeleteAction.java index 7ba124929da001cd7f1ce567fe3933b647f5b868..c2db7a4e37e1a5266ba4f0512e3d9243ed238c1c 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/actions/DeleteAction.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/actions/DeleteAction.java @@ -52,7 +52,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelEditorBindingService; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating YELLOW Hash: 77B414F02AC48706566ABE2730A3AABB + * @ConQAT.Rating YELLOW Hash: 321312CCB8B9B8E9973A26EEB4C895EF */ public class DeleteAction extends EObjectActionBase<EObject> { @@ -110,6 +110,15 @@ public class DeleteAction extends EObjectActionBase<EObject> { /** Compute if one given target can be deleted. */ private boolean canDelete(EObject target) { + + IWorkbenchPart activePart = + getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart(); + if(activePart instanceof ExtendableMultiPageEditor) { + EObject editedObject = ((ExtendableMultiPageEditor)activePart).getEditedObject(); + if(editedObject.equals(target)) + return false; + } + if(!IPersistencyService.INSTANCE.isTopLevelElement(target)) { // use composition services for deletion return(IElementCompositorService.INSTANCE.canDecompose(target) || IConnectionCompositorService.INSTANCE