From f53af8d52b0364ae25c2256b4772c08fe86f3340 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 10 Dec 2012 10:33:25 +0000 Subject: [PATCH] Refactor JCR explorer model git-svn-id: https://svn.argeo.org/commons/trunk@5940 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../org.argeo.jcr.ui.explorer/plugin.xml | 28 ++++++++-------- .../explorer/browser/NodeContentProvider.java | 16 +++++----- .../explorer/browser/NodeLabelProvider.java | 32 +++++++++---------- .../ui/explorer/commands/AddFolderNode.java | 16 +++++----- .../ui/explorer/commands/AddPrivileges.java | 12 +++---- .../ui/explorer/commands/CreateWorkspace.java | 6 ++-- .../jcr/ui/explorer/commands/DeleteNodes.java | 22 ++++++------- .../jcr/ui/explorer/commands/GetNodeSize.java | 12 +++---- .../explorer/commands/ImportFileSystem.java | 12 +++---- .../commands/RemoveRemoteRepository.java | 6 ++-- .../model/MaintainedRepositoryElem.java | 24 ++++++++++++++ ...oryNode.java => RemoteRepositoryElem.java} | 4 +-- ...itoriesNode.java => RepositoriesElem.java} | 15 ++++++--- ...epositoryNode.java => RepositoryElem.java} | 16 +++------- ...gleJcrNode.java => SingleJcrNodeElem.java} | 29 +++++------------ .../argeo/jcr/ui/explorer/model/UiNode.java | 25 --------------- ...{WorkspaceNode.java => WorkspaceElem.java} | 17 ++++------ .../utils/GenericNodeDoubleClickListener.java | 18 +++++------ .../jcr/ui/explorer/utils/JcrUiUtils.java | 24 +++++++------- .../ui/explorer/views/GenericJcrBrowser.java | 6 ++-- 20 files changed, 160 insertions(+), 180 deletions(-) create mode 100644 server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/MaintainedRepositoryElem.java rename server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/{RemoteRepositoryNode.java => RemoteRepositoryElem.java} (96%) rename server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/{RepositoriesNode.java => RepositoriesElem.java} (88%) rename server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/{RepositoryNode.java => RepositoryElem.java} (86%) rename server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/{SingleJcrNode.java => SingleJcrNodeElem.java} (74%) delete mode 100644 server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/UiNode.java rename server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/{WorkspaceNode.java => WorkspaceElem.java} (85%) diff --git a/server/plugins/org.argeo.jcr.ui.explorer/plugin.xml b/server/plugins/org.argeo.jcr.ui.explorer/plugin.xml index 9428cbe98..1df9981dc 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/plugin.xml +++ b/server/plugins/org.argeo.jcr.ui.explorer/plugin.xml @@ -166,10 +166,10 @@ + value="org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem"> + value="org.argeo.jcr.ui.explorer.model.WorkspaceElem"> @@ -187,10 +187,10 @@ + value="org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem"> + value="org.argeo.jcr.ui.explorer.model.WorkspaceElem"> @@ -208,7 +208,7 @@ + value="org.argeo.jcr.ui.explorer.model.RepositoryElem"> @@ -225,10 +225,10 @@ + value="org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem"> + value="org.argeo.jcr.ui.explorer.model.WorkspaceElem"> @@ -244,10 +244,10 @@ + value="org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem"> + value="org.argeo.jcr.ui.explorer.model.WorkspaceElem"> @@ -263,10 +263,10 @@ + value="org.argeo.jcr.ui.explorer.model.RepositoriesElem"> + value="org.argeo.jcr.ui.explorer.model.RepositoryElem"> @@ -280,7 +280,7 @@ + value="org.argeo.jcr.ui.explorer.model.RemoteRepositoryElem"> @@ -294,10 +294,10 @@ + value="org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem"> + value="org.argeo.jcr.ui.explorer.model.WorkspaceElem"> diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java index 3834865db..c2de694dd 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java @@ -27,8 +27,8 @@ import org.argeo.eclipse.ui.TreeParent; import org.argeo.jcr.ArgeoJcrConstants; import org.argeo.jcr.RepositoryRegister; import org.argeo.jcr.UserJcrUtils; -import org.argeo.jcr.ui.explorer.model.RepositoriesNode; -import org.argeo.jcr.ui.explorer.model.SingleJcrNode; +import org.argeo.jcr.ui.explorer.model.RepositoriesElem; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; import org.argeo.jcr.ui.explorer.utils.TreeObjectsComparator; import org.argeo.util.security.Keyring; import org.eclipse.jface.viewers.ITreeContentProvider; @@ -51,8 +51,8 @@ public class NodeContentProvider implements ITreeContentProvider { final private boolean sortChildren; // reference for cleaning - private SingleJcrNode homeNode = null; - private RepositoriesNode repositoriesNode = null; + private SingleJcrNodeElem homeNode = null; + private RepositoriesElem repositoriesNode = null; // Utils private TreeObjectsComparator itemComparator = new TreeObjectsComparator(); @@ -77,14 +77,14 @@ public class NodeContentProvider implements ITreeContentProvider { // TODO : find a way to dynamically get alias for the node if (homeNode != null) homeNode.dispose(); - homeNode = new SingleJcrNode(null, userHome, + homeNode = new SingleJcrNodeElem(null, userHome, userSession.getUserID(), ArgeoJcrConstants.ALIAS_NODE); } } if (repositoryRegister != null) { if (repositoriesNode != null) repositoriesNode.dispose(); - repositoriesNode = new RepositoriesNode("Repositories", + repositoriesNode = new RepositoriesElem("Repositories", repositoryRegister, repositoryFactory, null, userSession, keyring); } @@ -132,8 +132,8 @@ public class NodeContentProvider implements ITreeContentProvider { } public boolean hasChildren(Object element) { - if (element instanceof RepositoriesNode) { - RepositoryRegister rr = ((RepositoriesNode) element) + if (element instanceof RepositoriesElem) { + RepositoryRegister rr = ((RepositoriesElem) element) .getRepositoryRegister(); return rr.getRepositories().size() > 0; } else if (element instanceof TreeParent) { 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 2a3dc4e9e..d6d593ce8 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 @@ -22,11 +22,11 @@ import javax.jcr.nodetype.NodeType; import org.argeo.ArgeoException; import org.argeo.eclipse.ui.jcr.DefaultNodeLabelProvider; 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.argeo.jcr.ui.explorer.model.RemoteRepositoryElem; +import org.argeo.jcr.ui.explorer.model.RepositoriesElem; +import org.argeo.jcr.ui.explorer.model.RepositoryElem; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; +import org.argeo.jcr.ui.explorer.model.WorkspaceElem; import org.eclipse.swt.graphics.Image; public class NodeLabelProvider extends DefaultNodeLabelProvider { @@ -34,8 +34,8 @@ public class NodeLabelProvider extends DefaultNodeLabelProvider { public String getText(Object element) { try { - if (element instanceof SingleJcrNode) { - SingleJcrNode sjn = (SingleJcrNode) element; + if (element instanceof SingleJcrNodeElem) { + SingleJcrNodeElem sjn = (SingleJcrNodeElem) element; return getText(sjn.getNode()); } else return super.getText(element); @@ -57,26 +57,26 @@ public class NodeLabelProvider extends DefaultNodeLabelProvider { @Override public Image getImage(Object element) { - if (element instanceof RemoteRepositoryNode) { - if (((RemoteRepositoryNode) element).isConnected()) + if (element instanceof RemoteRepositoryElem) { + if (((RemoteRepositoryElem) element).isConnected()) return JcrImages.REMOTE_CONNECTED; else return JcrImages.REMOTE_DISCONNECTED; - } else if (element instanceof RepositoryNode) { - if (((RepositoryNode) element).isConnected()) + } else if (element instanceof RepositoryElem) { + if (((RepositoryElem) element).isConnected()) return JcrImages.REPOSITORY_CONNECTED; else return JcrImages.REPOSITORY_DISCONNECTED; - } else if (element instanceof WorkspaceNode) { - if (((WorkspaceNode) element).isConnected()) + } else if (element instanceof WorkspaceElem) { + if (((WorkspaceElem) element).isConnected()) return JcrImages.WORKSPACE_CONNECTED; else return JcrImages.WORKSPACE_DISCONNECTED; - } else if (element instanceof RepositoriesNode) { + } else if (element instanceof RepositoriesElem) { return JcrImages.REPOSITORIES; - } else if (element instanceof SingleJcrNode) + } else if (element instanceof SingleJcrNodeElem) try { - return super.getImage(((SingleJcrNode) element).getNode()); + return super.getImage(((SingleJcrNodeElem) element).getNode()); } catch (RepositoryException e) { return null; } diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddFolderNode.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddFolderNode.java index d5e6a685c..0389aeec0 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddFolderNode.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddFolderNode.java @@ -24,8 +24,8 @@ import org.argeo.eclipse.ui.TreeParent; import org.argeo.eclipse.ui.dialogs.SingleValue; import org.argeo.eclipse.ui.jcr.JcrUiPlugin; import org.argeo.jcr.ui.explorer.JcrExplorerPlugin; -import org.argeo.jcr.ui.explorer.model.SingleJcrNode; -import org.argeo.jcr.ui.explorer.model.WorkspaceNode; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; +import org.argeo.jcr.ui.explorer.model.WorkspaceElem; import org.argeo.jcr.ui.explorer.views.GenericJcrBrowser; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; @@ -35,8 +35,8 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.handlers.HandlerUtil; /** - * Adds a node of type nt:folder, only on {@link SingleJcrNode} and - * {@link WorkspaceNode} TreeObject types. + * Adds a node of type nt:folder, only on {@link SingleJcrNodeElem} and + * {@link WorkspaceElem} TreeObject types. * * * This handler assumes that a selection provider is available and picks only @@ -71,12 +71,12 @@ public class AddFolderNode extends AbstractHandler { TreeParent treeParentNode = null; Node jcrParentNode = null; - if (obj instanceof SingleJcrNode) { + if (obj instanceof SingleJcrNodeElem) { treeParentNode = (TreeParent) obj; - jcrParentNode = ((SingleJcrNode) treeParentNode).getNode(); - } else if (obj instanceof WorkspaceNode) { + jcrParentNode = ((SingleJcrNodeElem) treeParentNode).getNode(); + } else if (obj instanceof WorkspaceElem) { treeParentNode = (TreeParent) obj; - jcrParentNode = ((WorkspaceNode) treeParentNode).getRootNode(); + jcrParentNode = ((WorkspaceElem) treeParentNode).getRootNode(); } else return null; diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddPrivileges.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddPrivileges.java index c0873eb78..829290ebe 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddPrivileges.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddPrivileges.java @@ -22,8 +22,8 @@ import org.argeo.ArgeoException; import org.argeo.eclipse.ui.ErrorFeedback; import org.argeo.eclipse.ui.TreeParent; import org.argeo.jcr.ui.explorer.JcrExplorerPlugin; -import org.argeo.jcr.ui.explorer.model.SingleJcrNode; -import org.argeo.jcr.ui.explorer.model.WorkspaceNode; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; +import org.argeo.jcr.ui.explorer.model.WorkspaceElem; import org.argeo.jcr.ui.explorer.wizards.ChangeRightsWizard; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; @@ -50,12 +50,12 @@ public class AddPrivileges extends AbstractHandler { TreeParent treeParentNode = null; Node jcrParentNode = null; - if (obj instanceof SingleJcrNode) { + if (obj instanceof SingleJcrNodeElem) { treeParentNode = (TreeParent) obj; - jcrParentNode = ((SingleJcrNode) treeParentNode).getNode(); - } else if (obj instanceof WorkspaceNode) { + jcrParentNode = ((SingleJcrNodeElem) treeParentNode).getNode(); + } else if (obj instanceof WorkspaceElem) { treeParentNode = (TreeParent) obj; - jcrParentNode = ((WorkspaceNode) treeParentNode).getRootNode(); + jcrParentNode = ((WorkspaceElem) treeParentNode).getRootNode(); } else return null; diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/CreateWorkspace.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/CreateWorkspace.java index f5679263d..e579630ce 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/CreateWorkspace.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/CreateWorkspace.java @@ -20,7 +20,7 @@ import java.util.Arrays; import org.argeo.eclipse.ui.ErrorFeedback; import org.argeo.eclipse.ui.dialogs.SingleValue; import org.argeo.jcr.ui.explorer.JcrExplorerPlugin; -import org.argeo.jcr.ui.explorer.model.RepositoryNode; +import org.argeo.jcr.ui.explorer.model.RepositoryElem; import org.argeo.jcr.ui.explorer.views.GenericJcrBrowser; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; @@ -46,10 +46,10 @@ public class CreateWorkspace extends AbstractHandler { if (selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection) { Object obj = ((IStructuredSelection) selection).getFirstElement(); - if (!(obj instanceof RepositoryNode)) + if (!(obj instanceof RepositoryElem)) return null; - RepositoryNode repositoryNode = (RepositoryNode) obj; + RepositoryElem repositoryNode = (RepositoryElem) obj; String workspaceName = SingleValue.ask("Workspace name", "Enter workspace name"); if (workspaceName != null) { diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/DeleteNodes.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/DeleteNodes.java index 29760a2bf..26d4cdd43 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/DeleteNodes.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/DeleteNodes.java @@ -23,8 +23,8 @@ import javax.jcr.RepositoryException; import org.argeo.ArgeoException; import org.argeo.eclipse.ui.ErrorFeedback; import org.argeo.eclipse.ui.TreeParent; -import org.argeo.jcr.ui.explorer.model.SingleJcrNode; -import org.argeo.jcr.ui.explorer.model.WorkspaceNode; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; +import org.argeo.jcr.ui.explorer.model.WorkspaceElem; import org.argeo.jcr.ui.explorer.views.GenericJcrBrowser; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; @@ -58,7 +58,7 @@ public class DeleteNodes extends AbstractHandler { StringBuffer buf = new StringBuffer(""); Iterator lst = ((IStructuredSelection) selection).iterator(); while (lst.hasNext()) { - SingleJcrNode sjn = ((SingleJcrNode) lst.next()); + SingleJcrNodeElem sjn = ((SingleJcrNodeElem) lst.next()); buf.append(sjn.getName()).append(' '); } Boolean ok = MessageDialog.openConfirm( @@ -69,14 +69,14 @@ public class DeleteNodes extends AbstractHandler { if (ok) { Iterator it = ((IStructuredSelection) selection).iterator(); Object obj = null; - SingleJcrNode ancestor = null; - WorkspaceNode rootAncestor = null; + SingleJcrNodeElem ancestor = null; + WorkspaceElem rootAncestor = null; try { while (it.hasNext()) { obj = it.next(); - if (obj instanceof SingleJcrNode) { + if (obj instanceof SingleJcrNodeElem) { // Cache objects - SingleJcrNode sjn = (SingleJcrNode) obj; + SingleJcrNodeElem sjn = (SingleJcrNodeElem) obj; TreeParent tp = (TreeParent) sjn.getParent(); Node node = sjn.getNode(); @@ -87,10 +87,10 @@ public class DeleteNodes extends AbstractHandler { tp.removeChild(sjn); // Check if the parent is the root node - if (tp instanceof WorkspaceNode) - rootAncestor = (WorkspaceNode) tp; + if (tp instanceof WorkspaceElem) + rootAncestor = (WorkspaceElem) tp; else - ancestor = getOlder(ancestor, (SingleJcrNode) tp); + ancestor = getOlder(ancestor, (SingleJcrNodeElem) tp); } } if (rootAncestor != null) @@ -104,7 +104,7 @@ public class DeleteNodes extends AbstractHandler { return null; } - private SingleJcrNode getOlder(SingleJcrNode A, SingleJcrNode B) { + private SingleJcrNodeElem getOlder(SingleJcrNodeElem A, SingleJcrNodeElem B) { try { if (A == null) return B == null ? null : B; diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/GetNodeSize.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/GetNodeSize.java index 372013781..cfcac1354 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/GetNodeSize.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/GetNodeSize.java @@ -24,8 +24,8 @@ import javax.jcr.Node; import org.argeo.eclipse.ui.ErrorFeedback; import org.argeo.jcr.JcrUtils; import org.argeo.jcr.ui.explorer.JcrExplorerPlugin; -import org.argeo.jcr.ui.explorer.model.SingleJcrNode; -import org.argeo.jcr.ui.explorer.model.WorkspaceNode; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; +import org.argeo.jcr.ui.explorer.model.WorkspaceElem; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; @@ -75,12 +75,12 @@ public class GetNodeSize extends AbstractHandler { Object obj = it.next(); String curPath; Node node; - if (obj instanceof SingleJcrNode) { - node = ((SingleJcrNode) obj).getNode(); + if (obj instanceof SingleJcrNodeElem) { + node = ((SingleJcrNodeElem) obj).getNode(); curPath = node.getSession().getWorkspace().getName(); curPath += "/" + node.getPath(); - } else if (obj instanceof WorkspaceNode) { - node = ((WorkspaceNode) obj).getRootNode(); + } else if (obj instanceof WorkspaceElem) { + node = ((WorkspaceElem) obj).getRootNode(); curPath = node.getSession().getWorkspace().getName(); } else // unvalid object type diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/ImportFileSystem.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/ImportFileSystem.java index b90b88d4b..5c4bf7e6b 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/ImportFileSystem.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/ImportFileSystem.java @@ -20,8 +20,8 @@ import javax.jcr.Node; import org.argeo.eclipse.ui.ErrorFeedback; import org.argeo.eclipse.ui.TreeParent; import org.argeo.jcr.ui.explorer.JcrExplorerPlugin; -import org.argeo.jcr.ui.explorer.model.SingleJcrNode; -import org.argeo.jcr.ui.explorer.model.WorkspaceNode; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; +import org.argeo.jcr.ui.explorer.model.WorkspaceElem; import org.argeo.jcr.ui.explorer.views.GenericJcrBrowser; import org.argeo.jcr.ui.explorer.wizards.ImportFileSystemWizard; import org.eclipse.core.commands.AbstractHandler; @@ -45,10 +45,10 @@ public class ImportFileSystem extends AbstractHandler { Object obj = ((IStructuredSelection) selection).getFirstElement(); try { Node folder = null; - if (obj instanceof SingleJcrNode) { - folder = ((SingleJcrNode) obj).getNode(); - } else if (obj instanceof WorkspaceNode) { - folder = ((WorkspaceNode) obj).getRootNode(); + if (obj instanceof SingleJcrNodeElem) { + folder = ((SingleJcrNodeElem) obj).getNode(); + } else if (obj instanceof WorkspaceElem) { + folder = ((WorkspaceElem) obj).getRootNode(); } else { ErrorFeedback.show(JcrExplorerPlugin .getMessage("warningInvalidNodeToImport")); diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/RemoveRemoteRepository.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/RemoveRemoteRepository.java index 86fca2097..ec23dd08c 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/RemoveRemoteRepository.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/RemoveRemoteRepository.java @@ -15,7 +15,7 @@ */ package org.argeo.jcr.ui.explorer.commands; -import org.argeo.jcr.ui.explorer.model.RemoteRepositoryNode; +import org.argeo.jcr.ui.explorer.model.RemoteRepositoryElem; import org.argeo.jcr.ui.explorer.views.GenericJcrBrowser; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; @@ -40,8 +40,8 @@ public class RemoveRemoteRepository extends AbstractHandler { && selection instanceof IStructuredSelection) { Object obj = ((IStructuredSelection) selection).getFirstElement(); - if (obj instanceof RemoteRepositoryNode) { - ((RemoteRepositoryNode) obj).remove(); + if (obj instanceof RemoteRepositoryElem) { + ((RemoteRepositoryElem) obj).remove(); view.refresh(null); } } diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/MaintainedRepositoryElem.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/MaintainedRepositoryElem.java new file mode 100644 index 000000000..abb97a9e8 --- /dev/null +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/MaintainedRepositoryElem.java @@ -0,0 +1,24 @@ +package org.argeo.jcr.ui.explorer.model; + +import javax.jcr.Repository; + +import org.argeo.ArgeoException; +import org.argeo.eclipse.ui.TreeParent; +import org.argeo.jcr.MaintainedRepository; + +/** Wraps a {@link MaintainedRepository} */ +public class MaintainedRepositoryElem extends RepositoryElem { + + public MaintainedRepositoryElem(String alias, Repository repository, + TreeParent parent) { + super(alias, repository, parent); + if (!(repository instanceof MaintainedRepository)) { + throw new ArgeoException("Repository " + alias + + " is not amiantained repository"); + } + } + + protected MaintainedRepository getMaintainedRepository() { + return (MaintainedRepository) getRepository(); + } +} diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RemoteRepositoryNode.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RemoteRepositoryElem.java similarity index 96% rename from server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RemoteRepositoryNode.java rename to server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RemoteRepositoryElem.java index 217a90e50..0be69781c 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RemoteRepositoryNode.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RemoteRepositoryElem.java @@ -31,7 +31,7 @@ import org.argeo.jcr.ArgeoNames; import org.argeo.util.security.Keyring; /** Root of a remote repository */ -public class RemoteRepositoryNode extends RepositoryNode { +public class RemoteRepositoryElem extends RepositoryElem { private final Keyring keyring; /** * A session of the logged in user on the default workspace of the node @@ -43,7 +43,7 @@ public class RemoteRepositoryNode extends RepositoryNode { private final RepositoryFactory repositoryFactory; private final String uri; - public RemoteRepositoryNode(String alias, + public RemoteRepositoryElem(String alias, RepositoryFactory repositoryFactory, String uri, TreeParent parent, Session userSession, Keyring keyring, String remoteNodePath) { super(alias, null, parent); diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesElem.java similarity index 88% rename from server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java rename to server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesElem.java index df9d5b943..b123727bc 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesElem.java @@ -28,6 +28,7 @@ import org.argeo.ArgeoException; import org.argeo.eclipse.ui.ErrorFeedback; import org.argeo.eclipse.ui.TreeParent; import org.argeo.jcr.ArgeoNames; +import org.argeo.jcr.MaintainedRepository; import org.argeo.jcr.RepositoryRegister; import org.argeo.jcr.UserJcrUtils; import org.argeo.util.security.Keyring; @@ -43,7 +44,7 @@ import org.argeo.util.security.Keyring; * kept here. */ -public class RepositoriesNode extends TreeParent implements ArgeoNames { +public class RepositoriesElem extends TreeParent implements ArgeoNames { private final RepositoryRegister repositoryRegister; private final RepositoryFactory repositoryFactory; @@ -54,7 +55,7 @@ public class RepositoriesNode extends TreeParent implements ArgeoNames { private final Session userSession; private final Keyring keyring; - public RepositoriesNode(String name, RepositoryRegister repositoryRegister, + public RepositoriesElem(String name, RepositoryRegister repositoryRegister, RepositoryFactory repositoryFactory, TreeParent parent, Session userSession, Keyring keyring) { super(name); @@ -77,8 +78,12 @@ public class RepositoriesNode extends TreeParent implements ArgeoNames { Map refRepos = repositoryRegister .getRepositories(); for (String name : refRepos.keySet()) { - super.addChild(new RepositoryNode(name, refRepos.get(name), - this)); + Repository repository = refRepos.get(name); + if (repository instanceof MaintainedRepository) + super.addChild(new MaintainedRepositoryElem(name, + repository, this)); + else + super.addChild(new RepositoryElem(name, repository, this)); } // remote @@ -103,7 +108,7 @@ public class RepositoriesNode extends TreeParent implements ArgeoNames { Node remoteNode = it.nextNode(); String uri = remoteNode.getProperty(ARGEO_URI).getString(); try { - RemoteRepositoryNode remoteRepositoryNode = new RemoteRepositoryNode( + RemoteRepositoryElem remoteRepositoryNode = new RemoteRepositoryElem( remoteNode.getName(), repositoryFactory, uri, this, userSession, jcrKeyring, remoteNode.getPath()); super.addChild(remoteRepositoryNode); diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoryNode.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoryElem.java similarity index 86% rename from server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoryNode.java rename to server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoryElem.java index a8b64afff..935bac12b 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoryNode.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoryElem.java @@ -28,20 +28,14 @@ import org.argeo.eclipse.ui.TreeParent; * object of the current view to enable bi-directionnal browsing in the tree. */ -public class RepositoryNode extends TreeParent implements UiNode { +public class RepositoryElem extends TreeParent { private String alias; protected Repository repository; private Session defaultSession = null; - /** Create a new repository with alias = name */ - public RepositoryNode(String alias, Repository repository, TreeParent parent) { - this(alias, alias, repository, parent); - } - /** Create a new repository with distinct name & alias */ - public RepositoryNode(String alias, String name, Repository repository, - TreeParent parent) { - super(name); + public RepositoryElem(String alias, Repository repository, TreeParent parent) { + super(alias); this.repository = repository; setParent(parent); this.alias = alias; @@ -54,9 +48,9 @@ public class RepositoryNode extends TreeParent implements UiNode { .getAccessibleWorkspaceNames(); for (String wkpName : wkpNames) { if (wkpName.equals(defaultSession.getWorkspace().getName())) - addChild(new WorkspaceNode(this, wkpName, defaultSession)); + addChild(new WorkspaceElem(this, wkpName, defaultSession)); else - addChild(new WorkspaceNode(this, wkpName)); + addChild(new WorkspaceElem(this, wkpName)); } } catch (RepositoryException e) { throw new ArgeoException("Cannot connect to repository " + alias, e); diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/SingleJcrNode.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/SingleJcrNodeElem.java similarity index 74% rename from server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/SingleJcrNode.java rename to server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/SingleJcrNodeElem.java index fa20f96c1..7b588f83b 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/SingleJcrNode.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/SingleJcrNodeElem.java @@ -25,12 +25,12 @@ import org.argeo.eclipse.ui.TreeParent; /** * UI Tree component. Wraps a node of a JCR {@link Workspace}. It also keeps a - * reference to its parent node that can either be a {@link WorkspaceNode}, a - * {@link SingleJcrNode} or null if the node is "mounted" as the root of the UI + * reference to its parent node that can either be a {@link WorkspaceElem}, a + * {@link SingleJcrNodeElem} or null if the node is "mounted" as the root of the UI * tree. */ -public class SingleJcrNode extends TreeParent implements UiNode { +public class SingleJcrNodeElem extends TreeParent { private final Node node; private String alias = null; @@ -40,7 +40,7 @@ public class SingleJcrNode extends TreeParent implements UiNode { // private final String name; /** Creates a new UiNode in the UI Tree */ - public SingleJcrNode(TreeParent parent, Node node, String name) { + public SingleJcrNodeElem(TreeParent parent, Node node, String name) { super(name); setParent(parent); this.node = node; @@ -51,7 +51,7 @@ public class SingleJcrNode extends TreeParent implements UiNode { * the corresponding repository in the current UI environment. It is useful * to be able to mount nodes as roots of the UI tree. */ - public SingleJcrNode(TreeParent parent, Node node, String name, String alias) { + public SingleJcrNodeElem(TreeParent parent, Node node, String name, String alias) { super(name); setParent(parent); this.node = node; @@ -63,25 +63,12 @@ public class SingleJcrNode extends TreeParent implements UiNode { return node; } - /** - * Returns the alias corresponding to the repository abstraction that - * contains current node. If the current object is mounted as root of the UI - * tree, the alias is stored in the object. Otherwise, we must browse the - * tree backward to the RepositoryNode. - * - * Alias is then cached in the current object so that next time it will be - * here. - */ - public String getAlias() { - if (alias == null) { - alias = ((UiNode) getParent()).getAlias(); - } + protected String getRepositoryAlias() { return alias; } /** - * Override normal behavior to initialize children only when first - * requested + * Override normal behavior to initialize children only when first requested */ @Override public synchronized Object[] getChildren() { @@ -93,7 +80,7 @@ public class SingleJcrNode extends TreeParent implements UiNode { NodeIterator ni = node.getNodes(); while (ni.hasNext()) { Node curNode = ni.nextNode(); - addChild(new SingleJcrNode(this, curNode, curNode.getName())); + addChild(new SingleJcrNodeElem(this, curNode, curNode.getName())); } return super.getChildren(); } catch (RepositoryException re) { diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/UiNode.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/UiNode.java deleted file mode 100644 index 5023a84c9..000000000 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/UiNode.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * 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.model; - -/** - * insure presence of the useful specific methods used in the building a UI Tree - * based on JCR repositories - */ -public interface UiNode { - - public String getAlias(); -} diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/WorkspaceNode.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/WorkspaceElem.java similarity index 85% rename from server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/WorkspaceNode.java rename to server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/WorkspaceElem.java index 22a7731c5..bb9b69caf 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/WorkspaceNode.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/WorkspaceElem.java @@ -27,17 +27,17 @@ import org.argeo.jcr.JcrUtils; /** * UI Tree component. Wraps the root node of a JCR {@link Workspace}. It also - * keeps a reference to its parent {@link RepositoryNode}, to be able to + * keeps a reference to its parent {@link RepositoryElem}, to be able to * retrieve alias of the current used repository */ -public class WorkspaceNode extends TreeParent implements UiNode { +public class WorkspaceElem extends TreeParent { private Session session = null; - public WorkspaceNode(RepositoryNode parent, String name) { + public WorkspaceElem(RepositoryElem parent, String name) { this(parent, name, null); } - public WorkspaceNode(RepositoryNode parent, String name, Session session) { + public WorkspaceElem(RepositoryElem parent, String name, Session session) { super(name); this.session = session; setParent(parent); @@ -61,7 +61,7 @@ public class WorkspaceNode extends TreeParent implements UiNode { public void login() { try { - session = ((RepositoryNode) getParent()).repositoryLogin(getName()); + session = ((RepositoryElem) getParent()).repositoryLogin(getName()); } catch (RepositoryException e) { throw new ArgeoException("Cannot connect to repository " + getName(), e); @@ -87,11 +87,6 @@ public class WorkspaceNode extends TreeParent implements UiNode { JcrUtils.logoutQuietly(session); } - /** Returns the alias of the parent Repository */ - public String getAlias() { - return ((UiNode) getParent()).getAlias(); - } - @Override public boolean hasChildren() { try { @@ -122,7 +117,7 @@ public class WorkspaceNode extends TreeParent implements UiNode { NodeIterator ni = rootNode.getNodes(); while (ni.hasNext()) { Node node = ni.nextNode(); - addChild(new SingleJcrNode(this, node, node.getName())); + addChild(new SingleJcrNodeElem(this, node, node.getName())); } return super.getChildren(); } catch (RepositoryException e) { diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/utils/GenericNodeDoubleClickListener.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/utils/GenericNodeDoubleClickListener.java index 4dff3b435..eaa5475e0 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/utils/GenericNodeDoubleClickListener.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/utils/GenericNodeDoubleClickListener.java @@ -25,9 +25,9 @@ import org.argeo.eclipse.ui.specific.FileHandler; import org.argeo.jcr.ui.explorer.JcrExplorerPlugin; import org.argeo.jcr.ui.explorer.editors.GenericNodeEditor; import org.argeo.jcr.ui.explorer.editors.GenericNodeEditorInput; -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.argeo.jcr.ui.explorer.model.RepositoryElem; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; +import org.argeo.jcr.ui.explorer.model.WorkspaceElem; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.IStructuredSelection; @@ -57,22 +57,22 @@ public class GenericNodeDoubleClickListener implements IDoubleClickListener { return; Object obj = ((IStructuredSelection) event.getSelection()) .getFirstElement(); - if (obj instanceof RepositoryNode) { - RepositoryNode rpNode = (RepositoryNode) obj; + if (obj instanceof RepositoryElem) { + RepositoryElem rpNode = (RepositoryElem) obj; if (!rpNode.isConnected()) { rpNode.login(); nodeViewer.refresh(obj); } // else do nothing - } else if (obj instanceof WorkspaceNode) { - WorkspaceNode wn = (WorkspaceNode) obj; + } else if (obj instanceof WorkspaceElem) { + WorkspaceElem wn = (WorkspaceElem) obj; if (wn.isConnected()) wn.logout(); else wn.login(); nodeViewer.refresh(obj); - } else if (obj instanceof SingleJcrNode) { - SingleJcrNode sjn = (SingleJcrNode) obj; + } else if (obj instanceof SingleJcrNodeElem) { + SingleJcrNodeElem sjn = (SingleJcrNodeElem) obj; Node node = sjn.getNode(); try { if (node.isNodeType(NodeType.NT_FILE)) { diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/utils/JcrUiUtils.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/utils/JcrUiUtils.java index cee62f2fa..ad327f098 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/utils/JcrUiUtils.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/utils/JcrUiUtils.java @@ -20,10 +20,10 @@ import javax.jcr.RepositoryException; import org.argeo.ArgeoException; import org.argeo.eclipse.ui.TreeParent; -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.argeo.jcr.ui.explorer.model.RepositoriesElem; +import org.argeo.jcr.ui.explorer.model.RepositoryElem; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; +import org.argeo.jcr.ui.explorer.model.WorkspaceElem; /** Centralizes some useful methods to build UIs with JCR */ public class JcrUiUtils { @@ -35,25 +35,25 @@ public class JcrUiUtils { boolean doRefresh = false; try { - if (element instanceof SingleJcrNode) { - curNode = ((SingleJcrNode) element).getNode(); - } else if (element instanceof WorkspaceNode) { - curNode = ((WorkspaceNode) element).getRootNode(); + if (element instanceof SingleJcrNodeElem) { + curNode = ((SingleJcrNodeElem) element).getNode(); + } else if (element instanceof WorkspaceElem) { + curNode = ((WorkspaceElem) element).getRootNode(); } if (curNode != null && element.getChildren().length != curNode.getNodes() .getSize()) doRefresh = true; - else if (element instanceof RepositoryNode) { - RepositoryNode rn = (RepositoryNode) element; + else if (element instanceof RepositoryElem) { + RepositoryElem rn = (RepositoryElem) element; if (rn.isConnected()) { String[] wkpNames = rn.getAccessibleWorkspaceNames(); if (element.getChildren().length != wkpNames.length) doRefresh = true; } - } else if (element instanceof RepositoriesNode) { - RepositoriesNode rn = (RepositoriesNode) element; + } else if (element instanceof RepositoriesElem) { + RepositoriesElem rn = (RepositoriesElem) element; if (element.getChildren().length != rn.getRepositoryRegister() .getRepositories().size()) doRefresh = true; diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/views/GenericJcrBrowser.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/views/GenericJcrBrowser.java index 1b62582b0..f000ba385 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/views/GenericJcrBrowser.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/views/GenericJcrBrowser.java @@ -38,7 +38,7 @@ import org.argeo.jcr.ui.explorer.JcrExplorerPlugin; import org.argeo.jcr.ui.explorer.browser.NodeContentProvider; import org.argeo.jcr.ui.explorer.browser.NodeLabelProvider; import org.argeo.jcr.ui.explorer.browser.PropertiesContentProvider; -import org.argeo.jcr.ui.explorer.model.SingleJcrNode; +import org.argeo.jcr.ui.explorer.model.SingleJcrNodeElem; import org.argeo.jcr.ui.explorer.utils.GenericNodeDoubleClickListener; import org.argeo.jcr.ui.explorer.utils.JcrUiUtils; import org.argeo.util.security.Keyring; @@ -153,9 +153,9 @@ public class GenericJcrBrowser extends AbstractJcrBrowser { IStructuredSelection sel = (IStructuredSelection) event .getSelection(); Object firstItem = sel.getFirstElement(); - if (firstItem instanceof SingleJcrNode) + if (firstItem instanceof SingleJcrNodeElem) propertiesViewer - .setInput(((SingleJcrNode) firstItem) + .setInput(((SingleJcrNodeElem) firstItem) .getNode()); } else { propertiesViewer.setInput(getViewSite()); -- 2.30.2