X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fplugins%2Forg.argeo.jcr.ui.explorer%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjcr%2Fui%2Fexplorer%2Fbrowser%2FNodeLabelProvider.java;h=0521383a1838a8cc479bd96ddd9006e7c6b1540d;hb=6bb0606505be3e99021c5ff9771c719eb1e1f2e7;hp=6b9af8f75b70e5cdf0825281fdc9ec3e710fe647;hpb=c425aea5b318f0c291804cf3973b3059f923e9b5;p=lgpl%2Fargeo-commons.git diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeLabelProvider.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeLabelProvider.java index 6b9af8f75..0521383a1 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeLabelProvider.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeLabelProvider.java @@ -4,21 +4,30 @@ 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.RepositoryRegister; +import org.argeo.eclipse.ui.jcr.JcrImages; +import org.argeo.jcr.ui.explorer.model.RemoteRepositoryNode; +import org.argeo.jcr.ui.explorer.model.RepositoriesNode; +import org.argeo.jcr.ui.explorer.model.RepositoryNode; +import org.argeo.jcr.ui.explorer.model.SingleJcrNode; +import org.argeo.jcr.ui.explorer.model.WorkspaceNode; import org.eclipse.swt.graphics.Image; public class NodeLabelProvider extends DefaultNodeLabelProvider { // Images - public final static Image REPOSITORIES = JcrUiPlugin.getImageDescriptor( - "icons/repositories.gif").createImage(); public String getText(Object element) { - if (element instanceof RepositoryRegister) { - return "Repositories"; + try { + if (element instanceof SingleJcrNode) { + SingleJcrNode sjn = (SingleJcrNode) element; + return getText(sjn.getNode()); + } else + return super.getText(element); + } catch (RepositoryException e) { + throw new ArgeoException( + "Unexpected JCR error while getting node name."); } - return super.getText(element); } protected String getText(Node node) throws RepositoryException { @@ -33,19 +42,29 @@ public class NodeLabelProvider extends DefaultNodeLabelProvider { @Override public Image getImage(Object element) { - if (element instanceof RepositoryNode) { + if (element instanceof RemoteRepositoryNode) { + if (((RemoteRepositoryNode) element).getDefaultSession() == null) + return JcrImages.REMOTE_DISCONNECTED; + else + return JcrImages.REMOTE_CONNECTED; + } else if (element instanceof RepositoryNode) { if (((RepositoryNode) element).getDefaultSession() == null) - return RepositoryNode.REPOSITORY_DISCONNECTED; + return JcrImages.REPOSITORY_DISCONNECTED; else - return RepositoryNode.REPOSITORY_CONNECTED; + return JcrImages.REPOSITORY_CONNECTED; } else if (element instanceof WorkspaceNode) { if (((WorkspaceNode) element).getSession() == null) - return WorkspaceNode.WORKSPACE_DISCONNECTED; + return JcrImages.WORKSPACE_DISCONNECTED; else - return WorkspaceNode.WORKSPACE_CONNECTED; - } else if (element instanceof RepositoryRegister) { - return REPOSITORIES; - } + return JcrImages.WORKSPACE_CONNECTED; + } else if (element instanceof RepositoriesNode) { + return JcrImages.REPOSITORIES; + } else if (element instanceof SingleJcrNode) + try { + return super.getImage(((SingleJcrNode) element).getNode()); + } catch (RepositoryException e) { + return null; + } return super.getImage(element); }