]> git.argeo.org Git - gpl/argeo-slc.git/blob - plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/AnonymousDistTreeContentProvider.java
+ introduce advanced submenu for distribution view
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui.dist / src / main / java / org / argeo / slc / client / ui / dist / controllers / AnonymousDistTreeContentProvider.java
1 package org.argeo.slc.client.ui.dist.controllers;
2
3 import javax.jcr.RepositoryFactory;
4
5 import org.argeo.eclipse.ui.TreeParent;
6 import org.argeo.slc.client.ui.dist.model.RepoElem;
7 import org.eclipse.jface.viewers.ITreeContentProvider;
8 import org.eclipse.jface.viewers.Viewer;
9
10 /**
11 * Enables browsing in local public slc distribution repositories. For the time
12 * being, it supports only one repository at a time. Repository factory must be
13 * injected
14 */
15
16 public class AnonymousDistTreeContentProvider implements ITreeContentProvider {
17
18 // List<RepoElem> repositories = new ArrayList<RepoElem>();
19 private RepoElem publicRepo;
20
21 private RepositoryFactory repositoryFactory;
22
23 /**
24 * @param input
25 * the URI to the public repository to browse
26 */
27 public Object[] getElements(Object input) {
28 String uri = (String) input;
29 publicRepo = new RepoElem(repositoryFactory, uri,
30 "Argeo Public Repository");
31 // force connection and creation of the children UI object
32 publicRepo.login();
33 return publicRepo.getChildren();
34 }
35
36 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
37 }
38
39 // @Override
40 public Object[] getChildren(Object parentElement) {
41 if (parentElement instanceof TreeParent)
42 return ((TreeParent) parentElement).getChildren();
43 else
44 return null;
45 }
46
47 // @Override
48 public Object getParent(Object element) {
49 if (element instanceof TreeParent)
50 return ((TreeParent) element).getParent();
51 return null;
52 }
53
54 // @Override
55 public boolean hasChildren(Object element) {
56 if (element instanceof TreeParent)
57 return ((TreeParent) element).hasChildren();
58 else
59 return false;
60 }
61
62 public void dispose() {
63 publicRepo.dispose();
64 }
65
66 /*
67 * DEPENDENCY INJECTION
68 */
69 public void setRepositoryFactory(RepositoryFactory repositoryFactory) {
70 this.repositoryFactory = repositoryFactory;
71 }
72 }