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; }