]> git.argeo.org Git - gpl/argeo-slc.git/blob - eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/providers/ArtifactsTreeContentProvider.java
289fef5e038f5ca87ce23aafa329c818a441e8bc
[gpl/argeo-slc.git] / eclipse / plugins / org.argeo.slc.client.ui.dist / src / main / java / org / argeo / slc / client / ui / dist / providers / ArtifactsTreeContentProvider.java
1 package org.argeo.slc.client.ui.dist.providers;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import javax.jcr.Node;
7 import javax.jcr.NodeIterator;
8 import javax.jcr.RepositoryException;
9
10 import org.argeo.ArgeoException;
11 import org.eclipse.jface.viewers.ITreeContentProvider;
12 import org.eclipse.jface.viewers.Viewer;
13
14 public class ArtifactsTreeContentProvider implements ITreeContentProvider {
15 public Object[] getElements(Object parent) {
16 return getChildren(parent);
17 }
18
19 public Object getParent(Object child) {
20 return null;
21 }
22
23 public Object[] getChildren(Object parent) {
24 Object[] elements = null;
25 try {
26 if (parent instanceof Node) {
27 Node node = (Node) parent;
28 NodeIterator ni = node.getNodes();
29 List<Node> nodesList = new ArrayList<Node>();
30 while (ni.hasNext()) {
31 nodesList.add(ni.nextNode());
32 }
33 elements = nodesList.toArray();
34 }
35 } catch (RepositoryException e) {
36 throw new ArgeoException(
37 "Unexpected exception while listing node properties", e);
38 }
39 return elements;
40 }
41
42 public boolean hasChildren(Object parent) {
43 try {
44 if (parent instanceof Node && ((Node) parent).hasNodes()) {
45 return true;
46 }
47 } catch (RepositoryException e) {
48 throw new ArgeoException(
49 "Unexpected exception while checking if property is multiple",
50 e);
51 }
52 return false;
53 }
54
55 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
56 }
57
58 public void dispose() {
59 }
60 }