My team has a challenging UI problem as we consider going with Seam for our new project:
1. All of our user interfaces are to be configurable at runtime via the application. This means that while the version we offer will have the standard pages with search, table results, and list of values, we need to user to be able to add things like new tables, new columns, new criteria and even new pages(maybe modal windows or new tabs) on the fly.
2. We want to store all of these extensions in a meta-data type repository (probably xml) to store changes for future upgrades/easy extension.
Now we're wondering if Seam is a possible fit for this. We would *really* love to keep things like conversations, the jpa-ejb managed layer, and JSF binding with facelets. However, this also implies to us being able to generate something like a Seam compatible facelets page on the fly. For example if a user adds a new column or search criteria, or chooses to display a new table, we need to have that reflected in the facelets page by inserting new tags.
A. We will build a filter that intercepts all seam/facelets urls
B. If the meta-data has not been changed since last request, serve the seam backed facelets page that has already been generated.
C. If the meta-data has been changed since the last request, read the meta-data, generate a facelets page inside the interceptor servlet, and redirect to that page. Store that copy away in the database or filesystem for subsequent use (case A).
D. If the user changes the page on the fly (personalization/configuration) then basically repeat (B) by changing the facelets definition and redirecting.
Now this seems potentially messy to us: Inserting tags for data-tables, new columns, new search criteria, etc.. on the fly, all while keeping the data-binding Seam compatible for our components.
I'm sure there must be a better practice in JSf/Seam land, but we're rather new to this tech stack (we just finished evaluating GWT for this purpose) and are hoping for suggestions. We're very impressed with the capabilities offered by Seam OOTB, and really just want to know if we have a potential fit.
Thanks for your time and best regards,