package com.vaadin.tests.components.table;
import com.vaadin.tests.components.AbstractTestCase;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.LegacyWindow;
import com.vaadin.v7.ui.Table;
/**
* Setting table height and setting column header mode as hidden leaves the body
* height of the table as it would be with the headers visible and leaves an
* empty area below the body.
*
*/
@SuppressWarnings("serial")
public class TableHeightWhenHidingHeaders extends AbstractTestCase {
@Override
public void init() {
LegacyWindow mainWindow = new LegacyWindow();
setMainWindow(mainWindow);
final Table table = new Table("Test table");
table.addContainerProperty("Name", String.class, null, "Name", null,
null);
table.setItemCaptionPropertyId("Name");
table.setHeight("100px");
table.setImmediate(true);
table.addItem("1").getItemProperty("Name").setValue("Item 1");
table.addItem("2").getItemProperty("Name").setValue("Item 2");
CheckBox showHeaders = new CheckBox("Show headers");
showHeaders.addValueChangeListener(event -> {
if (event.getValue()) {
// table body height is now 77px, which together
// with header makes 100px
table.setColumnHeaderMode(
Table.COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID);
} else {
table.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_HIDDEN);
// header disappears, but table body height stays at
// 77px
// and below the body is an empty area (same height
// as header would
// have)
}
});
showHeaders.setValue(true);
mainWindow.addComponent(showHeaders);
mainWindow.addComponent(table);
}
@Override
protected String getDescription() {
// TODO Auto-generated method stub
return null;
}
@Override
protected Integer getTicketNumber() {
return 4507;
}
}