No ContainerFilterableWrapper?

I have a fairly large and heterogeneous BeanContainer and want to implement several Tables that show different subsets of this container based on various criteria.

I know I could use addContainerFilter() to filter the container but that would affect all tables, not just a single one.

I guess what I’d really need is some kind of decorator or wrapper that encapsulates and filters a container. Then I could use different wrappers as source for the tables and each table would “see” only the subset of items it is interested in. The underlying source would be the same, i.e. changes in the underlying Container would affect all tables where the corresponding item is visible.

Would it be possible to implement this or is there maybe already an add-on for this use case? Or should I approach this problem differently?

Okay, let me try to rephrase this. Suppose I have a class Animal and subclasses Fish, Bird, etc.

Now in my application I have a collection of Animals in memory. It is easy to create a BeanContainer form it and display the animals in a table.

Now what I’d like to do is also display a table of Fish and a table of Birds, for example in another tab of a TabSheet. I cannot add a Filter because it can only be added to the Container, not one of the Tables. It would affect all tables, not just one.

Of course I could create another BeanContainer for the Fish and a third for the Birds. But then the containers wouldn’t know of each other and changes in one container would not show up in the others. Suppose I added a new Bird, clearly I’d like it to appear in the table of Animals.

I also haven’t found a way of letting a BeanContainer know that its underlying beans have been modified externally.

How should I approach this problem with Vaadin?

Thanks in advance,
Markus