]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - eclipse/plugins/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/TreeParent.java
Introduce Eclipse Commons
[lgpl/argeo-commons.git] / eclipse / plugins / org.argeo.eclipse.ui / src / main / java / org / argeo / eclipse / ui / TreeParent.java
diff --git a/eclipse/plugins/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/TreeParent.java b/eclipse/plugins/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/TreeParent.java
new file mode 100644 (file)
index 0000000..d45844d
--- /dev/null
@@ -0,0 +1,44 @@
+package org.argeo.eclipse.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TreeParent extends TreeObject {
+       private List<TreeObject> children;
+
+       private boolean loaded;
+
+       public TreeParent(String name) {
+               super(name);
+               children = new ArrayList<TreeObject>();
+               loaded = false;
+       }
+
+       public synchronized void addChild(TreeObject child) {
+               loaded = true;
+               children.add(child);
+               child.setParent(this);
+       }
+
+       public synchronized void removeChild(TreeObject child) {
+               children.remove(child);
+               child.setParent(null);
+       }
+
+       public synchronized void clearChildren() {
+               loaded = false;
+               children.clear();
+       }
+
+       public synchronized TreeObject[] getChildren() {
+               return (TreeObject[]) children.toArray(new TreeObject[children.size()]);
+       }
+
+       public synchronized boolean hasChildren() {
+               return children.size() > 0;
+       }
+
+       public synchronized Boolean isLoaded() {
+               return loaded;
+       }
+}