package com.vaadin.tests.components.table; import java.util.Set; import com.vaadin.tests.components.TestBase; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; import com.vaadin.v7.data.Container; import com.vaadin.v7.data.Item; import com.vaadin.v7.data.Property.ValueChangeEvent; import com.vaadin.v7.data.util.IndexedContainer; import com.vaadin.v7.ui.Table; @SuppressWarnings("serial") public class KeyControl extends TestBase { private final Label selected1 = new Label("No selected items."); private final Table table1 = new Table("Read only table"); private final Label selected2 = new Label("No selected items"); private final Table table2 = new Table("Selectable table"); private final Label selected3 = new Label("Not selected items"); private final Table table3 = new Table("Multi-selectable table"); @Override protected void setup() { HorizontalLayout layout = new HorizontalLayout(); layout.setSpacing(true); addComponent(layout); // Create read only table VerticalLayout layout1 = new VerticalLayout(); layout1.setSpacing(true); table1.setContainerDataSource(createContainer()); table1.setWidth("300px"); table1.setHeight("300px"); table1.setImmediate(true); layout1.addComponent(table1); table1.addListener(new Table.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { @SuppressWarnings("unchecked") Set<String> value = (Set<String>) table1.getValue(); selected1 .setValue(value.toString() + " TOTAL: " + value.size()); } }); layout1.addComponent(selected1); layout.addComponent(layout1); // Create single select table VerticalLayout layout2 = new VerticalLayout(); layout2.setSpacing(true); table2.setContainerDataSource(createContainer()); table2.setSelectable(true); table2.setWidth("300px"); table2.setHeight("300px"); table2.setImmediate(true); layout2.addComponent(table2); table2.addListener(new Table.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { String value = table2.getValue() == null ? "No selected items" : table2.getValue().toString(); selected2.setValue(value); } }); layout2.addComponent(selected2); layout.addComponent(layout2); // Create multi select table VerticalLayout layout3 = new VerticalLayout(); layout3.setSpacing(true); table3.setContainerDataSource(createContainer()); table3.setSelectable(true); table3.setMultiSelect(true); table3.setWidth("300px"); table3.setHeight("300px"); table3.setImmediate(true); layout3.addComponent(table3); table3.addListener(new Table.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { @SuppressWarnings("unchecked") Set<String> value = (Set<String>) table3.getValue(); selected3.setValue(value.size() == 0 ? "No selected items" : value + ": Total " + value.size() + " items"); } }); selected3.setWidth("300px"); selected3.setHeight("500px"); layout3.addComponent(selected3); layout.addComponent(layout3); } @Override protected String getDescription() { return "Add keyboard control to the Table"; } @Override protected Integer getTicketNumber() { return 2390; } private Container createContainer() { IndexedContainer container = new IndexedContainer(); container.addContainerProperty("col1", String.class, ""); container.addContainerProperty("col2", String.class, ""); container.addContainerProperty("col3", String.class, ""); container.addContainerProperty("col4", String.class, ""); container.addContainerProperty("col5", String.class, ""); container.addContainerProperty("col6", String.class, ""); for (int i = 0; i < 100; i++) { Item item = container.addItem("item " + i); item.getItemProperty("col1").setValue("First column " + i); item.getItemProperty("col2").setValue("Second column " + i); item.getItemProperty("col3").setValue("Third column" + i); item.getItemProperty("col4").setValue("Fourth column" + i); item.getItemProperty("col5").setValue("Fifth column" + i); item.getItemProperty("col6").setValue("Sixth column" + i); } return container; } }