package com.vaadin.tests.components.table; import java.util.ArrayList; import java.util.List; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.ui.Button; import com.vaadin.ui.VerticalLayout; import com.vaadin.v7.data.util.BeanItemContainer; import com.vaadin.v7.ui.Table; public class ColumnWidthsAfterChangeTableColumnsCountOrOrder extends AbstractReindeerTestUI { protected static final String BUTTON_CHANGE_ORDER_AND_WIDTH_ID = "buttonChangeOrderAndWidth"; protected static final String BUTTON_CHANGE_COLUMN_COUNT_AND_WIDTH = "buttonChangeColumnCountAndWidth"; protected static final int NEW_COLUMN_WIDTH = 17; @Override protected void setup(VaadinRequest request) { List<TestBean> beanList = new ArrayList<>(); beanList.add(new TestBean(1, "name1", "descr1")); beanList.add(new TestBean(2, "name2", "descr2")); beanList.add(new TestBean(3, "name3", "descr3")); beanList.add(new TestBean(4, "name4", "descr4")); beanList.add(new TestBean(5, "name5", "descr5")); BeanItemContainer<TestBean> container = new BeanItemContainer<>( TestBean.class, beanList); VerticalLayout layout = new VerticalLayout(); final Table table = new Table("Test Table"); table.setContainerDataSource(container); table.setVisibleColumns(new Object[] { "id", "name", "descr" }); layout.addComponent(table); Button buttonChangeOrderAndWidth = new Button("Change order and width", new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent clickEvent) { table.setVisibleColumns( new Object[] { "name", "descr", "id" }); table.setColumnWidth("descr", NEW_COLUMN_WIDTH); } }); buttonChangeOrderAndWidth.setId(BUTTON_CHANGE_ORDER_AND_WIDTH_ID); Button buttonChangeColumnCountAndWidth = new Button( "Change columns count and width", new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent clickEvent) { table.setVisibleColumns( new Object[] { "name", "descr" }); table.setColumnWidth("descr", NEW_COLUMN_WIDTH); } }); buttonChangeColumnCountAndWidth .setId(BUTTON_CHANGE_COLUMN_COUNT_AND_WIDTH); layout.addComponent(buttonChangeOrderAndWidth); layout.addComponent(buttonChangeColumnCountAndWidth); addComponents(layout); } public class TestBean { private int id; private String name; private String descr; public TestBean(int id, String name, String descr) { this.id = id; this.name = name; this.descr = descr; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescr() { return descr; } public void setDescr(String descr) { this.descr = descr; } @Override public String toString() { return "TestBean{" + "id=" + id + ", name='" + name + '\'' + ", descr='" + descr + '\'' + '}'; } } @Override protected String getTestDescription() { return "Tests that properties of columns are changed correctly after changing column's order/count"; } @Override protected Integer getTicketNumber() { return 9781; } }