]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/editors/DistWkspBrowserPage.java
Clarify SLC project structure.
[gpl/argeo-slc.git] / org.argeo.slc.client.ui.dist / src / org / argeo / slc / client / ui / dist / editors / DistWkspBrowserPage.java
diff --git a/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/editors/DistWkspBrowserPage.java b/org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/editors/DistWkspBrowserPage.java
deleted file mode 100644 (file)
index e377b53..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-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;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.query.QueryManager;
-import javax.jcr.query.QueryResult;
-import javax.jcr.query.qom.Ordering;
-import javax.jcr.query.qom.QueryObjectModel;
-import javax.jcr.query.qom.QueryObjectModelFactory;
-import javax.jcr.query.qom.Selector;
-
-import org.argeo.cms.ui.workbench.util.CommandUtils;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.slc.SlcException;
-import org.argeo.slc.SlcNames;
-import org.argeo.slc.SlcTypes;
-import org.argeo.slc.client.ui.dist.DistConstants;
-import org.argeo.slc.client.ui.dist.DistImages;
-import org.argeo.slc.client.ui.dist.commands.OpenModuleEditor;
-import org.argeo.slc.repo.RepoConstants;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-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.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * Expose Maven artifacts of a given workspace as a tree. Artifacts are grouped
- * by Maven group.
- */
-public class DistWkspBrowserPage extends FormPage implements DistConstants,
-               RepoConstants {
-       // private final static Log log = LogFactory
-       // .getLog(ArtifactsBrowserPage.class);
-
-       final static String PAGE_ID = "artifactsBrowserPage";
-
-       // Business object
-       private Session session;
-
-       // This page widgets
-       private TreeViewer artifactTreeViewer;
-
-       public DistWkspBrowserPage(FormEditor editor, String title, Session session) {
-               super(editor, PAGE_ID, title);
-               this.session = session;
-       }
-
-       @Override
-       protected void createFormContent(IManagedForm managedForm) {
-               try {
-                       ScrolledForm form = managedForm.getForm();
-                       Composite parent = form.getBody();
-                       parent.setLayout(new FillLayout());
-                       createMavenBrowserPart(parent);
-                       getEditor().getSite().setSelectionProvider(artifactTreeViewer);
-               } catch (RepositoryException e) {
-                       throw new SlcException("Cannot create artifact browser page", e);
-               }
-       }
-
-       /** 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, "Maven browser", SWT.LEFT, 450);
-               tree.setLinesVisible(true);
-               tree.setHeaderVisible(true);
-
-               artifactTreeViewer = new TreeViewer(tree);
-
-               artifactTreeViewer.setLabelProvider(new ColumnLabelProvider() {
-                       private static final long serialVersionUID = 2648269889876058461L;
-
-                       @Override
-                       public String getText(Object element) {
-                               Node node = (Node) element;
-                               try {
-                                       if (node.isNodeType(SlcTypes.SLC_GROUP_BASE))
-                                               return JcrUtils.get((Node) element,
-                                                               SlcNames.SLC_GROUP_BASE_ID);
-                                       else if (node.isNodeType(SlcTypes.SLC_ARTIFACT_BASE))
-                                               return JcrUtils.get((Node) element,
-                                                               SlcNames.SLC_ARTIFACT_ID);
-                                       else
-                                               return node.getName();
-                               } catch (RepositoryException e) {
-                                       throw new SlcException("Cannot browse artifacts", e);
-                               }
-                       }
-
-                       @Override
-                       public Image getImage(Object element) {
-                               Node node = (Node) element;
-                               try {
-
-                                       if (node.isNodeType(SlcTypes.SLC_GROUP_BASE))
-                                               return DistImages.IMG_GROUP_BASE;
-                                       else if (node.isNodeType(SlcTypes.SLC_ARTIFACT_BASE))
-                                               return DistImages.IMG_ARTIFACT_BASE;
-                                       else if (node
-                                                       .isNodeType(SlcTypes.SLC_ARTIFACT_VERSION_BASE))
-                                               return DistImages.IMG_ARTIFACT_VERSION_BASE;
-                                       else
-                                               return null;
-                               } catch (RepositoryException e) {
-                                       throw new SlcException("Cannot get images for artifacts", e);
-                               }
-                       }
-               });
-
-               artifactTreeViewer.setContentProvider(new ITreeContentProvider() {
-                       private static final long serialVersionUID = -2381555428857519326L;
-
-                       public void dispose() {
-                       }
-
-                       public void inputChanged(Viewer viewer, Object oldInput,
-                                       Object newInput) {
-                       }
-
-                       public Object[] getElements(Object inputElement) {
-                               try {
-                                       List<Node> nodes = JcrUtils.nodeIteratorToList(listNodes(
-                                                       SlcTypes.SLC_GROUP_BASE, SlcNames.SLC_NAME));
-                                       return nodes.toArray();
-                               } catch (RepositoryException e) {
-                                       throw new SlcException("Cannot list children Nodes", e);
-                               }
-                       }
-
-                       public Object[] getChildren(Object parentElement) {
-                               // Only 3 levels for the time being
-                               try {
-                                       Node pNode = (Node) parentElement;
-                                       if (pNode.isNodeType(SlcTypes.SLC_GROUP_BASE)) {
-                                               return getArtifactBase(pNode,
-                                                               SlcTypes.SLC_ARTIFACT_BASE);
-                                       } else if (pNode.isNodeType(SlcTypes.SLC_ARTIFACT_BASE)) {
-                                               return getArtifactBase(pNode,
-                                                               SlcTypes.SLC_ARTIFACT_VERSION_BASE);
-                                       }
-                                       return null;
-                               } catch (RepositoryException e) {
-                                       throw new SlcException("Cannot list children Nodes", e);
-                               }
-                       }
-
-                       // Helper to get children because current version of Jackrabbit is
-                       // buggy in remote
-                       private Object[] getArtifactBase(Node parent, String nodeType)
-                                       throws RepositoryException {
-                               List<Node> nodes = new ArrayList<Node>();
-                               NodeIterator ni = parent.getNodes();
-                               while (ni.hasNext()) {
-                                       Node node = ni.nextNode();
-                                       if (node.isNodeType(nodeType))
-                                               nodes.add(node);
-                               }
-                               return nodes.toArray();
-                       }
-
-                       public Object getParent(Object element) {
-                               return null;
-                       }
-
-                       public boolean hasChildren(Object element) {
-                               try {
-                                       Node pNode = (Node) element;
-                                       if (pNode.isNodeType(SlcTypes.SLC_GROUP_BASE)
-                                                       || pNode.isNodeType(SlcTypes.SLC_ARTIFACT_BASE)) {
-                                               // might return true even if there is no "valid" child
-                                               return pNode.hasNodes();
-                                       } else
-                                               return false;
-                               } catch (RepositoryException e) {
-                                       throw new SlcException("Cannot check children Nodes", e);
-                               }
-                       }
-               });
-
-               artifactTreeViewer.addDoubleClickListener(new DoubleClickListener());
-
-               artifactTreeViewer.setInput("Initialize");
-       }
-
-       private class DoubleClickListener implements IDoubleClickListener {
-
-               public void doubleClick(DoubleClickEvent event) {
-                       Object obj = ((IStructuredSelection) event.getSelection())
-                                       .getFirstElement();
-                       if (obj instanceof Node) {
-                               Node node = (Node) obj;
-                               try {
-                                       if (node.isNodeType(SlcTypes.SLC_ARTIFACT_VERSION_BASE)) {
-                                               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<String, String> params = new HashMap<String, String>();
-                                               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);
-                               }
-
-                       }
-               }
-       }
-
-       private static TreeColumn createColumn(Tree parent, String name, int style,
-                       int width) {
-               TreeColumn result = new TreeColumn(parent, style);
-               result.setText(name);
-               result.setWidth(width);
-               result.setMoveable(true);
-               result.setResizable(true);
-               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();
-       }
-
-       
-}