-package org.simantics.browsing.ui.nattable;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.eclipse.nebula.widgets.nattable.tree.ITreeData;\r
-\r
-public class GETreeData implements ITreeData<TreeNode> {\r
- List<TreeNode> list;\r
- \r
- public GETreeData(List<TreeNode> list) {\r
- this.list = list;\r
- }\r
- \r
- @Override\r
- public String formatDataForDepth(int depth, TreeNode object) {\r
- return null;\r
- }\r
- \r
- @Override\r
- public List<TreeNode> getChildren(TreeNode object) {\r
- return (List<TreeNode>)object.getChildren();\r
- }\r
- \r
- @Override\r
- public TreeNode getDataAtIndex(int index) {\r
- if (index < 0 || index >= list.size() )\r
- return null;\r
- return list.get(index);\r
- }\r
- \r
- @Override\r
- public int getDepthOfData(TreeNode object) {\r
- int count = object.getDepth()-1; // -1 removes invisible root.\r
- return count;\r
- }\r
- \r
- @Override\r
- public boolean hasChildren(TreeNode object) {\r
- return object.getChildren().size() > 0;\r
- }\r
- \r
- @Override\r
- public int indexOf(TreeNode child) {\r
- return child.getListIndex();\r
- }\r
- \r
- @Override\r
- public boolean hasChildren(int index) {\r
- return hasChildren(list.get(index));\r
- }\r
- \r
- @Override\r
- public String formatDataForDepth(int depth, int index) {\r
- return formatDataForDepth(depth, list.get(index));\r
- }\r
- \r
- @Override\r
- public List<TreeNode> getChildren(int index) {\r
- return getChildren(list.get(index));\r
- }\r
- \r
- @Override\r
- public List<TreeNode> getChildren(TreeNode object, boolean fullDepth) {\r
- if (!fullDepth) {\r
- return getChildren(object);\r
- } else {\r
- List<TreeNode> list = new ArrayList<TreeNode>();\r
- _convertToList(list, object);\r
- return list;\r
- }\r
- \r
- }\r
- private void _convertToList(List<TreeNode> list, TreeNode task) {\r
- list.add(task);\r
- for (TreeNode t : task.getChildren()) {\r
- _convertToList(list, t);\r
- }\r
- }\r
- @Override\r
- public int getDepthOfData(int index) {\r
- return getDepthOfData(list.get(index));\r
- }\r
- \r
- @Override\r
- public boolean isValidIndex(int index) {\r
- if (index < 0)\r
- return false;\r
- if (index >= list.size())\r
- return false;\r
- return true;\r
- }\r
- \r
- @Override\r
- public int getElementCount() {\r
- return list.size();\r
- }\r
- \r
- public boolean isRoot(TreeNode object) {\r
- TreeNode parent = object.getParent();\r
- parent = parent.getParent();\r
- return (parent == null);\r
- }\r
-\r
- \r
+package org.simantics.browsing.ui.nattable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.nebula.widgets.nattable.tree.ITreeData;
+
+public class GETreeData implements ITreeData<TreeNode> {
+ List<TreeNode> list;
+
+ public GETreeData(List<TreeNode> list) {
+ this.list = list;
+ }
+
+ @Override
+ public String formatDataForDepth(int depth, TreeNode object) {
+ return null;
+ }
+
+ @Override
+ public List<TreeNode> getChildren(TreeNode object) {
+ return (List<TreeNode>)object.getChildren();
+ }
+
+ @Override
+ public TreeNode getDataAtIndex(int index) {
+ if (index < 0 || index >= list.size() )
+ return null;
+ return list.get(index);
+ }
+
+ @Override
+ public int getDepthOfData(TreeNode object) {
+ int count = object.getDepth()-1; // -1 removes invisible root.
+ return count;
+ }
+
+ @Override
+ public boolean hasChildren(TreeNode object) {
+ return object.getChildren().size() > 0;
+ }
+
+ @Override
+ public int indexOf(TreeNode child) {
+ return child.getListIndex();
+ }
+
+ @Override
+ public boolean hasChildren(int index) {
+ return hasChildren(list.get(index));
+ }
+
+ @Override
+ public String formatDataForDepth(int depth, int index) {
+ return formatDataForDepth(depth, list.get(index));
+ }
+
+ @Override
+ public List<TreeNode> getChildren(int index) {
+ return getChildren(list.get(index));
+ }
+
+ @Override
+ public List<TreeNode> getChildren(TreeNode object, boolean fullDepth) {
+ if (!fullDepth) {
+ return getChildren(object);
+ } else {
+ List<TreeNode> list = new ArrayList<TreeNode>();
+ _convertToList(list, object);
+ return list;
+ }
+
+ }
+ private void _convertToList(List<TreeNode> list, TreeNode task) {
+ list.add(task);
+ for (TreeNode t : task.getChildren()) {
+ _convertToList(list, t);
+ }
+ }
+ @Override
+ public int getDepthOfData(int index) {
+ return getDepthOfData(list.get(index));
+ }
+
+ @Override
+ public boolean isValidIndex(int index) {
+ if (index < 0)
+ return false;
+ if (index >= list.size())
+ return false;
+ return true;
+ }
+
+ @Override
+ public int getElementCount() {
+ return list.size();
+ }
+
+ public boolean isRoot(TreeNode object) {
+ TreeNode parent = object.getParent();
+ parent = parent.getParent();
+ return (parent == null);
+ }
+
+