]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.browsing.ui.nattable/src/org/simantics/browsing/ui/nattable/GETreeRowModel.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.browsing.ui.nattable / src / org / simantics / browsing / ui / nattable / GETreeRowModel.java
index 762b47ce008ab29f1e96d8ed520ba402d0e685d5..241fdfb420056c02b908c25d4aeeef94ed3ac6cb 100644 (file)
-package org.simantics.browsing.ui.nattable;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.Collections;\r
-import java.util.HashSet;\r
-import java.util.List;\r
-\r
-import org.eclipse.nebula.widgets.nattable.tree.ITreeData;\r
-import org.eclipse.nebula.widgets.nattable.tree.ITreeRowModel;\r
-import org.eclipse.nebula.widgets.nattable.tree.ITreeRowModelListener;\r
-\r
-import it.unimi.dsi.fastutil.ints.IntOpenHashSet;\r
-\r
-/**\r
- * ITreeRowModel that does not automatically expand all child nodes (as TreeRowModel does). \r
- * \r
- * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
- *\r
- * @param <T>\r
- */\r
-public class GETreeRowModel<T> implements ITreeRowModel<T>{\r
-       //private final HashSet<Integer> parentIndexes = new HashSet<Integer>();\r
-       //private final TIntHashSet parentIndexes = new TIntHashSet(1000, 0.8f);\r
-       private final IntOpenHashSet expandedIndexes = new IntOpenHashSet();\r
-\r
-       private final Collection<ITreeRowModelListener> listeners = new HashSet<ITreeRowModelListener>();\r
-\r
-       private final ITreeData<T> treeData;\r
-\r
-       public GETreeRowModel(ITreeData<T> treeData) {\r
-               this.treeData = treeData;\r
-       }\r
-\r
-       public void registerRowGroupModelListener(ITreeRowModelListener listener) {\r
-               this.listeners.add(listener);\r
-       }\r
-\r
-       public void notifyListeners() {\r
-               for (ITreeRowModelListener listener : this.listeners) {\r
-                       listener.treeRowModelChanged();\r
-               }\r
-       }\r
-\r
-       public int depth(int index) {\r
-               return this.treeData.getDepthOfData(this.treeData.getDataAtIndex(index));\r
-       }\r
-\r
-       public boolean isLeaf(int index) {\r
-               return !hasChildren(index);\r
-       }\r
-\r
-       public String getObjectAtIndexAndDepth(int index, int depth) {\r
-               return this.treeData.formatDataForDepth(depth,this.treeData.getDataAtIndex(index));\r
-       }\r
-\r
-       public boolean hasChildren(int index) {\r
-               return this.treeData.hasChildren(this.treeData.getDataAtIndex(index));\r
-       }\r
-       \r
-       public boolean isCollapsed(int index) {\r
-               return !this.expandedIndexes.contains(index);\r
-       }\r
-\r
-       public void clear() {\r
-               this.expandedIndexes.clear();\r
-       }\r
-       \r
-       @Override\r
-       public boolean isCollapsible(int index) {\r
-               return hasChildren(index);\r
-       }\r
-\r
-       @Override\r
-       public List<Integer> collapse(int index) {\r
-               this.expandedIndexes.remove(index);\r
-               notifyListeners();\r
-               List<Integer> list = getChildIndexes(index);\r
-               //this.parentIndexes.addAll(list);\r
-               return list;\r
-       }\r
-       \r
-       \r
-\r
-       @Override\r
-       public List<Integer> expand(int index) {\r
-               this.expandedIndexes.add(index);\r
-               notifyListeners();\r
-               List<Integer> children = getExpandedChildIndexes(index);\r
-               return children;\r
-       }\r
-       \r
-       @Override\r
-       public List<Integer> collapseAll() {\r
-               return null;\r
-       }\r
-       \r
-       \r
-       @Override\r
-       public List<Integer> expandToLevel(int level) {\r
-               // TODO Auto-generated method stub\r
-               return null;\r
-       }\r
-       \r
-       @Override\r
-       public List<Integer> expandToLevel(T object, int level) {\r
-               // TODO Auto-generated method stub\r
-               return null;\r
-       }\r
-       \r
-       @Override\r
-       public List<Integer> expandAll() {\r
-               // TODO Auto-generated method stub\r
-               return null;\r
-       }\r
-       \r
-       @Override\r
-       public List<Integer> expandToLevel(int parentIndex, int level) {\r
-               // TODO Auto-generated method stub\r
-               return null;\r
-       }\r
-       \r
-       @Override\r
-       public List<T> getChildren(int parentIndex) {\r
-               T t = treeData.getDataAtIndex(parentIndex);\r
-               return treeData.getChildren(t,true);\r
-       }\r
-       \r
-       @Override\r
-       public List<T> getDirectChildren(int parentIndex) {\r
-               return treeData.getChildren(parentIndex);\r
-       }\r
-       \r
-       \r
-       @Override\r
-       public List<Integer> collapse(T object) {\r
-               int index = treeData.indexOf(object);\r
-               return collapse(index);\r
-       }\r
-       \r
-       @Override\r
-       public List<Integer> expand(T object) {\r
-               int index = treeData.indexOf(object);\r
-               return expand(index);\r
-       }\r
-       \r
-       @Override\r
-       public boolean isCollapsed(T object) {\r
-               int index = treeData.indexOf(object);\r
-               return isCollapsed(index);\r
-       }\r
-       \r
-\r
-       @SuppressWarnings("unchecked")\r
-       public List<Integer> getChildIndexes(int parentIndex) {\r
-               List<Integer> result = new ArrayList<Integer>();\r
-               T t = this.treeData.getDataAtIndex(parentIndex);\r
-               if (t == null)\r
-                       return Collections.EMPTY_LIST;\r
-               List<T> children = this.treeData.getChildren(t);\r
-               for (T child : children) {\r
-                       int index = this.treeData.indexOf(child);\r
-                       if (index >= 0) {\r
-                               result.add(index);\r
-                               result.addAll(getChildIndexes(index));\r
-                       } else {\r
-                               result.addAll(getChildIndexes(child));\r
-                       }\r
-               }\r
-               return result;\r
-       }\r
-       \r
-       public List<Integer> getChildIndexes(T t) {\r
-               List<Integer> result = new ArrayList<Integer>();\r
-               List<T> children = this.treeData.getChildren(t);\r
-               for (T child : children) {\r
-                       int index = this.treeData.indexOf(child);\r
-                       if (index >= 0) {\r
-                               result.add(index);\r
-                               result.addAll(getChildIndexes(index));\r
-                       } else {\r
-                               result.addAll(getChildIndexes(child));\r
-                       }\r
-               }\r
-               return result;\r
-       }\r
-       \r
-       @SuppressWarnings("unchecked")\r
-       public List<Integer> getExpandedChildIndexes(int parentIndex) {\r
-               List<Integer> result = new ArrayList<Integer>();\r
-               T t = this.treeData.getDataAtIndex(parentIndex);\r
-               if (t == null)\r
-                       return Collections.EMPTY_LIST;\r
-               List<T> children = this.treeData.getChildren(t);\r
-               for (T child : children) {\r
-                       int index = this.treeData.indexOf(child);\r
-                       if (index >= 0) {\r
-                               result.add(index);\r
-                               if (expandedIndexes.contains(index))\r
-                                       result.addAll(getExpandedChildIndexes(index));\r
-                       } else {\r
-                               result.addAll(getExpandedChildIndexes(child));\r
-                       }\r
-               }\r
-               return result;\r
-       }\r
-       \r
-       public List<Integer> getExpandedChildIndexes(T t) {\r
-               List<Integer> result = new ArrayList<Integer>();\r
-               List<T> children = this.treeData.getChildren(t);\r
-               for (T child : children) {\r
-                       int index = this.treeData.indexOf(child);\r
-                       if (index >= 0) {\r
-                               result.add(index);\r
-                               if (expandedIndexes.contains(index))\r
-                                       result.addAll(getExpandedChildIndexes(index));\r
-                       } else {\r
-                               result.addAll(getExpandedChildIndexes(child));\r
-                       }\r
-               }\r
-               return result;\r
-       }\r
-       \r
-       @Override\r
-       public List<Integer> getDirectChildIndexes(int parentIndex) {\r
-               List<Integer> result = new ArrayList<Integer>();\r
-               T t = this.treeData.getDataAtIndex(parentIndex);\r
-               if (t == null)\r
-                       return Collections.EMPTY_LIST;\r
-               List<T> children = this.treeData.getChildren(t);\r
-               for (T child : children) {\r
-                       int index = this.treeData.indexOf(child);\r
-                       if (index >= 0) {\r
-                               result.add(index);\r
-                       }\r
-               }\r
-               return result;\r
-       }\r
-       \r
-       public ITreeData<T> getTreeData() {\r
-               return treeData;\r
-       }\r
-}\r
+package org.simantics.browsing.ui.nattable;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+
+import org.eclipse.nebula.widgets.nattable.tree.ITreeData;
+import org.eclipse.nebula.widgets.nattable.tree.ITreeRowModel;
+import org.eclipse.nebula.widgets.nattable.tree.ITreeRowModelListener;
+
+import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
+
+/**
+ * ITreeRowModel that does not automatically expand all child nodes (as TreeRowModel does). 
+ * 
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>
+ *
+ * @param <T>
+ */
+public class GETreeRowModel<T> implements ITreeRowModel<T>{
+       //private final HashSet<Integer> parentIndexes = new HashSet<Integer>();
+       //private final TIntHashSet parentIndexes = new TIntHashSet(1000, 0.8f);
+       private final IntOpenHashSet expandedIndexes = new IntOpenHashSet();
+
+       private final Collection<ITreeRowModelListener> listeners = new HashSet<ITreeRowModelListener>();
+
+       private final ITreeData<T> treeData;
+
+       public GETreeRowModel(ITreeData<T> treeData) {
+               this.treeData = treeData;
+       }
+
+       public void registerRowGroupModelListener(ITreeRowModelListener listener) {
+               this.listeners.add(listener);
+       }
+
+       public void notifyListeners() {
+               for (ITreeRowModelListener listener : this.listeners) {
+                       listener.treeRowModelChanged();
+               }
+       }
+
+       public int depth(int index) {
+               return this.treeData.getDepthOfData(this.treeData.getDataAtIndex(index));
+       }
+
+       public boolean isLeaf(int index) {
+               return !hasChildren(index);
+       }
+
+       public String getObjectAtIndexAndDepth(int index, int depth) {
+               return this.treeData.formatDataForDepth(depth,this.treeData.getDataAtIndex(index));
+       }
+
+       public boolean hasChildren(int index) {
+               return this.treeData.hasChildren(this.treeData.getDataAtIndex(index));
+       }
+       
+       public boolean isCollapsed(int index) {
+               return !this.expandedIndexes.contains(index);
+       }
+
+       public void clear() {
+               this.expandedIndexes.clear();
+       }
+       
+       @Override
+       public boolean isCollapsible(int index) {
+               return hasChildren(index);
+       }
+
+       @Override
+       public List<Integer> collapse(int index) {
+               this.expandedIndexes.remove(index);
+               notifyListeners();
+               List<Integer> list = getChildIndexes(index);
+               //this.parentIndexes.addAll(list);
+               return list;
+       }
+       
+       
+
+       @Override
+       public List<Integer> expand(int index) {
+               this.expandedIndexes.add(index);
+               notifyListeners();
+               List<Integer> children = getExpandedChildIndexes(index);
+               return children;
+       }
+       
+       @Override
+       public List<Integer> collapseAll() {
+               return null;
+       }
+       
+       
+       @Override
+       public List<Integer> expandToLevel(int level) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+       
+       @Override
+       public List<Integer> expandToLevel(T object, int level) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+       
+       @Override
+       public List<Integer> expandAll() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+       
+       @Override
+       public List<Integer> expandToLevel(int parentIndex, int level) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+       
+       @Override
+       public List<T> getChildren(int parentIndex) {
+               T t = treeData.getDataAtIndex(parentIndex);
+               return treeData.getChildren(t,true);
+       }
+       
+       @Override
+       public List<T> getDirectChildren(int parentIndex) {
+               return treeData.getChildren(parentIndex);
+       }
+       
+       
+       @Override
+       public List<Integer> collapse(T object) {
+               int index = treeData.indexOf(object);
+               return collapse(index);
+       }
+       
+       @Override
+       public List<Integer> expand(T object) {
+               int index = treeData.indexOf(object);
+               return expand(index);
+       }
+       
+       @Override
+       public boolean isCollapsed(T object) {
+               int index = treeData.indexOf(object);
+               return isCollapsed(index);
+       }
+       
+
+       @SuppressWarnings("unchecked")
+       public List<Integer> getChildIndexes(int parentIndex) {
+               List<Integer> result = new ArrayList<Integer>();
+               T t = this.treeData.getDataAtIndex(parentIndex);
+               if (t == null)
+                       return Collections.EMPTY_LIST;
+               List<T> children = this.treeData.getChildren(t);
+               for (T child : children) {
+                       int index = this.treeData.indexOf(child);
+                       if (index >= 0) {
+                               result.add(index);
+                               result.addAll(getChildIndexes(index));
+                       } else {
+                               result.addAll(getChildIndexes(child));
+                       }
+               }
+               return result;
+       }
+       
+       public List<Integer> getChildIndexes(T t) {
+               List<Integer> result = new ArrayList<Integer>();
+               List<T> children = this.treeData.getChildren(t);
+               for (T child : children) {
+                       int index = this.treeData.indexOf(child);
+                       if (index >= 0) {
+                               result.add(index);
+                               result.addAll(getChildIndexes(index));
+                       } else {
+                               result.addAll(getChildIndexes(child));
+                       }
+               }
+               return result;
+       }
+       
+       @SuppressWarnings("unchecked")
+       public List<Integer> getExpandedChildIndexes(int parentIndex) {
+               List<Integer> result = new ArrayList<Integer>();
+               T t = this.treeData.getDataAtIndex(parentIndex);
+               if (t == null)
+                       return Collections.EMPTY_LIST;
+               List<T> children = this.treeData.getChildren(t);
+               for (T child : children) {
+                       int index = this.treeData.indexOf(child);
+                       if (index >= 0) {
+                               result.add(index);
+                               if (expandedIndexes.contains(index))
+                                       result.addAll(getExpandedChildIndexes(index));
+                       } else {
+                               result.addAll(getExpandedChildIndexes(child));
+                       }
+               }
+               return result;
+       }
+       
+       public List<Integer> getExpandedChildIndexes(T t) {
+               List<Integer> result = new ArrayList<Integer>();
+               List<T> children = this.treeData.getChildren(t);
+               for (T child : children) {
+                       int index = this.treeData.indexOf(child);
+                       if (index >= 0) {
+                               result.add(index);
+                               if (expandedIndexes.contains(index))
+                                       result.addAll(getExpandedChildIndexes(index));
+                       } else {
+                               result.addAll(getExpandedChildIndexes(child));
+                       }
+               }
+               return result;
+       }
+       
+       @Override
+       public List<Integer> getDirectChildIndexes(int parentIndex) {
+               List<Integer> result = new ArrayList<Integer>();
+               T t = this.treeData.getDataAtIndex(parentIndex);
+               if (t == null)
+                       return Collections.EMPTY_LIST;
+               List<T> children = this.treeData.getChildren(t);
+               for (T child : children) {
+                       int index = this.treeData.indexOf(child);
+                       if (index >= 0) {
+                               result.add(index);
+                       }
+               }
+               return result;
+       }
+       
+       public ITreeData<T> getTreeData() {
+               return treeData;
+       }
+}