CollectionContainer - Vaadin Add-on Directory
The simple way of binding collections and arrays to the data-aware Vaadin components like the Table and the Select.Sometimes you only have a list or array of objects you'd like to bind to a ListSelect or a Table and forget about the fancy Container features like lazy loading or automatic updates.
Creating a Container from a list or array of beans, string, integers is easy. And you can configure the CollectionContainer to have different type of ids. CollectionContainer is a read-only Container implementation suitable best for small amounts of data, backed simply by a collection storage. Here are some samples:
Use the object itself as id (like in the stock BeanItemContainer):
select.setContainerDataSource(CollectionContainer.fromBeans(myBeans));
select.setContainerDataSource(CollectionContainer.fromPrimitives(new String[]{"One","Two","Three"}));
Index based id that allows duplicate objects:
select.setContainerDataSource(CollectionContainer.fromBeans(myBeans,true));
select.setContainerDataSource(CollectionContainer.fromPrimitives(new String[]{"One","Two","Three","One"},true));
A two dimensional array to a table using:
String[][] array = new String[][] { new String[]{"One","Two"}, new String[] {"Three","Four"}};
table.setContainerDataSource(CollectionContainer.fromPrimitives(array));
And you can even use a bean property as the item id:
select.setContainerDataSource(CollectionContainer.fromBeans(myBeans,"idField"));
This is an experimental component, but it has been successfully utilized in many projects already. It only supports reading, not writing or adding items to container.