package com.vaadin.tests.components.table; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.ui.CheckBox; import com.vaadin.ui.TextField; import com.vaadin.v7.data.Container; import com.vaadin.v7.data.Item; import com.vaadin.v7.data.util.IndexedContainer; import com.vaadin.v7.ui.Table; import com.vaadin.v7.ui.Table.HeaderClickEvent; public class HeaderClick extends AbstractReindeerTestUI { @Override protected void setup(VaadinRequest request) { final Table table = new Table(); table.setColumnReorderingAllowed(true); table.setContainerDataSource(createContainer()); table.setWidth("400px"); table.setHeight("400px"); table.setImmediate(true); final TextField columnField = new TextField( "ProperyId of clicked column"); // Add a header click listener table.addHeaderClickListener(new Table.HeaderClickListener() { @Override public void headerClick(HeaderClickEvent event) { columnField.setValue(String.valueOf(event.getPropertyId())); } }); CheckBox immediateCheckbox = new CheckBox("Immediate"); immediateCheckbox.setValue(table.isImmediate()); immediateCheckbox.addValueChangeListener( event -> table.setImmediate(event.getValue())); CheckBox sortEnabledCheckbox = new CheckBox("Sortable"); sortEnabledCheckbox.setValue(table.isSortEnabled()); sortEnabledCheckbox.addValueChangeListener( event -> table.setSortEnabled(event.getValue())); CheckBox columnReorderingCheckbox = new CheckBox( "Column reordering allowed"); columnReorderingCheckbox.setValue(table.isColumnReorderingAllowed()); columnReorderingCheckbox.addValueChangeListener( event -> table.setColumnReorderingAllowed(event.getValue())); addComponent(immediateCheckbox); addComponent(sortEnabledCheckbox); addComponent(columnReorderingCheckbox); addComponent(table); addComponent(columnField); } @Override protected String getTestDescription() { return "Tests the header click listener"; } @Override protected Integer getTicketNumber() { return 4515; } private Container createContainer() { IndexedContainer container = new IndexedContainer(); container.addContainerProperty("col1", String.class, ""); container.addContainerProperty("col2", String.class, ""); container.addContainerProperty("col3", String.class, ""); for (int i = 0; i < 100; i++) { Item item = container.addItem("item " + i); item.getItemProperty("col1").setValue("first" + i); item.getItemProperty("col2").setValue("middle" + i); item.getItemProperty("col3").setValue("last" + i); } return container; } }