]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/commands/DeleteResult.java
Adapt demo
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui / src / main / java / org / argeo / slc / client / ui / commands / DeleteResult.java
index 321a6b552a39458cbe8f52b250704f4ffa21248a..5e4636870dcb1f02886f5e4773980b18dc8dfc7b 100644 (file)
@@ -26,6 +26,8 @@ import javax.jcr.Session;
 \r
 import org.argeo.eclipse.ui.ErrorFeedback;\r
 import org.argeo.slc.client.ui.model.ResultFolder;\r
+import org.argeo.slc.client.ui.model.ResultParent;\r
+import org.argeo.slc.client.ui.model.ResultParentUtils;\r
 import org.argeo.slc.client.ui.model.SingleResultNode;\r
 import org.eclipse.core.commands.AbstractHandler;\r
 import org.eclipse.core.commands.ExecutionEvent;\r
@@ -48,9 +50,28 @@ public class DeleteResult extends AbstractHandler {
                final ISelection selection = HandlerUtil\r
                                .getActiveWorkbenchWindow(event).getActivePage().getSelection();\r
 \r
-               if (!MessageDialog.openConfirm(HandlerUtil.getActiveShell(event),\r
-                               "Confirm",\r
-                               "Are you sure that you want to delete these results?"))\r
+               // confirmation\r
+               StringBuffer buf = new StringBuffer("");\r
+               Iterator<?> lst = ((IStructuredSelection) selection).iterator();\r
+               while (lst.hasNext()) {\r
+                       Object obj = lst.next();\r
+                       if (obj instanceof ResultParent) {\r
+                               ResultParent rp = ((ResultParent) obj);\r
+                               buf.append(rp.getName()).append(", ");\r
+                       }\r
+\r
+               }\r
+\r
+               String msg = "Nothing to delete";\r
+               // remove last separator\r
+               if (buf.lastIndexOf(", ") > -1) {\r
+                       msg = "Do you want to delete following objects: "\r
+                                       + buf.substring(0, buf.lastIndexOf(", ")) + "?";\r
+               }\r
+               Boolean ok = MessageDialog.openConfirm(\r
+                               HandlerUtil.getActiveShell(event), "Confirm deletion", msg);\r
+\r
+               if (!ok)\r
                        return null;\r
 \r
                Job job = new Job("Delete results") {\r
@@ -83,7 +104,9 @@ public class DeleteResult extends AbstractHandler {
                                                for (final String path : nodes) {\r
                                                        if (session.itemExists(path)) {\r
                                                                node = session.getNode(path);\r
+                                                               Node parent = node.getParent();\r
                                                                node.remove();\r
+                                                               ResultParentUtils.updateStatusOnRemoval(parent);\r
                                                        }\r
                                                        monitor.worked(1);\r
                                                }\r