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%2Feditors%2FDistWkspBrowserPage.java;h=b04d1cf3dadbc5e2331d6c0e09a75ff9df94253a;hb=39ceeb3083d5d9df0cf2f93bd26285e4c33234e3;hp=1c3a9fd5c28acf1043f22a3c555f1565444e50ff;hpb=3355fbcd66a8fc061b8ddbf9d287ee4d17734d0e;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/DistWkspBrowserPage.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/DistWkspBrowserPage.java index 1c3a9fd5c..b04d1cf3d 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/DistWkspBrowserPage.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/DistWkspBrowserPage.java @@ -16,7 +16,9 @@ package org.argeo.slc.client.ui.dist.editors; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.jcr.Node; import javax.jcr.NodeIterator; @@ -29,12 +31,12 @@ import javax.jcr.query.qom.QueryObjectModel; import javax.jcr.query.qom.QueryObjectModelFactory; import javax.jcr.query.qom.Selector; -import org.argeo.ArgeoException; +import org.argeo.eclipse.ui.utils.CommandUtils; import org.argeo.jcr.JcrUtils; import org.argeo.slc.SlcException; import org.argeo.slc.client.ui.dist.DistConstants; import org.argeo.slc.client.ui.dist.DistImages; -import org.argeo.slc.client.ui.dist.DistPlugin; +import org.argeo.slc.client.ui.dist.commands.OpenModuleEditor; import org.argeo.slc.jcr.SlcNames; import org.argeo.slc.jcr.SlcTypes; import org.argeo.slc.repo.RepoConstants; @@ -51,7 +53,6 @@ import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeColumn; -import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.editor.FormPage; @@ -85,41 +86,22 @@ public class DistWkspBrowserPage extends FormPage implements DistConstants, ScrolledForm form = managedForm.getForm(); Composite parent = form.getBody(); parent.setLayout(new FillLayout()); - createExportPackageSection(parent); + createMavenBrowserPart(parent); getEditor().getSite().setSelectionProvider(artifactTreeViewer); } catch (RepositoryException e) { throw new SlcException("Cannot create artifact browser page", e); } } - private NodeIterator listNodes(String nodeType, String orderBy) - throws RepositoryException { - QueryManager queryManager = session.getWorkspace().getQueryManager(); - QueryObjectModelFactory factory = queryManager.getQOMFactory(); - - final String nodeSelector = "nodes"; - Selector source = factory.selector(nodeType, nodeSelector); - - Ordering order = factory.ascending(factory.propertyValue(nodeSelector, - orderBy)); - Ordering[] orderings = { order }; - - QueryObjectModel query = factory.createQuery(source, null, orderings, - null); - - QueryResult result = query.execute(); - - return result.getNodes(); - } - - /** Export Package Section */ - private void createExportPackageSection(Composite parent) + /** Aether specific browser for the current workspace */ + private void createMavenBrowserPart(Composite parent) throws RepositoryException { int style = SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER; + Tree tree = new Tree(parent, style); - createColumn(tree, "Artifacts", SWT.LEFT, 300); + createColumn(tree, "Maven browser", SWT.LEFT, 450); tree.setLinesVisible(true); tree.setHeaderVisible(true); @@ -242,35 +224,39 @@ public class DistWkspBrowserPage extends FormPage implements DistConstants, public void doubleClick(DoubleClickEvent event) { Object obj = ((IStructuredSelection) event.getSelection()) .getFirstElement(); - try { - if (obj instanceof Node) { - Node node = (Node) obj; + if (obj instanceof Node) { + Node node = (Node) obj; + try { if (node.isNodeType(SlcTypes.SLC_ARTIFACT_VERSION_BASE)) { - // TODO fix using QOM after jcr upgrade - NodeIterator ni = node.getNodes(); - while (ni.hasNext()) { - Node curr = ni.nextNode(); - if (curr.isNodeType(SlcTypes.SLC_BUNDLE_ARTIFACT)) { - GenericBundleEditorInput gaei = new GenericBundleEditorInput( - curr); - DistPlugin - .getDefault() - .getWorkbench() - .getActiveWorkbenchWindow() - .getActivePage() - .openEditor(gaei, - GenericBundleEditor.ID); + NodeIterator nit = node.getNodes(); + while (nit.hasNext()) { + Node curr = nit.nextNode(); + if (curr.isNodeType(SlcTypes.SLC_ARTIFACT)) { + node = curr; + break; } } } + + if (node.isNodeType(SlcTypes.SLC_ARTIFACT)) { + DistWkspEditorInput dwip = (DistWkspEditorInput) getEditorInput(); + Map params = new HashMap(); + params.put(OpenModuleEditor.PARAM_REPO_NODE_PATH, + dwip.getRepoNodePath()); + params.put(OpenModuleEditor.PARAM_REPO_URI, + dwip.getUri()); + params.put(OpenModuleEditor.PARAM_WORKSPACE_NAME, + dwip.getWorkspaceName()); + String path = node.getPath(); + params.put(OpenModuleEditor.PARAM_MODULE_PATH, path); + CommandUtils.callCommand(OpenModuleEditor.ID, params); + } + } catch (RepositoryException re) { + throw new SlcException("Cannot get path for node " + node + + " while setting parameters for " + + "command OpenModuleEditor", re); } - } catch (RepositoryException re) { - throw new ArgeoException( - "Repository error while getting node info", re); - } catch (PartInitException pie) { - throw new ArgeoException( - "Unexepected exception while opening artifact editor", - pie); + } } } @@ -285,4 +271,25 @@ public class DistWkspBrowserPage extends FormPage implements DistConstants, return result; } + private NodeIterator listNodes(String nodeType, String orderBy) + throws RepositoryException { + QueryManager queryManager = session.getWorkspace().getQueryManager(); + QueryObjectModelFactory factory = queryManager.getQOMFactory(); + + final String nodeSelector = "nodes"; + Selector source = factory.selector(nodeType, nodeSelector); + + Ordering order = factory.ascending(factory.propertyValue(nodeSelector, + orderBy)); + Ordering[] orderings = { order }; + + QueryObjectModel query = factory.createQuery(source, null, orderings, + null); + + QueryResult result = query.execute(); + + return result.getNodes(); + } + + }