X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.akb.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fakb%2Fui%2Fcommands%2FDeleteAkbNodes.java;h=3a3e9a0a9e0804ba112e284f07467775bf93f2f5;hb=0df0d1a404a545baf2fe1e90d67f8235f6c6b47b;hp=2faafa38b7ba88937d1ff8893058afffd5950437;hpb=65c1e73020652f7b70110268de6cc2c89624a9c2;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/DeleteAkbNodes.java b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/DeleteAkbNodes.java index 2faafa38b..3a3e9a0a9 100644 --- a/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/DeleteAkbNodes.java +++ b/plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/commands/DeleteAkbNodes.java @@ -7,6 +7,7 @@ import javax.jcr.Session; import org.argeo.jcr.JcrUtils; import org.argeo.slc.akb.AkbException; +import org.argeo.slc.akb.AkbTypes; import org.argeo.slc.akb.ui.AkbUiPlugin; import org.argeo.slc.akb.ui.editors.AkbNodeEditorInput; import org.argeo.slc.akb.utils.AkbJcrUtils; @@ -48,14 +49,10 @@ public class DeleteAkbNodes extends AbstractHandler { if (nodeJcrId != null) node = session.getNodeByIdentifier(nodeJcrId); - // We must be in a template to delete nodes... - Node template = AkbJcrUtils.getCurrentTemplate(node); - - IEditorPart currPart = currentPage - .findEditor(new AkbNodeEditorInput( - template.getIdentifier(), nodeJcrId)); - if (currPart != null) - currPart.dispose(); + // We must be in a template or on the root of an env instance to + // delete nodes. + Node template = node.isNodeType(AkbTypes.AKB_ENV) ? node + : AkbJcrUtils.getCurrentTemplate(node); if (node != null) { Boolean ok = MessageDialog.openConfirm( @@ -63,6 +60,12 @@ public class DeleteAkbNodes extends AbstractHandler { "Do you want to delete this item?"); if (ok) { + IEditorPart currPart = currentPage + .findEditor(new AkbNodeEditorInput(template + .getIdentifier(), nodeJcrId)); + if (currPart != null) + currentPage.closeEditor(currPart, false); + node.remove(); session.save(); }