View Javadoc
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   * Enable 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  public class AnonymousDistTreeContentProvider implements ITreeContentProvider {
16  	private static final long serialVersionUID = -4149180221319229128L;
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  }