You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/08/03 21:27:00 UTC
svn commit: r982009 - in /pivot/trunk/wtk/src/org/apache/pivot/wtk/content:
TreeBranch.java TreeNode.java
Author: gbrown
Date: Tue Aug 3 19:26:59 2010
New Revision: 982009
URL: http://svn.apache.org/viewvc?rev=982009&view=rev
Log:
Resolve PIVOT-583.
Modified:
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeBranch.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeNode.java
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeBranch.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeBranch.java?rev=982009&r1=982008&r2=982009&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeBranch.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeBranch.java Tue Aug 3 19:26:59 2010
@@ -27,7 +27,6 @@ import org.apache.pivot.util.ImmutableIt
import org.apache.pivot.util.ListenerList;
import org.apache.pivot.wtk.media.Image;
-
/**
* Default tree branch implementation.
*/
@@ -69,20 +68,49 @@ public class TreeBranch extends TreeNode
@Override
public int add(TreeNode treeNode) {
+ if (treeNode == null) {
+ throw new IllegalArgumentException("treeNode is null.");
+ }
+
+ if (treeNode.getParent() != null) {
+ throw new IllegalArgumentException("treeNode already has a parent.");
+ }
+
int index = treeNodes.add(treeNode);
+ treeNode.setParent(this);
listListeners.itemInserted(this, index);
+
return index;
}
@Override
public void insert(TreeNode treeNode, int index) {
+ if (treeNode == null) {
+ throw new IllegalArgumentException("treeNode is null.");
+ }
+
+ if (treeNode.getParent() != null) {
+ throw new IllegalArgumentException("treeNode already has a parent.");
+ }
+
treeNodes.insert(treeNode, index);
+ treeNode.setParent(this);
listListeners.itemInserted(this, index);
}
@Override
public TreeNode update(int index, TreeNode treeNode) {
+ if (treeNode == null) {
+ throw new IllegalArgumentException("treeNode is null.");
+ }
+
+ if (treeNode.getParent() != null) {
+ throw new IllegalArgumentException("treeNode already has a parent.");
+ }
+
TreeNode previousTreeNode = treeNodes.update(index, treeNode);
+ previousTreeNode.setParent(null);
+ treeNode.setParent(this);
listListeners.itemUpdated(this, index, previousTreeNode);
return previousTreeNode;
@@ -102,6 +130,11 @@ public class TreeBranch extends TreeNode
public Sequence<TreeNode> remove(int index, int count) {
Sequence<TreeNode> removed = treeNodes.remove(index, count);
if (count > 0) {
+ for (int i = 0, n = removed.getLength(); i < n; i++ ) {
+ TreeNode treeNode = removed.get(i);
+ treeNode.setParent(null);
+ }
+
listListeners.itemsRemoved(this, index, removed);
}
@@ -111,6 +144,11 @@ public class TreeBranch extends TreeNode
@Override
public void clear() {
if (getLength() > 0) {
+ for (int i = 0, n = treeNodes.getLength(); i < n; i++) {
+ TreeNode treeNode = treeNodes.get(i);
+ treeNode.setParent(null);
+ }
+
treeNodes.clear();
listListeners.listCleared(this);
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeNode.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeNode.java?rev=982009&r1=982008&r2=982009&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeNode.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeNode.java Tue Aug 3 19:26:59 2010
@@ -26,6 +26,8 @@ import org.apache.pivot.wtk.media.Image;
* Default tree node implementation.
*/
public class TreeNode {
+ private TreeBranch parent = null;
+
private Image icon = null;
private String text = null;
@@ -46,6 +48,14 @@ public class TreeNode {
this.text = text;
}
+ public TreeBranch getParent() {
+ return parent;
+ }
+
+ protected void setParent(TreeBranch parent) {
+ this.parent = parent;
+ }
+
public Image getIcon() {
return icon;
}