package com.vaadin.tests.components.table;
import java.util.Arrays;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.Log;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.v7.data.Container;
import com.vaadin.v7.data.Property;
import com.vaadin.v7.data.Property.ValueChangeEvent;
import com.vaadin.v7.data.util.IndexedContainer;
import com.vaadin.v7.ui.NativeSelect;
import com.vaadin.v7.ui.Table;
public class TableUndefinedSize extends TestBase {
private Log log;
@Override
protected void setup() {
HorizontalLayout controls = new HorizontalLayout();
controls.setSpacing(true);
addComponent(controls);
HorizontalLayout visibilities = new HorizontalLayout();
visibilities.setSpacing(true);
addComponent(visibilities);
final Table tbl = new Table("", createDataSource());
tbl.setImmediate(true);
tbl.setColumnCollapsingAllowed(true);
log = new Log(5);
controls.addComponent(
new Button("Fixed size (200x200)", new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
tbl.setWidth("200px");
tbl.setHeight("200px");
log.log("Size 200x200 pixels");
}
}));
controls.addComponent(
new Button("Fixed size (600x200)", new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
tbl.setWidth("600px");
tbl.setHeight("200px");
log.log("Size 600x200 pixels");
}
}));
controls.addComponent(
new Button("Undefined size", new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
tbl.setSizeUndefined();
log.log("Size undefined");
}
}));
NativeSelect pageLength = new NativeSelect("PageLength",
Arrays.asList(0, 1, 2, 4, 8, 10));
pageLength.setImmediate(true);
pageLength.setNullSelectionAllowed(false);
pageLength.addListener(new Property.ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
int pageLength = Integer
.valueOf(event.getProperty().getValue().toString());
tbl.setPageLength(pageLength);
log.log("Page length: " + pageLength);
}
});
controls.addComponent(pageLength);
CheckBox cb = new CheckBox("Column 1");
cb.setValue(true);
cb.addValueChangeListener(event -> {
Boolean value = event.getValue();
tbl.setColumnCollapsed("Column 1", !value);
if (value) {
log.log("Column 1 visible");
} else {
log.log("Column 1 hidden");
}
});
visibilities.addComponent(cb);
cb = new CheckBox("Column 2");
cb.setValue(true);
cb.addValueChangeListener(event -> {
Boolean value = event.getValue();
tbl.setColumnCollapsed("Column 2", !value);
if (value) {
log.log("Column 2 visible");
} else {
log.log("Column 2 hidden");
}
});
visibilities.addComponent(cb);
cb = new CheckBox("Column 3");
cb.setValue(true);
cb.addValueChangeListener(event -> {
Boolean value = event.getValue();
tbl.setColumnCollapsed("Column 3", !value);
if (value) {
log.log("Column 3 visible");
} else {
log.log("Column 3 hidden");
}
});
visibilities.addComponent(cb);
addComponent(log);
addComponent(tbl);
}
protected Container createDataSource() {
IndexedContainer c = new IndexedContainer();
c.addContainerProperty("Column 1", String.class, "Column 1");
c.addContainerProperty("Column 2", String.class, "Column 2");
c.addContainerProperty("Column 3", String.class, "Column 3");
for (int i = 0; i < 50; i++) {
c.addItem();
}
return c;
}
@Override
protected String getDescription() {
return "";
}
@Override
protected Integer getTicketNumber() {
return 5789;
}
}