X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=eclipse%2Fplugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Feditors%2FArtifactDetailsPage.java;fp=eclipse%2Fplugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Feditors%2FArtifactDetailsPage.java;h=0000000000000000000000000000000000000000;hb=651d33e13bfa9a7b46464be412023ee747e612e8;hp=23d0eb67aa297985c522158b5a9dc795654ff736;hpb=868102c0f0220e12eca836b6ec9b3a2b9a3441e4;p=gpl%2Fargeo-slc.git diff --git a/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/ArtifactDetailsPage.java b/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/ArtifactDetailsPage.java deleted file mode 100644 index 23d0eb67a..000000000 --- a/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/editors/ArtifactDetailsPage.java +++ /dev/null @@ -1,370 +0,0 @@ -/* - * Copyright (C) 2007-2012 Mathieu Baudier - * - * 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.editors; - -import java.util.ArrayList; -import java.util.List; - -import javax.jcr.Node; -import javax.jcr.NodeIterator; -import javax.jcr.Property; -import javax.jcr.PropertyIterator; -import javax.jcr.RepositoryException; -import javax.jcr.Value; -import javax.jcr.nodetype.NodeType; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.ArgeoException; -import org.argeo.slc.client.ui.dist.DistImages; -import org.argeo.slc.client.ui.dist.utils.DistUiHelpers; -import org.argeo.slc.client.ui.dist.utils.GenericDoubleClickListener; -import org.argeo.slc.jcr.SlcNames; -import org.argeo.slc.jcr.SlcTypes; -import org.eclipse.jface.viewers.ColumnLabelProvider; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerCell; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Text; -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.FormToolkit; -import org.eclipse.ui.forms.widgets.ScrolledForm; - -/** - * Generic editor property page. Lists all properties of current node as a - * complex tree. TODO: enable editing - */ - -public class ArtifactDetailsPage extends FormPage implements SlcNames, SlcTypes { - private final static Log log = LogFactory.getLog(ArtifactDetailsPage.class); - - // Main business Objects - private Node currentNode; - - // This page widgets - private FormToolkit tk; - private TreeViewer complexTree; - private Text mavenSnippet; - - public ArtifactDetailsPage(FormEditor editor, String title, Node currentNode) { - super(editor, "id", title); - this.currentNode = currentNode; - } - - protected void createFormContent(IManagedForm managedForm) { - tk = managedForm.getToolkit(); - ScrolledForm form = managedForm.getForm(); - GridLayout layout = new GridLayout(1, false); - layout.marginWidth = 5; - form.getBody().setLayout(layout); - - complexTree = createComplexTree(form.getBody()); - createMavenSnipet(form.getBody()); - } - - private TreeViewer createComplexTree(Composite parent) { - int style = SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION; - Tree tree = new Tree(parent, style); - GridData gd = new GridData(GridData.FILL_BOTH); - gd.grabExcessHorizontalSpace = true; - gd.grabExcessVerticalSpace = true; - tree.setLayoutData(gd); - createColumn(tree, "Attribute", SWT.LEFT, 200); - createColumn(tree, "Value", SWT.LEFT, 200); - tree.setLinesVisible(true); - tree.setHeaderVisible(true); - - TreeViewer result = new TreeViewer(tree); - result.setContentProvider(new TreeContentProvider()); - result.setLabelProvider(new TreeLabelProvider()); - - result.setInput(currentNode); - result.expandToLevel(2); - - result.addDoubleClickListener(new GenericDoubleClickListener(result)); - // result.expandAll(); - return result; - } - - private void createMavenSnipet(Composite parent) { - mavenSnippet = new Text(parent, SWT.MULTI | SWT.WRAP | SWT.BORDER); - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.grabExcessHorizontalSpace = true; - gd.heightHint = 75; - mavenSnippet.setLayoutData(gd); - mavenSnippet.setText(generateXmlSnippet()); - } - - // Helpers - private String generateXmlSnippet() { - try { - StringBuffer sb = new StringBuffer(); - sb.append("\n"); - sb.append("\t"); - sb.append(currentNode.getProperty(SLC_GROUP_ID).getString()); - sb.append("\n"); - sb.append("\t"); - sb.append(currentNode.getProperty(SLC_ARTIFACT_ID).getString()); - sb.append("\n"); - sb.append("\t"); - sb.append(currentNode.getProperty(SLC_ARTIFACT_VERSION).getString()); - sb.append("\n"); - sb.append(""); - return sb.toString(); - } catch (RepositoryException re) { - throw new ArgeoException( - "unexpected error while generating maven snippet"); - } - } - - 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; - } - - // View specific object - private class ViewSpecificItems { - private String key; - private Object value; - private boolean isFolder; - private Node curNode; - - public ViewSpecificItems(String key, Object value, boolean isFolder) { - this.key = key; - this.value = value; - this.isFolder = isFolder; - } - - public String getKey() { - return key; - } - - public void setNode(Node node) { - this.curNode = node; - } - - public Node getNode() { - return curNode; - } - - public Object getValue() { - return value; - } - - public boolean isFolder() { - return isFolder; - } - - } - - // providers - private class TreeLabelProvider extends ColumnLabelProvider implements - SlcTypes, SlcNames { - - public void update(ViewerCell cell) { - try { - - int colIndex = cell.getColumnIndex(); - Object element = cell.getElement(); - if (element instanceof Property) { - Property prop = (Property) element; - if (colIndex == 0) - cell.setText(DistUiHelpers.getLabelJcrName(prop - .getName())); - else if (colIndex == 1) - cell.setText(DistUiHelpers.formatValueAsString(prop - .getValue())); - - } else if (element instanceof ViewSpecificItems) { - if (colIndex == 0) - cell.setText(((ViewSpecificItems) element).getKey()); - else if (colIndex == 1) - cell.setText(DistUiHelpers - .formatAsString(((ViewSpecificItems) element) - .getValue())); - - } else if (element instanceof Node) { - Node node = (Node) element; - if (colIndex == 0) { - if (node.isNodeType(NodeType.NT_FILE)) { - cell.setImage(DistImages.IMG_FILE); - cell.setText(node.getName()); - } else if (node.isNodeType(SLC_IMPORTED_PACKAGE)) - cell.setText("Import package"); - else if (node.isNodeType(SLC_EXPORTED_PACKAGE)) - cell.setText("Export package"); - - } else if (colIndex == 1) { - if (node.isNodeType(SLC_ARTIFACT)) { - StringBuffer sb = new StringBuffer(""); - if (node.hasProperty(SLC_ARTIFACT_CLASSIFIER)) { - sb.append(node.getProperty( - SLC_ARTIFACT_CLASSIFIER).getString()); - sb.append(" "); - } - if (node.hasProperty(SLC_ARTIFACT_EXTENSION)) - sb.append(node.getProperty( - SLC_ARTIFACT_EXTENSION).getString()); - cell.setText(sb.toString()); - } else if (node.isNodeType(SLC_IMPORTED_PACKAGE) - || node.isNodeType(SLC_EXPORTED_PACKAGE)) - cell.setText(node.getProperty(SLC_NAME).getString()); - } - } - } catch (RepositoryException e) { - throw new ArgeoException( - "unexpected error while getting artifact information", - e); - } - } - } - - private class TreeContentProvider implements ITreeContentProvider { - public Object[] getElements(Object parent) { - List elements = new ArrayList(); - - try { - Node node = (Node) parent; - elements = new ArrayList(); - - // Maven coordinates - elements.add(node.getProperty(SLC_GROUP_ID)); - elements.add(node.getProperty(SLC_ARTIFACT_ID)); - elements.add(node.getProperty(SLC_ARTIFACT_VERSION)); - - // Meta information - // boolean gotSource = false; - // // TODO: implement this check - // elements.add(new ViewSpecificItems("Sources available", - // gotSource)); - - // Jars - NodeIterator ni = node.getNodes(); - while (ni.hasNext()) { - Node child = ni.nextNode(); - if (child.isNodeType(SLC_ARTIFACT)) { - // we skip sha1 files for the time being. - elements.add(child); - } - } - } catch (RepositoryException e) { - throw new ArgeoException( - "Unexpected exception while listing node properties", e); - } - return elements.toArray(); - } - - public Object getParent(Object child) { - return null; - } - - public Object[] getChildren(Object parent) { - Object[] result = null; - try { - if (parent instanceof Property) { - Property prop = (Property) parent; - if (prop.isMultiple()) { - Value[] values = prop.getValues(); - return values; - } - } else if (parent instanceof Node) { - Node node = (Node) parent; - if (node.hasNodes()) { - List elements = new ArrayList(); - PropertyIterator pi = node.getProperties(); - while (pi.hasNext()) { - Property curProp = pi.nextProperty(); - if (!curProp.getName().startsWith("jcr:") - && !curProp.isMultiple()) - elements.add(curProp); - } - - NodeIterator ni = node.getNodes(); - while (ni.hasNext()) { - Node curNode = ni.nextNode(); - if (curNode.isNodeType(SLC_IMPORTED_PACKAGE) - || curNode.isNodeType(SLC_EXPORTED_PACKAGE)) { - ViewSpecificItems vsi = new ViewSpecificItems( - "Bundle dependencies", "", true); - vsi.setNode(node); - elements.add(vsi); - break; - } - } - return elements.toArray(); - } - } else if (parent instanceof ViewSpecificItems - && ((ViewSpecificItems) parent).isFolder()) { - NodeIterator ni = ((ViewSpecificItems) parent).getNode() - .getNodes(); - List elements = new ArrayList(); - while (ni.hasNext()) { - Node curNode = ni.nextNode(); - if (curNode.isNodeType(SLC_IMPORTED_PACKAGE) - || curNode.isNodeType(SLC_EXPORTED_PACKAGE)) { - elements.add(curNode); - } - } - return elements.toArray(); - } - } catch (RepositoryException e) { - throw new ArgeoException( - "Unexpected error getting multiple values property.", e); - } - return result; - } - - public boolean hasChildren(Object parent) { - try { - if (parent instanceof Property - && ((Property) parent).isMultiple()) { - return true; - } else if (parent instanceof Node && ((Node) parent).hasNodes() - && ((Node) parent).isNodeType(SLC_BUNDLE_ARTIFACT)) { - return true; - } else if (parent instanceof ViewSpecificItems - && ((ViewSpecificItems) parent).isFolder()) { - return true; - } - } catch (RepositoryException e) { - throw new ArgeoException( - "Unexpected exception while checking if property is multiple", - e); - } - return false; - } - - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - } - - public void dispose() { - } - } -}