Making StackLayoutPanel#showWidget(Widget) call showWidget(int) for legacy support.  Ditto to TabLayoutPanel.

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

Review by: jgw@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8323 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/ui/StackLayoutPanel.java b/user/src/com/google/gwt/user/client/ui/StackLayoutPanel.java
index 817c8b8..588d675 100644
--- a/user/src/com/google/gwt/user/client/ui/StackLayoutPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/StackLayoutPanel.java
@@ -341,6 +341,7 @@
     };
   }
 
+  @Override
   public void onResize() {
     layoutPanel.onResize();
   }
@@ -439,7 +440,7 @@
    * @param child the child widget to be shown.
    */
   public void showWidget(Widget child) {
-    showWidget(child, true);
+    showWidget(getWidgetIndex(child));
   }
 
   /**
diff --git a/user/src/com/google/gwt/user/client/ui/TabLayoutPanel.java b/user/src/com/google/gwt/user/client/ui/TabLayoutPanel.java
index 80436bf..ad8f43a 100644
--- a/user/src/com/google/gwt/user/client/ui/TabLayoutPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/TabLayoutPanel.java
@@ -420,7 +420,7 @@
    * @param child the child whose tab is to be selected
    */
   public void selectTab(Widget child) {
-    selectTab(child, true);
+    selectTab(getWidgetIndex(child));
   }
 
   /**
diff --git a/user/test/com/google/gwt/user/client/ui/StackLayoutPanelTest.java b/user/test/com/google/gwt/user/client/ui/StackLayoutPanelTest.java
index 508d092..1295213 100644
--- a/user/test/com/google/gwt/user/client/ui/StackLayoutPanelTest.java
+++ b/user/test/com/google/gwt/user/client/ui/StackLayoutPanelTest.java
@@ -21,7 +21,9 @@
 import com.google.gwt.event.logical.shared.SelectionEvent;
 import com.google.gwt.event.logical.shared.SelectionHandler;
 
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 
 /**
  * Tests for {@link StackLayoutPanel}.
@@ -199,6 +201,30 @@
     handler.assertOnSelectionFired(false);
   }
 
+  /**
+   * For legacy reasons, {@link StackLayoutPanel#showWidget(Widget)} should call
+   * {@link StackLayoutPanel#showWidget(int)}.
+   */
+  public void testShowWidgetLegacy() {
+    final List<Integer> called = new ArrayList<Integer>();
+    StackLayoutPanel panel = new StackLayoutPanel(Unit.PX) {
+      @Override
+      public void showWidget(int index) {
+        called.add(index);
+        super.showWidget(index);
+      }
+    };
+    Label stack1 = new Label("Stack 1");
+    panel.add(new Label("Stack 0"), "Stack 0", 100);
+    panel.add(stack1, "Stack 1", 100);
+    panel.add(new Label("Stack 2"), "Stack 2", 100);
+    called.clear();
+
+    panel.showWidget(stack1);
+    assertEquals(1, called.size());
+    assertEquals(1, called.get(0).intValue());
+  }
+
   public void testVisibleWidget() {
     StackLayoutPanel p = new StackLayoutPanel(Unit.EM);
     assertNull(p.getVisibleWidget());
diff --git a/user/test/com/google/gwt/user/client/ui/TabLayoutPanelTest.java b/user/test/com/google/gwt/user/client/ui/TabLayoutPanelTest.java
index 1f483a9..5e062b2 100644
--- a/user/test/com/google/gwt/user/client/ui/TabLayoutPanelTest.java
+++ b/user/test/com/google/gwt/user/client/ui/TabLayoutPanelTest.java
@@ -26,7 +26,9 @@
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.DeferredCommand;
 
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 
 /**
  * Tests for {@link TabLayoutPanel}.
@@ -39,7 +41,8 @@
     }
   }
 
-  private class TestSelectionHandler implements BeforeSelectionHandler<Integer>, SelectionHandler<Integer> {
+  private class TestSelectionHandler implements
+      BeforeSelectionHandler<Integer>, SelectionHandler<Integer> {
     private boolean onBeforeSelectionFired;
     private boolean onSelectionFired;
 
@@ -275,6 +278,30 @@
   }
 
   /**
+   * For legacy reasons, {@link TabLayoutPanel#selectTab(Widget)} should call
+   * {@link TabLayoutPanel#selectTab(int)}.
+   */
+  public void testSelectTabLegacy() {
+    final List<Integer> called = new ArrayList<Integer>();
+    TabLayoutPanel panel = new TabLayoutPanel(100.0, Unit.PX) {
+      @Override
+      public void selectTab(int index) {
+        called.add(index);
+        super.selectTab(index);
+      }
+    };
+    Label tab1 = new Label("Tab 1");
+    panel.add(new Label("Tab 0"), "Tab 0");
+    panel.add(tab1, "Tab 1");
+    panel.add(new Label("Tab 2"), "Tab 2");
+    called.clear();
+
+    panel.selectTab(tab1);
+    assertEquals(1, called.size());
+    assertEquals(1, called.get(0).intValue());
+  }
+
+  /**
    * Tests that tabs actually line up properly (see issue 4447).
    */
   @DoNotRunWith(Platform.HtmlUnitLayout)
@@ -285,8 +312,7 @@
     p.add(new Button("foo"), new Label("foo"));
     p.add(new Button("bar"), new Label("bar"));
 
-    assertEquals(
-        p.getTabWidget(0).getElement().getOffsetTop(),
-        p.getTabWidget(1).getElement().getOffsetTop());
+    assertEquals(p.getTabWidget(0).getElement().getOffsetTop(), p.getTabWidget(
+        1).getElement().getOffsetTop());
   }
 }