1 package org.simantics.browsing.ui.nattable;
\r
3 import java.util.ArrayList;
\r
4 import java.util.List;
\r
6 import org.eclipse.nebula.widgets.nattable.tree.ITreeData;
\r
8 public class GETreeData implements ITreeData<TreeNode> {
\r
11 public GETreeData(List<TreeNode> list) {
\r
16 public String formatDataForDepth(int depth, TreeNode object) {
\r
21 public List<TreeNode> getChildren(TreeNode object) {
\r
22 return (List<TreeNode>)object.getChildren();
\r
26 public TreeNode getDataAtIndex(int index) {
\r
27 if (index < 0 || index >= list.size() )
\r
29 return list.get(index);
\r
33 public int getDepthOfData(TreeNode object) {
\r
34 int count = object.getDepth()-1; // -1 removes invisible root.
\r
39 public boolean hasChildren(TreeNode object) {
\r
40 return object.getChildren().size() > 0;
\r
44 public int indexOf(TreeNode child) {
\r
45 return child.getListIndex();
\r
49 public boolean hasChildren(int index) {
\r
50 return hasChildren(list.get(index));
\r
54 public String formatDataForDepth(int depth, int index) {
\r
55 return formatDataForDepth(depth, list.get(index));
\r
59 public List<TreeNode> getChildren(int index) {
\r
60 return getChildren(list.get(index));
\r
64 public List<TreeNode> getChildren(TreeNode object, boolean fullDepth) {
\r
66 return getChildren(object);
\r
68 List<TreeNode> list = new ArrayList<TreeNode>();
\r
69 _convertToList(list, object);
\r
74 private void _convertToList(List<TreeNode> list, TreeNode task) {
\r
76 for (TreeNode t : task.getChildren()) {
\r
77 _convertToList(list, t);
\r
81 public int getDepthOfData(int index) {
\r
82 return getDepthOfData(list.get(index));
\r
86 public boolean isValidIndex(int index) {
\r
89 if (index >= list.size())
\r
95 public int getElementCount() {
\r
99 public boolean isRoot(TreeNode object) {
\r
100 TreeNode parent = object.getParent();
\r
101 parent = parent.getParent();
\r
102 return (parent == null);
\r