]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - browser/NodeLabelProvider.java
1 package org
.argeo
.jcr
.ui
.explorer
.browser
;
4 import javax
.jcr
.RepositoryException
;
5 import javax
.jcr
.nodetype
.NodeType
;
7 import org
.argeo
.ArgeoException
;
8 import org
.argeo
.eclipse
.ui
.jcr
.DefaultNodeLabelProvider
;
9 import org
.argeo
.eclipse
.ui
.jcr
.JcrUiPlugin
;
10 import org
.argeo
.jcr
.ui
.explorer
.model
.RepositoriesNode
;
11 import org
.argeo
.jcr
.ui
.explorer
.model
.RepositoryNode
;
12 import org
.argeo
.jcr
.ui
.explorer
.model
.SingleJcrNode
;
13 import org
.argeo
.jcr
.ui
.explorer
.model
.WorkspaceNode
;
14 import org
.eclipse
.swt
.graphics
.Image
;
16 public class NodeLabelProvider
extends DefaultNodeLabelProvider
{
18 public final static Image REPOSITORIES
= JcrUiPlugin
.getImageDescriptor(
19 "icons/repositories.gif").createImage();
21 public String
getText(Object element
) {
23 if (element
instanceof SingleJcrNode
) {
24 SingleJcrNode sjn
= (SingleJcrNode
) element
;
25 return getText(sjn
.getNode());
27 return super.getText(element
);
28 } catch (RepositoryException e
) {
29 throw new ArgeoException(
30 "Unexpected JCR error while getting node name.");
34 protected String
getText(Node node
) throws RepositoryException
{
35 String label
= node
.getName();
36 StringBuffer mixins
= new StringBuffer("");
37 for (NodeType type
: node
.getMixinNodeTypes())
38 mixins
.append(' ').append(type
.getName());
40 return label
+ " [" + node
.getPrimaryNodeType().getName() + mixins
45 public Image
getImage(Object element
) {
46 if (element
instanceof RepositoryNode
) {
47 if (((RepositoryNode
) element
).getDefaultSession() == null)
48 return RepositoryNode
.REPOSITORY_DISCONNECTED
;
50 return RepositoryNode
.REPOSITORY_CONNECTED
;
51 } else if (element
instanceof WorkspaceNode
) {
52 if (((WorkspaceNode
) element
).getSession() == null)
53 return WorkspaceNode
.WORKSPACE_DISCONNECTED
;
55 return WorkspaceNode
.WORKSPACE_CONNECTED
;
56 } else if (element
instanceof RepositoriesNode
) {
58 } else if (element
instanceof SingleJcrNode
)
60 return super.getImage(((SingleJcrNode
) element
).getNode());
61 } catch (RepositoryException e
) {
64 return super.getImage(element
);