X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcommands%2FDeleteArtifacts.java;h=b942ead9b3d77e3b14049458041babf9b9de922c;hb=bca1c6afbc73093b9dacb47b4dfd304d4d1b32cb;hp=88e9bdad277d74e58cf9bbf4695506c8ba4e03b8;hpb=651d33e13bfa9a7b46464be412023ee747e612e8;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DeleteArtifacts.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DeleteArtifacts.java index 88e9bdad2..b942ead9b 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DeleteArtifacts.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DeleteArtifacts.java @@ -1,3 +1,18 @@ +/* + * Copyright (C) 2007-2012 Argeo GmbH + * + * 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.slc.client.ui.dist.commands; import java.util.Iterator; @@ -7,30 +22,32 @@ import javax.jcr.RepositoryException; 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.dialogs.MessageDialog; +import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ISelection; 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) @@ -43,23 +60,25 @@ public class DeleteArtifacts extends AbstractHandler { 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);