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