package com.vaadin.tests.components.table;
import java.io.Serializable;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Label;
import com.vaadin.v7.data.Property;
import com.vaadin.v7.data.Property.ValueChangeEvent;
import com.vaadin.v7.data.util.BeanItemContainer;
import com.vaadin.v7.ui.Table;
public class TableSorting extends TestBase {
@Override
public void setup() {
final Label showID = new Label("");
final Table testTable = new Table();
BeanItemContainer<TestItem> cont = new BeanItemContainer<>(
TestItem.class);
for (int i = 0; i < 20; i++) {
TestItem ti = new TestItem();
ti.setTestName("Name_" + i);
cont.addBean(ti);
}
testTable.setContainerDataSource(cont);
testTable.setImmediate(true);
testTable.setSelectable(true);
testTable.setMultiSelect(false);
testTable.setVisibleColumns(new Object[] { "testName" });
// Handle selection change.
testTable.addListener(new Property.ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
System.out.println(
"ValueChanged: " + testTable.getValue().toString());
showID.setCaption("ID: " + testTable.getValue().toString());
}
});
addComponent(testTable);
addComponent(showID);
}
public class TestItem implements Serializable {
private static final long serialVersionUID = -745849615488792221L;
private String testName;
public String getTestName() {
return testName;
}
public void setTestName(String testName) {
this.testName = testName;
}
}
@Override
protected String getDescription() {
return "Click the header to sort the table, then click on \"Name_10\". This should show ID: com.vaadin.tests.components.table.TableSorting$TestItem@<hex id> below the table";
}
@Override
protected Integer getTicketNumber() {
return 4537;
}
}