Revision: 10425
Author:   jlaba...@google.com
Date:     Thu Jul  7 10:26:33 2011
Log: Integrating r3302 from GWT 1.5 back into trunk. The change fixes a bug in Tree where opening a TreeItem while another node is selected causes the Tree to scroll to scroll to the selected node (opening an item does not select a node). The original fix was committed directly to the GWT 1.5 branch.

Since I had the file open, I added @Overrides to get rid of compiler warnings. The only actual change is line 659.

Issue: 1467

Review at http://gwt-code-reviews.appspot.com/1467813

Review by: aliibra...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=10425

Modified:
 /trunk/user/src/com/google/gwt/user/client/ui/Tree.java

=======================================
--- /trunk/user/src/com/google/gwt/user/client/ui/Tree.java Wed Feb 16 10:10:39 2011 +++ /trunk/user/src/com/google/gwt/user/client/ui/Tree.java Thu Jul 7 10:26:33 2011
@@ -300,6 +300,7 @@
* @see com.google.gwt.user.client.ui.HasWidgets#add(com.google.gwt.user.client.ui.Widget)
    * @param widget widget to add.
    */
+  @Override
   public void add(Widget widget) {
     addItem(widget);
   }
@@ -309,18 +310,22 @@
    *
    * @see #add(Widget)
    */
+  @Override
   public void add(IsWidget w) {
     this.add(asWidgetOrNull(w));
   }

+  @Override
   public HandlerRegistration addBlurHandler(BlurHandler handler) {
     return addDomHandler(handler, BlurEvent.getType());
   }

+  @Override
public HandlerRegistration addCloseHandler(CloseHandler<TreeItem> handler) {
     return addHandler(handler, CloseEvent.getType());
   }

+  @Override
   public HandlerRegistration addFocusHandler(FocusHandler handler) {
     return addDomHandler(handler, FocusEvent.getType());
   }
@@ -328,6 +333,7 @@
   /**
    * @deprecated Use {@link #addFocusHandler} instead
    */
+  @Override
   @Deprecated
   public void addFocusListener(FocusListener listener) {
     ListenerWrapper.WrappedFocusListener.add(this, listener);
@@ -349,6 +355,7 @@
    * @param itemHtml the html of the item to be added
    * @return the item that was added
    */
+  @Override
   public TreeItem addItem(SafeHtml itemHtml) {
     return root.addItem(itemHtml);
   }
@@ -358,6 +365,7 @@
    *
    * @param item the item to be added
    */
+  @Override
   public void addItem(TreeItem item) {
     root.addItem(item);
   }
@@ -367,6 +375,7 @@
    *
    * @param isItem the wrapper of item to be added
    */
+  @Override
   public void addItem(IsTreeItem isItem) {
     root.addItem(isItem);
   }
@@ -377,6 +386,7 @@
    * @param widget the widget to be added
    * @return the new item
    */
+  @Override
   public TreeItem addItem(Widget widget) {
     return root.addItem(widget);
   }
@@ -386,6 +396,7 @@
    *
    * @see #addItem(Widget)
    */
+  @Override
   public TreeItem addItem(IsWidget w) {
     return this.addItem(asWidgetOrNull(w));
   }
@@ -394,23 +405,28 @@
* @deprecated Use {@link #addKeyDownHandler}, {@link #addKeyUpHandler} and
    *             {@link #addKeyPressHandler} instead
    */
+  @Override
   @Deprecated
   public void addKeyboardListener(KeyboardListener listener) {
     ListenerWrapper.WrappedKeyboardListener.add(this, listener);
   }

+  @Override
   public HandlerRegistration addKeyDownHandler(KeyDownHandler handler) {
     return addDomHandler(handler, KeyDownEvent.getType());
   }

+  @Override
   public HandlerRegistration addKeyPressHandler(KeyPressHandler handler) {
     return addDomHandler(handler, KeyPressEvent.getType());
   }

+  @Override
   public HandlerRegistration addKeyUpHandler(KeyUpHandler handler) {
     return addDomHandler(handler, KeyUpEvent.getType());
   }

+  @Override
public HandlerRegistration addMouseDownHandler(MouseDownHandler handler) {
     return addHandler(handler, MouseDownEvent.getType());
   }
@@ -420,35 +436,43 @@
* {@link #addMouseDownHandler}, {@link #addMouseUpHandler} and
    *             {@link #addMouseOutHandler} instead
    */
+  @Override
   @Deprecated
   public void addMouseListener(MouseListener listener) {
     ListenerWrapper.WrappedMouseListener.add(this, listener);
   }

+  @Override
public HandlerRegistration addMouseMoveHandler(MouseMoveHandler handler) {
     return addDomHandler(handler, MouseMoveEvent.getType());
   }

+  @Override
   public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
     return addDomHandler(handler, MouseOutEvent.getType());
   }

+  @Override
public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) {
     return addDomHandler(handler, MouseOverEvent.getType());
   }

+  @Override
   public HandlerRegistration addMouseUpHandler(MouseUpHandler handler) {
     return addDomHandler(handler, MouseUpEvent.getType());
   }

+  @Override
public HandlerRegistration addMouseWheelHandler(MouseWheelHandler handler) {
     return addDomHandler(handler, MouseWheelEvent.getType());
   }

+  @Override
public final HandlerRegistration addOpenHandler(OpenHandler<TreeItem> handler) {
     return addHandler(handler, OpenEvent.getType());
   }

+  @Override
   public HandlerRegistration addSelectionHandler(
       SelectionHandler<TreeItem> handler) {
     return addHandler(handler, SelectionEvent.getType());
@@ -460,6 +484,7 @@
    * @param itemText the text of the item to be added
    * @return the item that was added
    */
+  @Override
   public TreeItem addTextItem(String itemText) {
     return root.addTextItem(itemText);
   }
@@ -468,6 +493,7 @@
* @deprecated Use {@link #addSelectionHandler}, {@link #addOpenHandler}, and
    *             {@link #addCloseHandler} instead
    */
+  @Override
   @Deprecated
   public void addTreeListener(TreeListener listener) {
     ListenerWrapper.WrappedTreeListener.add(this, listener);
@@ -476,6 +502,7 @@
   /**
    * Clears all tree items from the current tree.
    */
+  @Override
   public void clear() {
     int size = root.getChildCount();
     for (int i = size - 1; i >= 0; i--) {
@@ -527,6 +554,7 @@
     return curSelection;
   }

+  @Override
   public int getTabIndex() {
     return FocusPanel.impl.getTabIndex(focusable);
   }
@@ -581,10 +609,12 @@
     return root.insertItem(beforeIndex, widget);
   }

+  @Override
   public boolean isAnimationEnabled() {
     return isAnimationEnabled;
   }

+  @Override
   public Iterator<Widget> iterator() {
     final Widget[] widgets = new Widget[childWidgets.size()];
     childWidgets.keySet().toArray(widgets);
@@ -626,7 +656,7 @@
// The click event should have given focus to this element already. // Avoid moving focus back up to the tree (so that focusable widgets
           // attached to TreeItems can receive keyboard events).
-        } else if (curSelection != null) {
+ } else if ((curSelection != null) && curSelection.getContentElem().isOrHasChild(e)) {
           setFocus(true);
         }
         break;
@@ -686,6 +716,7 @@
     super.onBrowserEvent(event);
   }

+  @Override
   public boolean remove(Widget w) {
     // Validate.
     TreeItem item = childWidgets.get(w);
@@ -703,6 +734,7 @@
    *
    * @see #remove(Widget)
    */
+  @Override
   public boolean remove(IsWidget w) {
     return this.remove(w.asWidget());
   }
@@ -711,6 +743,7 @@
* @deprecated Use the {@link HandlerRegistration#removeHandler} method on the
    *             object returned by {@link #addFocusHandler} instead
    */
+  @Override
   @Deprecated
   public void removeFocusListener(FocusListener listener) {
     ListenerWrapper.WrappedFocusListener.remove(this, listener);
@@ -721,6 +754,7 @@
    *
    * @param item the item to be removed
    */
+  @Override
   public void removeItem(TreeItem item) {
     root.removeItem(item);
   }
@@ -730,6 +764,7 @@
    *
    * @param isItem the wrapper of item to be removed
    */
+  @Override
   public void removeItem(IsTreeItem isItem) {
     if (isItem != null) {
       TreeItem item = isItem.asTreeItem();
@@ -740,6 +775,7 @@
   /**
    * Removes all items from the root level of this tree.
    */
+  @Override
   public void removeItems() {
     while (getItemCount() > 0) {
       removeItem(getItem(0));
@@ -750,6 +786,7 @@
* @deprecated Use the {@link HandlerRegistration#removeHandler} method on the
    *             object returned by an add*Handler method instead
    */
+  @Override
   @Deprecated
   public void removeKeyboardListener(KeyboardListener listener) {
     ListenerWrapper.WrappedKeyboardListener.remove(this, listener);
@@ -759,6 +796,7 @@
* @deprecated Use the {@link HandlerRegistration#removeHandler} method on the
    *             object returned by an add*Handler method instead
    */
+  @Override
   @Deprecated
   public void removeMouseListener(MouseListener listener) {
     ListenerWrapper.WrappedMouseListener.remove(this, listener);
@@ -768,19 +806,23 @@
* @deprecated Use the {@link HandlerRegistration#removeHandler} method on the
    *             object returned by an add*Handler method instead
    */
+  @Override
   @Deprecated
   public void removeTreeListener(TreeListener listener) {
     ListenerWrapper.WrappedTreeListener.remove(this, listener);
   }

+  @Override
   public void setAccessKey(char key) {
     FocusPanel.impl.setAccessKey(focusable, key);
   }

+  @Override
   public void setAnimationEnabled(boolean enable) {
     isAnimationEnabled = enable;
   }

+  @Override
   public void setFocus(boolean focus) {
     if (focus) {
       FocusPanel.impl.focus(focusable);
@@ -819,6 +861,7 @@
     onSelection(item, fireEvents, true);
   }

+  @Override
   public void setTabIndex(int index) {
     FocusPanel.impl.setTabIndex(focusable, index);
   }

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to