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 {
@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);
}