]> 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
Prevent initalization of the UI to fail if a remote repo is not accessible.
[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.slc.client.ui.dist.model.DistParentElem;
6 import org.argeo.slc.client.ui.dist.model.RepoElem;
7 import org.argeo.slc.client.ui.dist.model.WorkspaceElem;
8 import org.eclipse.jface.viewers.ITreeContentProvider;
9 import org.eclipse.jface.viewers.Viewer;
10
11 /**
12 * Enables browsing in local public slc distribution repositories. For the time
13 * being, it supports only one repository at a time. Repository factory must be
14 * injected
15 */
16
17 public class AnonymousDistTreeContentProvider implements ITreeContentProvider {
18
19 // List<RepoElem> repositories = new ArrayList<RepoElem>();
20 private RepoElem publicRepo;
21
22 private RepositoryFactory repositoryFactory;
23
24 /**
25 * @param input
26 * the URI to the public repository to browse
27 */
28 public Object[] getElements(Object input) {
29 String uri = (String) input;
30 publicRepo = new RepoElem(repositoryFactory, uri,
31 "Argeo Public Repository");
32 return publicRepo.getChildren();
33 }
34
35 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
36 }
37
38 public Object[] getChildren(Object parentElement) {
39 if (parentElement instanceof DistParentElem) {
40 return ((DistParentElem) parentElement).getChildren();
41 } else
42 return null;
43 }
44
45 public Object getParent(Object element) {
46 return null;
47 }
48
49 public boolean hasChildren(Object element) {
50 if (element instanceof WorkspaceElem)
51 return false;
52 else if (element instanceof DistParentElem)
53 return true;
54 else
55 return false;
56 }
57
58 public void dispose() {
59 publicRepo.dispose();
60 }
61
62 /*
63 * DEPENDENCY INJECTION
64 */
65 public void setRepositoryFactory(RepositoryFactory repositoryFactory) {
66 this.repositoryFactory = repositoryFactory;
67 }
68 }