X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fplugins%2Forg.argeo.jcr.ui.explorer%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjcr%2Fui%2Fexplorer%2Fcommands%2FDeleteNodes.java;h=fba613f5a2de80de426d4ab833b847f08bfe0b2c;hb=9e7862a704a33e4e6db79151d7521bf3e03fabd6;hp=a0e106906a3747b297d66f0c392505c761293fbf;hpb=c0b7b3f9d1781d074ab35d24017042fa9415e1e4;p=lgpl%2Fargeo-commons.git diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/DeleteNodes.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/DeleteNodes.java index a0e106906..fba613f5a 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/DeleteNodes.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/DeleteNodes.java @@ -1,3 +1,18 @@ +/* + * Copyright (C) 2007-2012 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.argeo.jcr.ui.explorer.commands; import java.util.Iterator; @@ -14,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; @@ -22,16 +38,35 @@ import org.eclipse.ui.handlers.HandlerUtil; * Deletes the selected nodes: both in the JCR repository and in the UI view. * Warning no check is done, except implementation dependent native checks, * handle with care. + * + * This handler is still 'hard linked' to a GenericJcrBrowser view to enable + * correct tree refresh when a node is added. This must be corrected in future + * versions. */ 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;