Add delete confirmation
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 26 Oct 2012 16:09:55 +0000 (16:09 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 26 Oct 2012 16:09:55 +0000 (16:09 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@5656 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/DeleteNodes.java

index 125511da749aa116c7d883d26026bab542f24982..fba613f5a2de80de426d4ab833b847f08bfe0b2c 100644 (file)
@@ -29,6 +29,7 @@ import org.argeo.jcr.ui.explorer.views.GenericJcrBrowser;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.handlers.HandlerUtil;
@@ -46,11 +47,26 @@ public class DeleteNodes extends AbstractHandler {
        public Object execute(ExecutionEvent event) throws ExecutionException {
                ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
                                .getActivePage().getSelection();
+               if (selection == null || !(selection instanceof IStructuredSelection))
+                       return null;
+
                GenericJcrBrowser view = (GenericJcrBrowser) HandlerUtil
                                .getActiveWorkbenchWindow(event).getActivePage()
                                .findView(HandlerUtil.getActivePartId(event));
 
-               if (selection != null && selection instanceof IStructuredSelection) {
+               // confirmation
+               StringBuffer buf = new StringBuffer("");
+               Iterator<?> lst = ((IStructuredSelection) selection).iterator();
+               while (lst.hasNext()) {
+                       SingleJcrNode sjn = ((SingleJcrNode) lst.next());
+                       buf.append(sjn.getName()).append(' ');
+               }
+               Boolean ok = MessageDialog.openConfirm(
+                               HandlerUtil.getActiveShell(event), "Confirm deletion",
+                               "Do you want to delete " + buf + "?");
+
+               // operation
+               if (ok) {
                        Iterator<?> it = ((IStructuredSelection) selection).iterator();
                        Object obj = null;
                        SingleJcrNode ancestor = null;