View Javadoc
1   package org.argeo.cms.ui.internal;
2   
3   import java.util.ArrayList;
4   
5   import javax.jcr.Node;
6   import javax.jcr.NodeIterator;
7   import javax.jcr.RepositoryException;
8   
9   import org.argeo.cms.CmsException;
10  import org.eclipse.jface.viewers.ITreeContentProvider;
11  import org.eclipse.jface.viewers.Viewer;
12  
13  @Deprecated
14  class JcrContentProvider implements ITreeContentProvider {
15  	private static final long serialVersionUID = -1333678161322488674L;
16  
17  	@Override
18  	public void dispose() {
19  	}
20  
21  	@Override
22  	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
23  		if (newInput == null)
24  			return;
25  		if (!(newInput instanceof Node))
26  			throw new CmsException("Input " + newInput + " must be a node");
27  	}
28  
29  	@Override
30  	public Object[] getElements(Object inputElement) {
31  		try {
32  			Node node = (Node) inputElement;
33  			ArrayList<Node> arr = new ArrayList<Node>();
34  			NodeIterator nit = node.getNodes();
35  			while (nit.hasNext()) {
36  				arr.add(nit.nextNode());
37  			}
38  			return arr.toArray();
39  		} catch (RepositoryException e) {
40  			throw new CmsException("Cannot get elements", e);
41  		}
42  	}
43  
44  	@Override
45  	public Object[] getChildren(Object parentElement) {
46  		try {
47  			Node node = (Node) parentElement;
48  			ArrayList<Node> arr = new ArrayList<Node>();
49  			NodeIterator nit = node.getNodes();
50  			while (nit.hasNext()) {
51  				arr.add(nit.nextNode());
52  			}
53  			return arr.toArray();
54  		} catch (RepositoryException e) {
55  			throw new CmsException("Cannot get elements", e);
56  		}
57  	}
58  
59  	@Override
60  	public Object getParent(Object element) {
61  		try {
62  			Node node = (Node) element;
63  			if (node.getName().equals(""))
64  				return null;
65  			else
66  				return node.getParent();
67  		} catch (RepositoryException e) {
68  			throw new CmsException("Cannot get elements", e);
69  		}
70  	}
71  
72  	@Override
73  	public boolean hasChildren(Object element) {
74  		try {
75  			Node node = (Node) element;
76  			return node.hasNodes();
77  		} catch (RepositoryException e) {
78  			throw new CmsException("Cannot get elements", e);
79  		}
80  	}
81  }