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%2FDeleteWorkspace.java;h=dd016268923267a5768c235f8c8ea4d12c300b0f;hb=de4970e4ea18056ef32137834bb0ac59b23117ce;hp=b4982a58e17d8a84e7555b7e11b5ce168c75701a;hpb=60fc68b90de1f65a0d64fe385033e1a9e6de5eef;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/DeleteWorkspace.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DeleteWorkspace.java index b4982a58e..dd0162689 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DeleteWorkspace.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/DeleteWorkspace.java @@ -15,6 +15,7 @@ */ package org.argeo.slc.client.ui.dist.commands; +import javax.jcr.Credentials; import javax.jcr.Node; import javax.jcr.NodeIterator; import javax.jcr.Repository; @@ -26,10 +27,14 @@ import org.argeo.jcr.JcrUtils; import org.argeo.slc.SlcException; import org.argeo.slc.client.ui.dist.DistPlugin; import org.argeo.slc.client.ui.dist.utils.CommandHelpers; +import org.argeo.slc.client.ui.dist.views.DistributionsView; +import org.argeo.slc.client.ui.dist.views.DistributionsView.DistributionViewSelectedElement; 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.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchWindow; /** * Delete chosen workspace in the current repository. @@ -39,21 +44,34 @@ public class DeleteWorkspace extends AbstractHandler { // private static final Log log = LogFactory.getLog(DeleteWorkspace.class); public final static String ID = DistPlugin.ID + ".deleteWorkspace"; - public final static String PARAM_WORKSPACE_NAME = DistPlugin.ID - + ".workspaceName"; public final static String DEFAULT_LABEL = "Clear"; public final static String DEFAULT_ICON_PATH = "icons/removeItem.gif"; - /* DEPENDENCY INJECTION */ private Repository repository; + private Credentials credentials; public Object execute(ExecutionEvent event) throws ExecutionException { - String workspaceName = event.getParameter(PARAM_WORKSPACE_NAME); + String workspaceName = ""; + + IWorkbenchWindow iww = DistPlugin.getDefault().getWorkbench() + .getActiveWorkbenchWindow(); + IWorkbenchPart view = iww.getActivePage().getActivePart(); + if (view instanceof DistributionsView) { + DistributionViewSelectedElement dvse = ((DistributionsView) view) + .getSelectedElement(); + if (dvse != null && (dvse.isWorkspace)) { + repository = dvse.repository; + credentials = dvse.credentials; + workspaceName = dvse.wkspName; + } + } + + if (repository == null) + return null; String msg = "Your are about to completely delete workspace [" + workspaceName + "].\n Do you really want to proceed ?"; - boolean result = MessageDialog.openConfirm(DistPlugin.getDefault() .getWorkbench().getDisplay().getActiveShell(), "Confirm workspace deletion", msg); @@ -74,7 +92,7 @@ public class DeleteWorkspace extends AbstractHandler { if (result) { Session session = null; try { - session = repository.login(workspaceName); + session = repository.login(credentials, workspaceName); // TODO use this with a newer version of Jackrabbit // Workspace wsp = session.getWorkspace(); // wsp.deleteWorkspace(workspaceName); @@ -100,9 +118,4 @@ public class DeleteWorkspace extends AbstractHandler { } return null; } - - /* DEPENDENCY INJECTION */ - public void setRepository(Repository repository) { - this.repository = repository; - } } \ No newline at end of file