Fixes for spurious horizontal scrollbars appearing for trees in RTL mode. Also cleaned up a dingleberry that was lying around after the contstructor->init refactoring.

Patch by: rdayal, adil.allawi
Review by: jgw

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2400 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 5801f50..c7778cc 100644
--- a/user/src/com/google/gwt/user/client/ui/Tree.java
+++ b/user/src/com/google/gwt/user/client/ui/Tree.java
@@ -158,63 +158,7 @@
    * @param images a bundle that provides tree specific images
    */
   public Tree(TreeImages images) {
-    this.images = images;
-    setElement(DOM.createDiv());
-    DOM.setStyleAttribute(getElement(), "position", "relative");
-    focusable = FocusPanel.impl.createFocusable();
-    DOM.setStyleAttribute(focusable, "fontSize", "0");
-    DOM.setStyleAttribute(focusable, "position", "absolute");
-    DOM.setIntStyleAttribute(focusable, "zIndex", -1);
-    DOM.appendChild(getElement(), focusable);
-
-    sinkEvents(Event.MOUSEEVENTS | Event.ONCLICK | Event.KEYEVENTS);
-    DOM.sinkEvents(focusable, Event.FOCUSEVENTS);
-
-    // The 'root' item is invisible and serves only as a container
-    // for all top-level items.
-    root = new TreeItem() {
-      @Override
-      public void addItem(TreeItem item) {
-        // If this element already belongs to a tree or tree item, remove it.
-        if ((item.getParentItem() != null) || (item.getTree() != null)) {
-          item.remove();
-        }
-        DOM.appendChild(Tree.this.getElement(), item.getElement());
-
-        item.setTree(this.getTree());
-
-        // Explicitly set top-level items' parents to null.
-        item.setParentItem(null);
-        getChildren().add(item);
-
-        // Use no margin on top-most items.
-        if (LocaleInfo.getCurrentLocale().isRTL()) {
-          DOM.setIntStyleAttribute(item.getElement(), "marginRight", 0);
-        } else {
-          DOM.setIntStyleAttribute(item.getElement(), "marginLeft", 0);
-        }        
-      }
-
-      @Override
-      public void removeItem(TreeItem item) {
-        if (!getChildren().contains(item)) {
-          return;
-        }
-
-        // Update Item state.
-        item.setTree(null);
-        item.setParentItem(null);
-        getChildren().remove(item);
-
-        DOM.removeChild(Tree.this.getElement(), item.getElement());
-      }
-    };
-    root.setTree(this);
-    setStyleName("gwt-Tree");
-    
-    // Add a11y role "tree"
-    Accessibility.setRole(getElement(), Accessibility.ROLE_TREE);
-    Accessibility.setRole(focusable, Accessibility.ROLE_TREEITEM);
+    init(images);
   }
 
   /**
@@ -826,9 +770,11 @@
     this.images = images;
     setElement(DOM.createDiv());
     DOM.setStyleAttribute(getElement(), "position", "relative");
+    DOM.setStyleAttribute(getElement(), "zoom", "1");
     focusable = FocusPanel.impl.createFocusable();
     DOM.setStyleAttribute(focusable, "fontSize", "0");
     DOM.setStyleAttribute(focusable, "position", "absolute");
+    DOM.setStyleAttribute(focusable, "outline", "0px");
     DOM.setIntStyleAttribute(focusable, "zIndex", -1);
     DOM.appendChild(getElement(), focusable);