Extends generic JCR UI components
[lgpl/argeo-commons.git] / eclipse / runtime / org.argeo.eclipse.ui.jcr / src / main / java / org / argeo / eclipse / ui / jcr / browser / NodeLabelProvider.java
index a3ff38fc0e103f5ac106b92b5bf3921af4e1390d..09923199539371b5d712f28090360d3ec12a43ae 100644 (file)
@@ -4,69 +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.argeo.jcr.ArgeoTypes;
 import org.argeo.jcr.RepositoryRegister;
-import org.eclipse.jface.viewers.LabelProvider;
 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 HOME = JcrUiPlugin.getImageDescriptor(
-                       "icons/home.gif").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();
-                               StringBuffer mixins = new StringBuffer("");
-                               for (NodeType type : node.getMixinNodeTypes())
-                                       mixins.append(' ').append(type.getName());
-
-                               return label + " [" + node.getPrimaryNodeType().getName()
-                                               + mixins + "]";
-                       } else if (element instanceof RepositoryRegister) {
-                               return "Repositories";
-                       }
-                       return element.toString();
-               } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get text for of " + element, e);
+               if (element instanceof RepositoryRegister) {
+                       return "Repositories";
                }
+               return super.getText(element);
+       }
+
+       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
+                               + "]";
        }
 
        @Override
        public Image getImage(Object element) {
-               if (element instanceof Node) {
-                       Node node = (Node) element;
-                       try {
-                               // optimized order
-                               if (node.getPrimaryNodeType().isNodeType(NodeType.NT_FILE))
-                                       return FILE;
-                               else if (node.getPrimaryNodeType().isNodeType(
-                                               NodeType.NT_FOLDER))
-                                       return FOLDER;
-                               else if (node.getPrimaryNodeType().isNodeType(
-                                               NodeType.NT_RESOURCE))
-                                       return BINARY;
-                               else if (node.isNodeType(ArgeoTypes.ARGEO_USER_HOME))
-                                       return HOME;
-                       } 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