diff options
author | Matti Tahvonen <matti.tahvonen@itmill.com> | 2007-11-13 10:02:27 +0000 |
---|---|---|
committer | Matti Tahvonen <matti.tahvonen@itmill.com> | 2007-11-13 10:02:27 +0000 |
commit | 843a68447aeb600af41ca89bc57e5dfcd6c3b09b (patch) | |
tree | 7f3420588f6144ae37ffd486818da70719333f8b /src/com/itmill/toolkit/ui/Tree.java | |
parent | 08188cec0e45ed2817e8578cc5bd6c14aa97cdc4 (diff) | |
download | vaadin-framework-843a68447aeb600af41ca89bc57e5dfcd6c3b09b.tar.gz vaadin-framework-843a68447aeb600af41ca89bc57e5dfcd6c3b09b.zip |
collapsing events now handled
svn changeset:2799/svn branch:trunk
Diffstat (limited to 'src/com/itmill/toolkit/ui/Tree.java')
-rw-r--r-- | src/com/itmill/toolkit/ui/Tree.java | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/com/itmill/toolkit/ui/Tree.java b/src/com/itmill/toolkit/ui/Tree.java index fb5bce08ca..a86717eb84 100644 --- a/src/com/itmill/toolkit/ui/Tree.java +++ b/src/com/itmill/toolkit/ui/Tree.java @@ -168,6 +168,19 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, * @return True iff the expand operation succeeded */ public boolean expandItem(Object itemId) { + return expandItem(itemId, true); + } + + /** + * Expands an item. + * + * @param itemId + * the item id. + * @param sendChildTree + * flag to indicate if client needs subtree or not (may be cached) + * @return True iff the expand operation succeeded + */ + private boolean expandItem(Object itemId, boolean sendChildTree) { // Succeeds if the node is already expanded if (isExpanded(itemId)) { @@ -185,7 +198,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, this.expandedItemId = itemId; if (this.initialPaint) { requestRepaint(); - } else { + } else if(sendChildTree) { requestPartialRepaint(); } fireExpandEvent(itemId); @@ -223,14 +236,14 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, // Expands recursively while (!todo.isEmpty()) { Object id = todo.pop(); - if (areChildrenAllowed(id) && !expandItem(id)) { + if (areChildrenAllowed(id) && !expandItem(id, false)) { result = false; } if (hasChildren(id)) { todo.addAll(getChildren(id)); } } - + requestRepaint(); return result; } @@ -358,11 +371,15 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, // Expands the nodes if (variables.containsKey("expand")) { + boolean sendChildTree = false; + if(variables.containsKey("requestChildTree")) { + sendChildTree = true; + } String[] keys = (String[]) variables.get("expand"); for (int i = 0; i < keys.length; i++) { Object id = this.itemIdMapper.get(keys[i]); if (id != null) { - expandItem(id); + expandItem(id, sendChildTree); } } } |