X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Fruntime%2Forg.argeo.eclipse.ui.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Feclipse%2Fui%2Fjcr%2Fcommands%2FDeleteNode.java;fp=eclipse%2Fruntime%2Forg.argeo.eclipse.ui.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Feclipse%2Fui%2Fjcr%2Fcommands%2FDeleteNode.java;h=5133b04b628fd300ff501c071fb2f73f93832b69;hb=5a00c032d8c7b9617777db83b0a6d60ab6b74d18;hp=93304fd705e476603d9b7fe0dcb5551a793befac;hpb=83ef626b9f83190a67ba94709d2f2009626813f6;p=lgpl%2Fargeo-commons.git diff --git a/eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/commands/DeleteNode.java b/eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/commands/DeleteNode.java index 93304fd70..5133b04b6 100644 --- a/eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/commands/DeleteNode.java +++ b/eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/commands/DeleteNode.java @@ -4,6 +4,8 @@ import java.util.Iterator; import javax.jcr.Node; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.argeo.eclipse.ui.dialogs.Error; import org.argeo.eclipse.ui.jcr.views.GenericJcrBrowser; import org.eclipse.core.commands.AbstractHandler; @@ -15,6 +17,7 @@ import org.eclipse.ui.handlers.HandlerUtil; /** Deletes the selected nodes */ public class DeleteNode extends AbstractHandler { + private static Log log = LogFactory.getLog(DeleteNode.class); public Object execute(ExecutionEvent event) throws ExecutionException { ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event) @@ -24,7 +27,6 @@ public class DeleteNode extends AbstractHandler { .findView(HandlerUtil.getActivePartId(event)); if (selection != null && selection instanceof IStructuredSelection) { Iterator it = ((IStructuredSelection) selection).iterator(); - Object obj = null; try { while (it.hasNext()) { @@ -32,9 +34,17 @@ public class DeleteNode extends AbstractHandler { if (obj instanceof Node) { Node node = (Node) obj; Node parentNode = node.getParent(); + log.debug("Node ids : node :" + node.getIdentifier() + + " - pNode : " + parentNode.getIdentifier()); node.remove(); - view.nodeRemoved(parentNode); + + // Postpone the refresh after the session.save + // view.nodeRemoved(parentNode); + node.getSession().save(); + if (log.isDebugEnabled()) + log.debug("session saved"); + view.nodeRemoved(parentNode); } } } catch (Exception e) { @@ -43,5 +53,4 @@ public class DeleteNode extends AbstractHandler { } return null; } - }