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%2FOpenGenerateBinariesWizard.java;h=3acbc77d9e851a7490d4c7175b993970fcf9e7fc;hb=bca1c6afbc73093b9dacb47b4dfd304d4d1b32cb;hp=288475f23e8c9170a8352aab4f31fe3f5270e3ab;hpb=abc9e68ee9afc994feb923b40388aca83bdb050f;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/OpenGenerateBinariesWizard.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/OpenGenerateBinariesWizard.java index 288475f23..3acbc77d9 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/OpenGenerateBinariesWizard.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/OpenGenerateBinariesWizard.java @@ -15,27 +15,16 @@ */ package org.argeo.slc.client.ui.dist.commands; -import java.util.Iterator; - -import javax.jcr.Node; -import javax.jcr.RepositoryException; -import javax.jcr.Session; - -import org.argeo.slc.SlcException; import org.argeo.slc.client.ui.dist.DistPlugin; -import org.argeo.slc.client.ui.dist.model.ModularDistBaseElem; -import org.argeo.slc.client.ui.dist.model.WorkspaceElem; import org.argeo.slc.client.ui.dist.utils.CommandHelpers; import org.argeo.slc.client.ui.dist.wizards.GenerateBinariesWizard; +import org.argeo.slc.repo.RepoService; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.handlers.HandlerUtil; @@ -50,43 +39,38 @@ public class OpenGenerateBinariesWizard extends AbstractHandler { public final static String DEFAULT_LABEL = "Generate Aether Index"; public final static ImageDescriptor DEFAULT_ICON = null; + /* DEPENDENCY INJECTION */ + private RepoService repoService; + + // Absolute Coordinates of the current group node + public final static String PARAM_REPO_NODE_PATH = "param.repoNodePath"; + public final static String PARAM_WORKSPACE_NAME = "param.workspaceName"; + public final static String PARAM_MODULE_PATH = "param.modulePath"; + public Object execute(ExecutionEvent event) throws ExecutionException { IWorkbenchPart activePart = DistPlugin.getDefault().getWorkbench() .getActiveWorkbenchWindow().getActivePage().getActivePart(); - if (activePart instanceof IViewPart) { - ISelection selector = ((IViewPart) activePart).getViewSite() - .getSelectionProvider().getSelection(); - if (selector != null && selector instanceof IStructuredSelection) { - Iterator it = ((IStructuredSelection) selector).iterator(); - Object element = it.next(); - if (element instanceof ModularDistBaseElem) { - ModularDistBaseElem elem = (ModularDistBaseElem) element; - Session newSession = null; - try { - Node cBase = elem.getCategoryBase(); - String path = cBase.getPath(); - newSession = ((WorkspaceElem) elem.getParent()) - .getNewSession(); - GenerateBinariesWizard wizard = new GenerateBinariesWizard( - newSession.getNode(path)); + String repoNodePath = event.getParameter(PARAM_REPO_NODE_PATH); + String workspaceName = event.getParameter(PARAM_WORKSPACE_NAME); + String modulePath = event.getParameter(PARAM_MODULE_PATH); + + GenerateBinariesWizard wizard = new GenerateBinariesWizard(repoService, + repoNodePath, workspaceName, modulePath); - WizardDialog dialog = new WizardDialog( - HandlerUtil.getActiveShell(event), wizard); - int result = dialog.open(); + WizardDialog dialog = new WizardDialog( + HandlerUtil.getActiveShell(event), wizard); + int result = dialog.open(); - if (result == Dialog.OK) - CommandHelpers - .callCommand(RefreshDistributionsView.ID); - } catch (RepositoryException re) { - throw new SlcException( - "Unable to duplicate session for node " + elem, - re); - } - } + if (result == Dialog.OK + && (activePart instanceof RefreshDistributionsView)) + CommandHelpers.callCommand(RefreshDistributionsView.ID); - } - } return null; } + + /* DEPENDENCY INJECTION */ + public void setRepoService(RepoService repoService) { + this.repoService = repoService; + } } \ No newline at end of file