add removeAll()
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 29 May 2008 06:53:45 +0000 (08:53 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 29 May 2008 06:53:45 +0000 (08:53 +0200)
set parent of removed children to null

src/net/pterodactylus/util/swing/SortableTreeNode.java

index dbdeb68..01cc3b1 100644 (file)
@@ -139,6 +139,13 @@ public class SortableTreeNode implements MutableTreeNode {
                return children.isEmpty();
        }
 
+       /**
+        * {@inheritDoc}
+        */
+       public Enumeration<?> children() {
+               return Collections.enumeration(children);
+       }
+
        //
        // ACTIONS
        //
@@ -159,13 +166,14 @@ public class SortableTreeNode implements MutableTreeNode {
         */
        public void insert(MutableTreeNode child, int index) {
                children.add(index, child);
+               child.setParent(this);
        }
 
        /**
         * {@inheritDoc}
         */
        public void remove(int index) {
-               children.remove(index);
+               children.remove(index).setParent(null);
        }
 
        /**
@@ -173,6 +181,7 @@ public class SortableTreeNode implements MutableTreeNode {
         */
        public void remove(MutableTreeNode node) {
                children.remove(node);
+               node.setParent(null);
        }
 
        /**
@@ -186,6 +195,16 @@ public class SortableTreeNode implements MutableTreeNode {
        }
 
        /**
+        * Removes all children of this node.
+        */
+       public void removeAll() {
+               for (MutableTreeNode childNode: children) {
+                       childNode.setParent(null);
+               }
+               children.clear();
+       }
+
+       /**
         * {@inheritDoc}
         */
        public void setParent(MutableTreeNode newParent) {
@@ -235,13 +254,6 @@ public class SortableTreeNode implements MutableTreeNode {
        /**
         * {@inheritDoc}
         */
-       public Enumeration<?> children() {
-               return Collections.enumeration(children);
-       }
-
-       /**
-        * {@inheritDoc}
-        */
        @Override
        public String toString() {
                return (userObject != null) ? userObject.toString() : null;