--- /dev/null
+package com.itmill.toolkit.tests.components.tabsheet;\r
+\r
+import com.itmill.toolkit.tests.components.TestBase;\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.TabSheet;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+import com.itmill.toolkit.ui.Button.ClickListener;\r
+\r
+public class TabSheetDisabling extends TestBase {\r
+\r
+ private static final int NR_BUTTONS = 10;\r
+ private Button buttons[] = new Button[NR_BUTTONS];\r
+ private TabSheet tabSheet;\r
+\r
+ @Override\r
+ public void setup() {\r
+ tabSheet = new TabSheet();\r
+ for (int i = 0; i < NR_BUTTONS; i++) {\r
+ if (i % 2 == 0) {\r
+ buttons[i] = new Button("Disable this tab",\r
+ new ClickListener() {\r
+\r
+ public void buttonClick(ClickEvent event) {\r
+ event.getButton().setEnabled(false);\r
+\r
+ }\r
+\r
+ });\r
+ } else {\r
+ buttons[i] = new Button("Hide this tab", new ClickListener() {\r
+\r
+ public void buttonClick(ClickEvent event) {\r
+ event.getButton().setVisible(false);\r
+\r
+ }\r
+\r
+ });\r
+ }\r
+ tabSheet.addTab(buttons[i]);\r
+ }\r
+\r
+ Button button = new Button("Enable/disable", new ClickListener() {\r
+ public void buttonClick(ClickEvent event) {\r
+ tabSheet.setEnabled(!tabSheet.isEnabled());\r
+ }\r
+ });\r
+ addComponent(tabSheet);\r
+ addComponent(button);\r
+ }\r
+\r
+ @Override\r
+ protected String getDescription() {\r
+ return "Switching the tabsheet between disabled and enabled should not change which tab is selected. Disabling the open tab should select the first enabled tab.";\r
+ }\r
+\r
+ @Override\r
+ protected Integer getTicketNumber() {\r
+ return 2658;\r
+ }\r
+\r
+}\r
for (final Iterator i = getComponentIterator(); i.hasNext();) {
final Component c = (Component) i.next();
+ /*
+ * If we have no selection, if the current selection is invisible or
+ * if the current selection is disabled (but the whole component is
+ * not) we select this tab instead
+ */
if (selected == null || !selected.isVisible()
- || !selected.isEnabled()) {
+ || (!selected.isEnabled() && this.isEnabled())) {
selected = c;
}
target.startTag("tab");