aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/ui/Tree.java
diff options
context:
space:
mode:
authorMatti Tahvonen <matti.tahvonen@itmill.com>2007-11-13 10:02:27 +0000
committerMatti Tahvonen <matti.tahvonen@itmill.com>2007-11-13 10:02:27 +0000
commit843a68447aeb600af41ca89bc57e5dfcd6c3b09b (patch)
tree7f3420588f6144ae37ffd486818da70719333f8b /src/com/itmill/toolkit/ui/Tree.java
parent08188cec0e45ed2817e8578cc5bd6c14aa97cdc4 (diff)
downloadvaadin-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.java25
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);
}
}
}