I've seen a little about several workflow frameworks that could be factored into Tapestry.
Ultimately, I see Tapestry itself as a platform for even bigger things, such as Servlet API is the platform for Tapestry. Automating workflow is a big step ... that one of the reasons that I added helper beans, because those would facilitate a lot of RAD development without resorting to Java code generation. ----- Original Message ----- From: "Geoff Longman" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, July 10, 2002 5:26 AM Subject: [Tapestry-developer] More Controller (aka) MVC in Tapestry > Hello Howard and the community! > > I have been playing around with the idea of getting more of the Controller > in MVC while using Tapestry. > > We are building a large app in the telco space, many screens. I forsee that > even with Tapestry the > app getting quite complex. Putting the business logic and the page > navigation stuff in the pages themselves > will become burdomsome to maintain as we get to 100+ pages. > > Our app, as most are, is divided into use-cases, each of which collaborates > with several pages. We are playing with the > notion of centralizing logic for each use-case within a bean we call a > WorkUnit (WU). At the lowest level a WU knows about the pages it > collaorates with, has business logic, and navigation rules. > > I have instrumented my Engine and Visit to handle the lifecycle of WU > Also WU's are instrumented so they can have listener methods. > > So, the WU is attached to the Visit and activates pages and those pages call > get/sets in the current WU and also call WU listener methods. The WU > listenerMap will throw StaleLinkExceptions if a page tries to call a > listener that does not exist, this might happen if the user used the Back > button. A bonus of using the Tapestry propertyHelper stuff to access WU's is > that it is possible to share pages among WUs. > The pages themselves a relegated to handling whatever transmorgifigcation is > needed to pull/push data to/from a WU, field validation etc. > > WU's always remember the page they last display so in the case of stale link > exceptions it is feasible to restore the app for the > user to the last good page. There's lifecycle stuff too so that if, say a > user triggered an action that would attach an different WU to the visit, > the current WU gets a chance to examine its state and perhaps veto its > replacement, or attach the new WU as a child. In the case of a child WU the > parent would lose control to the child, then regain control when the child > is done. > > What I have works, but I know that it could be better and perhaps the basis > for a new feature for Tapestry. ie. non rendering controller components. > > If there is interest, I'll post a more detailed explanation on the Tapestry > Wiki and we can discuss. > > > Geoffrey Longman > Intelligent Works Inc. > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Two, two, TWO treats in one. > http://thinkgeek.com/sf > _______________________________________________ > Tapestry-developer mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/tapestry-developer ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Two, two, TWO treats in one. http://thinkgeek.com/sf _______________________________________________ Tapestry-developer mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/tapestry-developer
