]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.browsing.ui.nattable/src/org/simantics/browsing/ui/nattable/GETreeData.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.browsing.ui.nattable / src / org / simantics / browsing / ui / nattable / GETreeData.java
1 package org.simantics.browsing.ui.nattable;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.eclipse.nebula.widgets.nattable.tree.ITreeData;
7
8 public class GETreeData implements ITreeData<TreeNode> {
9         List<TreeNode> list;
10         
11         public GETreeData(List<TreeNode> list) {
12                 this.list = list;
13         }
14         
15         @Override
16         public String formatDataForDepth(int depth, TreeNode object) {
17                 return null;
18         }
19         
20         @Override
21         public List<TreeNode> getChildren(TreeNode object) {
22                 return (List<TreeNode>)object.getChildren();
23         }
24         
25         @Override
26         public TreeNode getDataAtIndex(int index) {
27                 if (index < 0 || index >= list.size() )
28                         return null;
29                 return list.get(index);
30         }
31         
32         @Override
33         public int getDepthOfData(TreeNode object) {
34                 int count = object.getDepth()-1; // -1 removes invisible root.
35                 return count;
36         }
37         
38         @Override
39         public boolean hasChildren(TreeNode object) {
40                 return object.getChildren().size() > 0;
41         }
42         
43         @Override
44         public int indexOf(TreeNode child) {
45                 return child.getListIndex();
46         }
47         
48         @Override
49         public boolean hasChildren(int index) {
50                 return hasChildren(list.get(index));
51         }
52         
53         @Override
54         public String formatDataForDepth(int depth, int index) {
55                 return formatDataForDepth(depth, list.get(index));
56         }
57         
58         @Override
59         public List<TreeNode> getChildren(int index) {
60                 return getChildren(list.get(index));
61         }
62         
63         @Override
64         public List<TreeNode> getChildren(TreeNode object, boolean fullDepth) {
65                 if (!fullDepth) {
66                         return getChildren(object);
67                 } else {
68                         List<TreeNode> list = new ArrayList<TreeNode>();
69                         _convertToList(list, object);
70                         return list;
71                 }
72                 
73         }
74         private void _convertToList(List<TreeNode> list, TreeNode task) {
75                 list.add(task);
76                 for (TreeNode t : task.getChildren()) {
77                         _convertToList(list, t);
78                 }
79         }
80         @Override
81         public int getDepthOfData(int index) {
82                 return getDepthOfData(list.get(index));
83         }
84         
85         @Override
86         public boolean isValidIndex(int index) {
87                 if (index < 0)
88                         return false;
89                 if (index >= list.size())
90                         return false;
91                 return true;
92         }
93         
94         @Override
95         public int getElementCount() {
96                 return list.size();
97         }
98         
99         public boolean isRoot(TreeNode object) {
100                 TreeNode parent = object.getParent();
101                 parent = parent.getParent();
102                 return (parent == null);
103         }
104
105         
106 }