]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/browser/NodeLabelProvider.java
Improve JCR UI
[lgpl/argeo-commons.git] / eclipse / runtime / org.argeo.eclipse.ui.jcr / src / main / java / org / argeo / eclipse / ui / jcr / browser / NodeLabelProvider.java
index 71157aae14015ee393770b496203e1ef52a01fa9..09923199539371b5d712f28090360d3ec12a43ae 100644 (file)
@@ -4,72 +4,36 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.jcr.DefaultNodeLabelProvider;
 import org.argeo.eclipse.ui.jcr.JcrUiPlugin;
-import org.eclipse.jface.viewers.LabelProvider;
+import org.argeo.jcr.RepositoryRegister;
 import org.eclipse.swt.graphics.Image;
 
-public class NodeLabelProvider extends LabelProvider {
+public class NodeLabelProvider extends DefaultNodeLabelProvider {
        // Images
-       public final static Image NODE = JcrUiPlugin.getImageDescriptor(
-                       "icons/node.gif").createImage();
-       public final static Image FOLDER = JcrUiPlugin.getImageDescriptor(
-                       "icons/folder.gif").createImage();
-       public final static Image FILE = JcrUiPlugin.getImageDescriptor(
-                       "icons/file.gif").createImage();
-       public final static Image BINARY = JcrUiPlugin.getImageDescriptor(
-                       "icons/binary.png").createImage();
+       public final static Image REPOSITORIES = JcrUiPlugin.getImageDescriptor(
+                       "icons/repositories.gif").createImage();
 
        public String getText(Object element) {
-               try {
-                       if (element instanceof Node) {
-                               Node node = (Node) element;
-                               String label = node.getName();
-                               // try {
-                               // Item primaryItem = node.getPrimaryItem();
-                               // label = primaryItem instanceof Property ? ((Property)
-                               // primaryItem)
-                               // .getValue().getString()
-                               // + " ("
-                               // + node.getName()
-                               // + ")" : node.getName();
-                               // } catch (RepositoryException e) {
-                               // label = node.getName();
-                               // }
-                               StringBuffer mixins = new StringBuffer("");
-                               for (NodeType type : node.getMixinNodeTypes())
-                                       mixins.append(' ').append(type.getName());
+               if (element instanceof RepositoryRegister) {
+                       return "Repositories";
+               }
+               return super.getText(element);
+       }
 
-                               // System.out.println("URL : "
-                               // + createDownloadHtml("test.pdf", "Downlad"));
+       protected String getText(Node node) throws RepositoryException {
+               String label = node.getName();
+               StringBuffer mixins = new StringBuffer("");
+               for (NodeType type : node.getMixinNodeTypes())
+                       mixins.append(' ').append(type.getName());
 
-                               return label + " [" + node.getPrimaryNodeType().getName()
-                                               + mixins + "]";
-                               // + createDownloadHtml("test.pdf", "Downlad");
-                       }
-                       return element.toString();
-               } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get text for of " + element, e);
-               }
+               return label + " [" + node.getPrimaryNodeType().getName() + mixins
+                               + "]";
        }
 
        @Override
        public Image getImage(Object element) {
-               if (element instanceof Node) {
-                       Node node = (Node) element;
-                       try {
-                               if (node.getPrimaryNodeType().isNodeType(NodeType.NT_FOLDER))
-                                       return FOLDER;
-                               else if (node.getPrimaryNodeType().isNodeType(NodeType.NT_FILE))
-                                       return FILE;
-                               else if (node.getPrimaryNodeType().isNodeType(
-                                               NodeType.NT_RESOURCE))
-                                       return BINARY;
-                       } catch (RepositoryException e) {
-                               // silent
-                       }
-                       return NODE;
-               } else if (element instanceof RepositoryNode) {
+               if (element instanceof RepositoryNode) {
                        if (((RepositoryNode) element).getDefaultSession() == null)
                                return RepositoryNode.REPOSITORY_DISCONNECTED;
                        else
@@ -79,6 +43,8 @@ public class NodeLabelProvider extends LabelProvider {
                                return WorkspaceNode.WORKSPACE_DISCONNECTED;
                        else
                                return WorkspaceNode.WORKSPACE_CONNECTED;
+               } else if (element instanceof RepositoryRegister) {
+                       return REPOSITORIES;
                }
                return super.getImage(element);
        }