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=ce679dd96b28b636095fea94ecca62a01b1ffe73;hb=2c4852dcd20d4cde88776c527ae935f242ae1e77;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..ce679dd96 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 @@ -1,24 +1,48 @@ +/* + * Copyright (C) 2007-2012 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.argeo.jcr.ui.explorer.browser; 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 +57,29 @@ public class NodeLabelProvider extends DefaultNodeLabelProvider { @Override public Image getImage(Object element) { - if (element instanceof RepositoryNode) { - if (((RepositoryNode) element).getDefaultSession() == null) - return RepositoryNode.REPOSITORY_DISCONNECTED; + if (element instanceof RemoteRepositoryNode) { + if (((RemoteRepositoryNode) element).isConnected()) + return JcrImages.REMOTE_CONNECTED; else - return RepositoryNode.REPOSITORY_CONNECTED; + return JcrImages.REMOTE_DISCONNECTED; + } else if (element instanceof RepositoryNode) { + if (((RepositoryNode) element).isConnected()) + return JcrImages.REPOSITORY_CONNECTED; + else + return JcrImages.REPOSITORY_DISCONNECTED; } else if (element instanceof WorkspaceNode) { - if (((WorkspaceNode) element).getSession() == null) - return WorkspaceNode.WORKSPACE_DISCONNECTED; + if (((WorkspaceNode) element).isConnected()) + return JcrImages.WORKSPACE_CONNECTED; else - return WorkspaceNode.WORKSPACE_CONNECTED; - } else if (element instanceof RepositoryRegister) { - return REPOSITORIES; - } + return JcrImages.WORKSPACE_DISCONNECTED; + } 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); }