import org.argeo.ArgeoException;
import org.argeo.slc.client.ui.dist.DistPlugin;
-import org.argeo.slc.client.ui.dist.utils.CommandHelpers;
+import org.argeo.slc.jcr.SlcTypes;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
/**
* Delete chosen artifacts from the current workspace.
*/
-
public class DeleteArtifacts extends AbstractHandler {
// private static final Log log = LogFactory.getLog(DeleteWorkspace.class);
+
public final static String ID = DistPlugin.ID + ".deleteArtifacts";
public final static String DEFAULT_LABEL = "Delete selected items";
- // public final static String DEFAULT_ICON_PATH = "icons/removeItem.gif";
-
public final static ImageDescriptor DEFAULT_ICON = DistPlugin
.getImageDescriptor("icons/removeItem.gif");
-
public Object execute(ExecutionEvent event) throws ExecutionException {
try {
- IWorkbenchPart activePart = DistPlugin.getDefault().getWorkbench()
- .getActiveWorkbenchWindow().getActivePage().getActivePart();
+ IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
if (activePart instanceof IEditorPart) {
ISelection selector = ((IEditorPart) activePart)
String msg = "Your are about to definitively remove the "
+ ((IStructuredSelection) selector).size()
+ " selected artifacts.\n"
- + "Are you sure you want to proceed ?";
+ + "Are you sure you want to proceed?";
boolean result = MessageDialog.openConfirm(DistPlugin
.getDefault().getWorkbench().getDisplay()
- .getActiveShell(), "Confirm Delete", msg);
+ .getActiveShell(), "Confirm Deletion", msg);
if (result) {
while (it.hasNext()) {
Node node = (Node) it.next();
- // we remove the artifactVersion, that is the parent
- node.getParent().remove();
- node.getSession().save();
+ if (node.isNodeType(SlcTypes.SLC_ARTIFACT)) {
+ // we remove the artifactVersion, that is the parent
+ node.getParent().remove();
+ node.getSession().save();
+ }
}
}
}
}
- CommandHelpers.callCommand(RefreshDistributionOverviewPage.ID);
+ // CommandHelpers.callCommand(RefreshDistributionOverviewPage.ID);
} catch (RepositoryException re) {
throw new ArgeoException(
"Unexpected error while deleting artifacts.", re);