Using Intake may be helpful.  I haven't used it much, but my messing with it
seems to indicate that the processing of the form is a lot cleaner.  Maybe
your actions could become simpler?


-----------------------------------------------------------------
Jeffrey D. Brekke                                   Quad/Graphics
[EMAIL PROTECTED]                              http://www.qg.com
-----------------------------------------------------------------



> -----Original Message-----
> From: David Wynter [mailto:[EMAIL PROTECTED]]
> Sent: Friday, January 04, 2002 4:15 AM
> To: Turbine Users List
> Subject: RE: When to use screens vs. actions
> 
> 
> MTCW
> 
> Having watched the mailing list closely it was evident that 
> screen classes
> were going the way of the Dodo. So in preparation for T3 we 
> used Actions and
> Pull tools. We put all pull tools in one class after some 
> discussion about
> whether the OR classes should carry out this function. It was 
> decided that
> there were quite a lot of joins being made that was not 
> appropriate for the
> OR classes, they provide a support role. The downside is that 
> this Pull tool
> class has become fairly large and unwieldy.
> 
> To add to what has been said below, our Action classes are 
> required to build
> quite a bit of the context due to the omission of the Screen 
> class. The Pull
> tool needs to have the primary keys of all the entities it 
> needs to flesh
> out for the screen so these have to come from the Action class. So our
> Action classes are split into 2 sections, process the form and do the
> database operation/s, then in the 2nd section dependent on 
> the result, build
> the appropriate context, including error messages if required.
> 
> The explanation below by Jason should be edited and put on 
> the Turbine site,
> there is really little guidance on good practice for the 
> future generations
> of Turbine in the current documentation. While Jason says 
> others may not
> agree to his explanation of the MVC and how the current 
> design fits it, it
> is better than nothing.
> 
> David
> 
> 
> 
> -----Original Message-----
> From: Jason van Zyl [mailto:[EMAIL PROTECTED]]
> Sent: 04 January 2002 01:45
> To: Turbine Users List
> Subject: Re: When to use screens vs. actions
> 
> 
> On 1/3/02 6:44 PM, "Humberto Hernadez Torres" 
> <[EMAIL PROTECTED]>
> wrote:
> 
> > We have been using Turbine for some time but we have this 
> philosophical
> > question:
> >
> > When a should  a java functionality should be implemented 
> as an action or
> in
> > the .java file of a screen?
> 
> Screens in 2.1 are what I like to call a context builder, you 
> use a screen
> to add items to the context so they are available for use in 
> a template. I
> generally think of actions as processes responding to choices 
> made in the
> view.
> 
> > Some cases are clearly actions like adding a record to the database.
> > Other cases are clearly screens like displaying an items 
> information.
> > Other cases are not as clear like searching for records in 
> the database or
> > doing a validation on a form.
> >
> > The rule of thumb we have been using is: If it modifies the 
> database is an
> > action. Screens should never modify the database. (or for 
> that matter the
> > state of the application)
> 
> That's a pretty good rule of thumb, I think.
> 
> > We looked in the information on the turbine site and didn`t find a
> reference
> > on the subject.
> >
> > A related question would be what is the matching between 
> MVC and Turbine:
> > Controller = TurbineServlet + Actions.
> > View = Screens + Layouts + Navigations.
> > Model = Entity Beans + Session Beans = Peers Object Model + (?)
> 
> The TurbineServlet is definitely the controller, as the 
> controller mediates
> between the view and the model.
> 
> In Turbine I consider the templates the view, so under the 
> classic model in
> Turbine the screen, layout, and navigation templates comprise 
> the view. The
> nomenclature is somewhat confusing because there are screen 
> templates and
> screen classes. Screen templates are the .vm files and screen 
> classes are
> modules in Turbine and are responsible for making various 
> portions of your
> application model accessible in the templates. So if we assume the
> definition above in the first paragraph than the screen classes can be
> thought of as part of the controller as it is a bridge between your
> application model and your view. This is how I think of it 
> and may or may
> not mesh with the way others think of it.
> 
> Actions are also a confusing point because an action may 
> simply be passed
> information gleaned from input taken from the view and do 
> something with it.
> So in this case the action is purely manipulating the model. 
> But actions can
> change what the user sees next based on some logic so in 
> effect the action
> is using information from the view in conjunction with some 
> information from
> your application model and changing what is seen. So in this 
> case I would
> say it's acting as a controller.
> 
> I think the whole setup is hard to define because the MVC 
> model was lifted
> from GUI application programming and I don't think it quite 
> fits exactly
> with webapps. This is only my take on the current situation.
> 
> In Turbine 3.x we are trying to move away from screen classes 
> and replacing
> them with pull tools. Pull tools are used heavily in Scarab 
> and they are
> being used quite a bit in Tambora now as well. A pull tool 
> basically allows
> you to put a piece of your application model into the view 
> and have that
> piece of the model be accessible in all your templates. The 
> idea is that you
> are freed from having to write a screen class for each of your screen
> templates.
> 
> 
> > What would correspond to session beans in the model. 
> Actions? Screens?
> > Additional Java Objects?
> 
> I don't use any EJB so I'm just not familiar enough with the 
> technology to
> comment.
> 
> > If you do a setTemplate() within a Screen.java, Shouldn`t 
> that be parte of
> > the controller?
> 
> Yes, I would say that the screen in that instance is acting like a
> controller. I think we as the Turbine developers would be 
> hard pressed to
> give you hard and fast definitions and rules for strict usage.
> 
> 
> > We are kind of confused and would like to understand this 
> better to make a
> > good use of Turbine.
> 
> Looking at some pull tools might be your next logical step. 
> As Turbine 3.x
> matures a little I hope we get some more pointed questions 
> like you have
> presented so it forces us to define things a little better. Turbine is
> flexible because of some of this lack of definition, but we 
> also realize
> this makes things sometimes complication. I feel that most of this
> complication can be removed eventually but at the moment the above
> explanation is the best I can do. Others may have a more 
> salient commentary.
> 
> > --
> > Humberto
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
> 
> --
> 
> jvz.
> 
> Jason van Zyl
> 
> http://tambora.zenplex.org
> http://jakarta.apache.org/turbine
> http://jakarta.apache.org/velocity
> http://jakarta.apache.org/alexandria
> http://jakarta.apache.org/commons
> 
> 
> 
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
> 
> 
> --
> To unsubscribe, e-mail:   
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: 
> <mailto:[EMAIL PROTECTED]>
> 

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to