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