Fixed a TreeItem bug where leaf nodes were converted to full nodes when a child was added, but they were assumed to be leaf nodes when the last child was removed. Now, we check if the item has been converted to a full node and apply the leaf image if it has, otherwise we apply the margin in place of the leaf image.
Patch by: jlabanca
Review by: ecc (desk)
Issue: 2491
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@3692 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/ui/Tree.java b/user/src/com/google/gwt/user/client/ui/Tree.java
index 222f319..0a26558 100644
--- a/user/src/com/google/gwt/user/client/ui/Tree.java
+++ b/user/src/com/google/gwt/user/client/ui/Tree.java
@@ -777,7 +777,7 @@
* @param treeItem the tree item
*/
void showLeafImage(TreeItem treeItem) {
- if (useLeafImages) {
+ if (useLeafImages || treeItem.isFullNode()) {
showImage(treeItem, images.treeLeaf());
} else {
DOM.setStyleAttribute(treeItem.getElement(), "paddingLeft", indentValue);
diff --git a/user/src/com/google/gwt/user/client/ui/TreeItem.java b/user/src/com/google/gwt/user/client/ui/TreeItem.java
index 724beab..a26ce4a 100644
--- a/user/src/com/google/gwt/user/client/ui/TreeItem.java
+++ b/user/src/com/google/gwt/user/client/ui/TreeItem.java
@@ -688,7 +688,7 @@
}
Element getImageHolderElement() {
- if (imageHolder == null) {
+ if (!isFullNode()) {
convertToFullNode();
}
return imageHolder;
@@ -702,6 +702,10 @@
children = new ArrayList<TreeItem>();
}
+ boolean isFullNode() {
+ return imageHolder != null;
+ }
+
void setParentItem(TreeItem parent) {
this.parent = parent;
}