The following is sample code:
Table table = new Table();
table.setSizeFull();
table.setWidth("100%");
table.setHeight("100%");
table.setColumnReorderingAllowed(true);
table.setColumnCollapsingAllowed(true);
table.setImmediate(true);
table.setSelectable(true);
table.addContainerProperty("Name", String.class, "");
table.addContainerProperty("Description", String.class, "");
table.addContainerProperty("Remark", String.class, "");
table.setVisibleColumns(new String[] {"Name","Description"});
table.setColumnHeaders(new String[] {"field1", "fields2"});
//IndexedContainer indexContainer = new IndexedContainer();
List<ItemBean> list = new ArrayList<ItemBean>();
for (int i = 0; i < 2; i++){
ItemBean bean = new ItemBean();
bean.setName("Name"+i);
bean.setDescription("Description"+i);
list.add(bean);
}
BeanItemContainer<ItemBean> itemContainer = new BeanItemContainer<ItemBean>(list);
table.setContainerDataSource(itemContainer);
String[] columns = table.getColumnHeaders();
System.out.println("Table Items:"+table.getContainerDataSource().size());
for (int i = 0; i < columns.length; i++)
System.out.println("Table Colunms:["+i+"]
"+columns[i]
);
}
My questions:
-
If set BeanItemContainer as containersource will override I set header. don’t display field1 and field2. in UI will display Bean property
-
I found colunm header will order by letter. for example, Description is always previours at Name.