package com.vaadin.tests.components.tabsheet; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.HorizontalSplitPanel; import com.vaadin.ui.Label; import com.vaadin.ui.Layout; import com.vaadin.ui.TabSheet; import com.vaadin.ui.VerticalLayout; public class TabsheetScrollIntoView extends AbstractReindeerTestUI { public static final String BTN_SELECT_LAST_TAB = "showAndSelectLastTab"; private TabSheet tabSheetInSplitPanel; private HorizontalSplitPanel panel = new HorizontalSplitPanel(); @Override protected void setup(VaadinRequest request) { panel.setHeight("200px"); tabSheetInSplitPanel = new TabSheet(); tabSheetInSplitPanel.setWidth(100, Unit.PERCENTAGE); for (int i = 0; i < 100; i++) { tabSheetInSplitPanel.addTab(new Label("Tab " + i), "Tab " + i); } Layout buttonLayout = new VerticalLayout(); buttonLayout .addComponent(new Button("Hide TabSheet", new ClickListener() { @Override public void buttonClick(ClickEvent event) { panel.setSplitPosition(100, Unit.PERCENTAGE); panel.removeComponent(tabSheetInSplitPanel); } })); Button showLast = new Button("Show TabSheet and select last tab", new ClickListener() { @Override public void buttonClick(ClickEvent event) { panel.setSecondComponent(tabSheetInSplitPanel); panel.setSplitPosition(250, Unit.PIXELS); tabSheetInSplitPanel.setSelectedTab( tabSheetInSplitPanel.getComponentCount() - 1); } }); showLast.setId(BTN_SELECT_LAST_TAB); buttonLayout.addComponent(showLast); buttonLayout.addComponent(new Button( "Show TabSheet and select first tab", new ClickListener() { @Override public void buttonClick(ClickEvent event) { panel.setSecondComponent(tabSheetInSplitPanel); panel.setSplitPosition(250, Unit.PIXELS); tabSheetInSplitPanel.setSelectedTab(0); } })); panel.setFirstComponent(buttonLayout); panel.setSplitPosition(100, Unit.PERCENTAGE); addComponent(panel); } @Override protected String getTestDescription() { return "Clicking \"Show TabSheet and select last tab\" should scroll to the last tab and not disable tab scrolling."; } @Override protected Integer getTicketNumber() { return 20052; } }