]> git.argeo.org Git - lgpl/argeo-commons.git/blob - eclipse/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/browser/NodeLabelProvider.java
-> Finalisation of file download for RAP
[lgpl/argeo-commons.git] / eclipse / runtime / org.argeo.eclipse.ui.jcr / src / main / java / org / argeo / eclipse / ui / jcr / browser / NodeLabelProvider.java
1 package org.argeo.eclipse.ui.jcr.browser;
2
3 import javax.jcr.Node;
4 import javax.jcr.RepositoryException;
5 import javax.jcr.nodetype.NodeType;
6
7 import org.argeo.ArgeoException;
8 import org.argeo.eclipse.ui.jcr.JcrUiPlugin;
9 import org.eclipse.jface.viewers.LabelProvider;
10 import org.eclipse.swt.graphics.Image;
11
12 public class NodeLabelProvider extends LabelProvider {
13 // Images
14 public final static Image NODE = JcrUiPlugin.getImageDescriptor(
15 "icons/node.gif").createImage();
16 public final static Image FOLDER = JcrUiPlugin.getImageDescriptor(
17 "icons/folder.gif").createImage();
18 public final static Image FILE = JcrUiPlugin.getImageDescriptor(
19 "icons/file.gif").createImage();
20 public final static Image BINARY = JcrUiPlugin.getImageDescriptor(
21 "icons/binary.png").createImage();
22
23 public String getText(Object element) {
24 try {
25 if (element instanceof Node) {
26 Node node = (Node) element;
27 String label = node.getName();
28 // try {
29 // Item primaryItem = node.getPrimaryItem();
30 // label = primaryItem instanceof Property ? ((Property)
31 // primaryItem)
32 // .getValue().getString()
33 // + " ("
34 // + node.getName()
35 // + ")" : node.getName();
36 // } catch (RepositoryException e) {
37 // label = node.getName();
38 // }
39 StringBuffer mixins = new StringBuffer("");
40 for (NodeType type : node.getMixinNodeTypes())
41 mixins.append(' ').append(type.getName());
42
43 return label + " [" + node.getPrimaryNodeType().getName()
44 + mixins + "]";
45 }
46 return element.toString();
47 } catch (RepositoryException e) {
48 throw new ArgeoException("Cannot get text for of " + element, e);
49 }
50 }
51
52 @Override
53 public Image getImage(Object element) {
54 if (element instanceof Node) {
55 Node node = (Node) element;
56 try {
57 if (node.getPrimaryNodeType().isNodeType(NodeType.NT_FOLDER))
58 return FOLDER;
59 else if (node.getPrimaryNodeType().isNodeType(NodeType.NT_FILE))
60 return FILE;
61 else if (node.getPrimaryNodeType().isNodeType(
62 NodeType.NT_RESOURCE))
63 return BINARY;
64 } catch (RepositoryException e) {
65 // silent
66 }
67 return NODE;
68 } else if (element instanceof RepositoryNode) {
69 if (((RepositoryNode) element).getDefaultSession() == null)
70 return RepositoryNode.REPOSITORY_DISCONNECTED;
71 else
72 return RepositoryNode.REPOSITORY_CONNECTED;
73 } else if (element instanceof WorkspaceNode) {
74 if (((WorkspaceNode) element).getSession() == null)
75 return WorkspaceNode.WORKSPACE_DISCONNECTED;
76 else
77 return WorkspaceNode.WORKSPACE_CONNECTED;
78 }
79 return super.getImage(element);
80 }
81 }