package com.vaadin.tests.components.tabsheet; import com.vaadin.tests.components.TestBase; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.TabSheet; public class AddAndRemoveTabs extends TestBase { private TabSheet tabSheet; private int counter = 0; @Override public void setup() { tabSheet = new TabSheet(); addTab(); addComponent(tabSheet); Button addTabBtn = new Button("Add new tab", new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { addTab(); } }); addComponent(addTabBtn); } private void addTab() { final HorizontalLayout layout = new HorizontalLayout(); layout.setCaption("Test " + counter); Button closeTab = new Button("Close tab", new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { tabSheet.removeComponent(layout); } }); layout.addComponent(closeTab); tabSheet.addComponent(layout); counter++; } @Override protected String getDescription() { return "Removing all tabs and then adding new tabs should work properly and without javascript errors. All new tabs should be displayed and not only the first one"; } @Override protected Integer getTicketNumber() { return 2861; } }