Let's consider following problem.
There is a page that contains baskets. A basket is a component that contains a list of items such as fruits or cars or whatever.
In the page there are three baskets: car-basket, fruit-basket and all-basket. The car-basket contains cars, fruit-basket contains fruits and all-basket can contain both cars and fruits.
Initially there are items only in the car- and fruit-baskets. By clicking item in those baskets the item will be moved to the all-basket. By clicking item in the all-basket, item will be moved back to it's original basket.
Also, fruit-items and car-items are rendered differently. For instance car-item may contain a different kind of background than fruit-item. Also item may contain different kind of information. For instance car-item contains car's maximum speed and fruit-item contains the color of the fruit.
This rendering must be retained also in the all-basket.
How would you do the page with Tapestry? I do not need a full implementation. I am merely interested in the principles how that problem could be solved.
Also, for simplified implementation, can you give some estimation of how much time it would take?