package com.vaadin.tests.components.window; import com.vaadin.tests.components.TestBase; import com.vaadin.ui.Button; import com.vaadin.ui.TabSheet; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Window; import com.vaadin.v7.ui.Table; public class SubWindowWithUndefinedHeight extends TestBase { @Override protected String getDescription() { return "Setting subwindow height to undefined after initial rendering does not update visual height"; } @Override protected Integer getTicketNumber() { return 7916; } @Override protected void setup() { final VerticalLayout layout = new VerticalLayout(); layout.setMargin(true); final Window subwindow = new Window("subwindow", layout); subwindow.center(); subwindow.setSizeUndefined(); layout.setSizeUndefined(); final Button tabButton = new Button("A button"); tabButton.setCaption("Tab 1"); tabButton.setWidth("200px"); final Table table = new Table(); table.setCaption("tab 2"); table.setWidth("100%"); table.setHeight("100%"); final TabSheet tabsheet = new TabSheet(); tabsheet.addComponent(tabButton); tabsheet.addComponent(table); tabsheet.addSelectedTabChangeListener( new TabSheet.SelectedTabChangeListener() { @Override public void selectedTabChange( TabSheet.SelectedTabChangeEvent event) { if (tabsheet.getSelectedTab() == tabButton) { tabsheet.setSizeUndefined(); layout.setSizeUndefined(); subwindow.setSizeUndefined(); } else if (tabsheet.getSelectedTab() == table) { subwindow.setWidth("500px"); subwindow.setHeight("500px"); layout.setSizeFull(); tabsheet.setSizeFull(); } } }); layout.addComponent(tabsheet); Button button = new Button("click me", new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent event) { getMainWindow().addWindow(subwindow); } }); getMainWindow().addComponent(button); } }