package com.vaadin.tests.components.table;
import com.vaadin.data.Container;
import com.vaadin.data.Item;
import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.util.IndexedContainer;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.Log;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.Table;
import com.vaadin.ui.Table.FooterClickEvent;
import com.vaadin.ui.TextField;
@SuppressWarnings("serial")
public class FooterClick extends TestBase {
private final String COLUMN1_PROPERTY_ID = "col1";
private final String COLUMN2_PROPERTY_ID = "col2";
private final String COLUMN3_PROPERTY_ID = "col3";
private Log log = new Log(5);
@Override
protected void setup() {
final Table table = new Table();
table.setId("table");
table.setContainerDataSource(createContainer());
table.setWidth("400px");
table.setHeight("400px");
table.setImmediate(true);
table.setFooterVisible(true);
table.setColumnReorderingAllowed(true);
table.setColumnFooter(COLUMN1_PROPERTY_ID, "fuu");
// table.setColumnFooter(COLUMN2_PROPERTY_ID, "bar");
table.setColumnFooter(COLUMN3_PROPERTY_ID, "fuubar");
final TextField columnField = new TextField(
"ProperyId of clicked column");
columnField.setId("ClickedColumn");
// Add a footer click listener
table.addListener(new Table.FooterClickListener() {
@Override
public void footerClick(FooterClickEvent event) {
columnField.setValue(String.valueOf(event.getPropertyId()));
log.log("Clicked on footer: " + event.getPropertyId());
}
});
CheckBox immediateCheckbox = new CheckBox("Immediate");
immediateCheckbox.setImmediate(true);
immediateCheckbox.setValue(table.isImmediate());
immediateCheckbox.addListener(new Property.ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
table.setImmediate((Boolean) event.getProperty().getValue());
}
});
CheckBox columnReorderingCheckbox = new CheckBox(
"Column reordering allowed");
columnReorderingCheckbox.setImmediate(true);
columnReorderingCheckbox.setValue(table.isColumnReorderingAllowed());
columnReorderingCheckbox
.addListener(new Property.ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
table.setColumnReorderingAllowed((Boolean) event
.getProperty().getValue());
}
});
addComponent(immediateCheckbox);
addComponent(columnReorderingCheckbox);
addComponent(log);
addComponent(table);
addComponent(columnField);
}
@Override
protected String getDescription() {
return "Tests the footer click handler";
}
@Override
protected Integer getTicketNumber() {
return 4516;
}
private Container createContainer() {
IndexedContainer container = new IndexedContainer();
container.addContainerProperty(COLUMN1_PROPERTY_ID, String.class, "");
container.addContainerProperty(COLUMN2_PROPERTY_ID, String.class, "");
container.addContainerProperty(COLUMN3_PROPERTY_ID, String.class, "");
for (int i = 0; i < 100; i++) {
Item item = container.addItem("item " + i);
item.getItemProperty(COLUMN1_PROPERTY_ID).setValue("first" + i);
item.getItemProperty(COLUMN2_PROPERTY_ID).setValue("middle" + i);
item.getItemProperty(COLUMN3_PROPERTY_ID).setValue("last" + i);
}
return container;
}
}