X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcontrollers%2FDistTreeContentProvider.java;h=b2c816be171ffce155c10e36494bb93c363690b6;hb=dfe3fcaa16195d0fff84839e86546d753e588253;hp=61347b5ef3d50d732ee43aaa791722e694fb4e91;hpb=0d236262a853a1286b317c30d64d4692bc21c7a4;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeContentProvider.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeContentProvider.java index 61347b5ef..b2c816be1 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeContentProvider.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeContentProvider.java @@ -12,28 +12,28 @@ import javax.jcr.RepositoryFactory; import javax.jcr.Session; import javax.jcr.nodetype.NodeType; +import org.argeo.eclipse.ui.TreeParent; import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.ArgeoNames; import org.argeo.jcr.ArgeoTypes; import org.argeo.jcr.JcrUtils; import org.argeo.jcr.UserJcrUtils; import org.argeo.slc.SlcException; -import org.argeo.slc.client.ui.dist.model.DistParentElem; import org.argeo.slc.client.ui.dist.model.RepoElem; -import org.argeo.slc.client.ui.dist.model.WorkspaceElem; import org.argeo.slc.repo.RepoConstants; import org.argeo.util.security.Keyring; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; /** - * Enables browsing in local and remote slc distribution repositories. Keyring - * and repository factory must be injected + * Enables browsing in local and remote SLC software repositories. Keyring and + * repository factory must be injected */ public class DistTreeContentProvider implements ITreeContentProvider { private Session nodeSession; List repositories = new ArrayList(); + /* DEPENDENCY INJECTION */ private RepositoryFactory repositoryFactory; private Keyring keyring; @@ -53,9 +53,13 @@ public class DistTreeContentProvider implements ITreeContentProvider { NodeIterator repos = nodeSession.getNode(reposPath).getNodes(); while (repos.hasNext()) { Node repoNode = repos.nextNode(); - if (repoNode.isNodeType(ArgeoTypes.ARGEO_REMOTE_REPOSITORY)) - repositories.add(new RepoElem(repoNode, repositoryFactory, - keyring)); + if (repoNode.isNodeType(ArgeoTypes.ARGEO_REMOTE_REPOSITORY)) { + String label = repoNode.isNodeType(NodeType.MIX_TITLE) ? repoNode + .getProperty(Property.JCR_TITLE).getString() + : repoNode.getName(); + repositories.add(new RepoElem(repositoryFactory, keyring, + repoNode, label)); + } } } catch (RepositoryException e) { throw new SlcException("Cannot get base elements", e); @@ -66,25 +70,25 @@ public class DistTreeContentProvider implements ITreeContentProvider { public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } + // @Override public Object[] getChildren(Object parentElement) { - if (parentElement instanceof DistParentElem) { - return ((DistParentElem) parentElement).getChildren(); - } else if (parentElement instanceof WorkspaceElem) { - return ((WorkspaceElem) parentElement).getChildren(); - } - return null; + if (parentElement instanceof TreeParent) + return ((TreeParent) parentElement).getChildren(); + else + return null; } + // @Override public Object getParent(Object element) { - // TODO register repo elem in distribution elem? + if (element instanceof TreeParent) + return ((TreeParent) element).getParent(); return null; } + // @Override public boolean hasChildren(Object element) { - if (element instanceof WorkspaceElem) - return false; - else if (element instanceof DistParentElem) - return true; + if (element instanceof TreeParent) + return ((TreeParent) element).hasChildren(); else return false; } @@ -128,9 +132,7 @@ public class DistTreeContentProvider implements ITreeContentProvider { } } - /* - * DEPENDENCY INJECTION - */ + /* DEPENDENCY INJECTION */ public void setRepositoryFactory(RepositoryFactory repositoryFactory) { this.repositoryFactory = repositoryFactory; }