]> git.argeo.org Git - lgpl/argeo-commons.git/blob - jcr/DefaultNodeLabelProvider.java
Prepare next development cycle
[lgpl/argeo-commons.git] / jcr / DefaultNodeLabelProvider.java
1 package org.argeo.eclipse.ui.jcr;
2
3 import javax.jcr.Node;
4 import javax.jcr.Property;
5 import javax.jcr.RepositoryException;
6 import javax.jcr.nodetype.NodeType;
7
8 import org.argeo.ArgeoException;
9 import org.argeo.jcr.ArgeoTypes;
10 import org.eclipse.jface.viewers.ColumnLabelProvider;
11 import org.eclipse.swt.graphics.Image;
12
13 /** Provides reasonable overridable defaults for know JCR types. */
14 public class DefaultNodeLabelProvider extends ColumnLabelProvider {
15 // Images
16 /**
17 * @deprecated Use {@link JcrImages#NODE} instead
18 */
19 public final static Image NODE = JcrImages.NODE;
20 /**
21 * @deprecated Use {@link JcrImages#FOLDER} instead
22 */
23 public final static Image FOLDER = JcrImages.FOLDER;
24 /**
25 * @deprecated Use {@link JcrImages#FILE} instead
26 */
27 public final static Image FILE = JcrImages.FILE;
28 /**
29 * @deprecated Use {@link JcrImages#BINARY} instead
30 */
31 public final static Image BINARY = JcrImages.BINARY;
32 /**
33 * @deprecated Use {@link JcrImages#HOME} instead
34 */
35 public final static Image HOME = JcrImages.HOME;
36
37 public String getText(Object element) {
38 try {
39 if (element instanceof Node) {
40 return getText((Node) element);
41 } else if (element instanceof WrappedNode) {
42 return getText(((WrappedNode) element).getNode());
43 } else if (element instanceof NodesWrapper) {
44 return getText(((NodesWrapper) element).getNode());
45 }
46 return super.getText(element);
47 } catch (RepositoryException e) {
48 throw new ArgeoException("Cannot get text for of " + element, e);
49 }
50 }
51
52 protected String getText(Node node) throws RepositoryException {
53 if (node.isNodeType(NodeType.MIX_TITLE)
54 && node.hasProperty(Property.JCR_TITLE))
55 return node.getProperty(Property.JCR_TITLE).getString();
56 else
57 return node.getName();
58 }
59
60 @Override
61 public Image getImage(Object element) {
62 try {
63 if (element instanceof Node) {
64 return getImage((Node) element);
65 } else if (element instanceof WrappedNode) {
66 return getImage(((WrappedNode) element).getNode());
67 } else if (element instanceof NodesWrapper) {
68 return getImage(((NodesWrapper) element).getNode());
69 }
70 } catch (RepositoryException e) {
71 throw new ArgeoException("Cannot retrieve image for " + element, e);
72 }
73 return super.getImage(element);
74 }
75
76 protected Image getImage(Node node) throws RepositoryException {
77 // optimized order
78 if (node.getPrimaryNodeType().isNodeType(NodeType.NT_FILE))
79 return JcrImages.FILE;
80 else if (node.getPrimaryNodeType().isNodeType(NodeType.NT_FOLDER))
81 return JcrImages.FOLDER;
82 else if (node.getPrimaryNodeType().isNodeType(NodeType.NT_RESOURCE))
83 return JcrImages.BINARY;
84 else if (node.isNodeType(ArgeoTypes.ARGEO_USER_HOME))
85 return JcrImages.HOME;
86 else
87 return JcrImages.NODE;
88 }
89
90 @Override
91 public String getToolTipText(Object element) {
92 try {
93 if (element instanceof Node) {
94 return getToolTipText((Node) element);
95 } else if (element instanceof WrappedNode) {
96 return getToolTipText(((WrappedNode) element).getNode());
97 } else if (element instanceof NodesWrapper) {
98 return getToolTipText(((NodesWrapper) element).getNode());
99 }
100 } catch (RepositoryException e) {
101 throw new ArgeoException("Cannot get tooltip for " + element, e);
102 }
103 return super.getToolTipText(element);
104 }
105
106 protected String getToolTipText(Node node) throws RepositoryException {
107 return null;
108 }
109
110 }