I am beginning to design a multi-page form piece in my application and would like input on ways to do this in Tapestry and if there is already built in stuff I can use or add.
The top part of each page will have a contrib:table displaying the same shared List of objects across all pages. The bottom part of each page will be a tab control I will write, each tab containing it's own form of controls. Clicking through the tabs will show each tab's form contents based on the item selected in the table. Staying on a tab and changing the selection in the table will update the tab form with the new table object's attributes. I was thinking of creating a template, class, and page for each tab so that all would not be in a single template, class, page making it potentially large. I am also thinking of making the top part of the pages (contrib:table) a component so that I don't duplicate code and get some reuse. Does this sound like a reasonable approach? Does it make sense when clicking a tab to route to a separate class for that tab (each tab having it's own class)? Have you done this and have experiences you would share? Is there some way to do this that makes sense in Tapestry or is there something I can grab and add to the mix? Would you handle this situation differently? I would like to hear what you think. Thanks! Joseph
