This is for 4.1 only. On 3/18/06, Leonardo Quijano Vincenzi <[EMAIL PROTECTED]> wrote: > > This sounds like a large change here. Are you thinking of putting this > in the 4.0 branch, or the 4.1 one? > > Why not release 4.0.x as it is and make this change in 4.1 - and then > release that one too? > > -- > Ing. Leonardo Quijano Vincenzi > DTQ Software > > > Jesse Kuhnert wrote: > > I've been pulling my hair out all day, silently cursing the blank walls > > around my office but I can't seem to find an elegant solution to manage > the > > rendering cycle with this new logic any other way. > > > > The basic problem is that for JSON or Ajax responses I'm going to need a > > different MarkupWriter implementation. If it was Ajax only then there > > wouldn't be as much of a problem, I could extend IMarkupWriter a little > bit > > and call it a day, not worrying about changing method signatures and > > such....The JSONWriter is an entirely different animal though, so is the > > logic that handles rendering ajax requests. The method signatures of all > > these render calls would have to be duplicated in order to handle the > JSON > > responses...And we all know duplicating logic will only lead to more > bugs > > and headaches later on. > > > > So...To kill a few birds with one stone I'd like to introduce an interim > > solution somewhat based on what Howard has already mentioned. I don't > know > > what to call the object yet but it would "contain" the right kind of > > MarkupWriter depending on the request type. It would also contain all of > the > > logic that handles determining whether a component should actually > render a > > response, and if so, what type of response. > > > > So...The old method signature of renderComponent(IMarkupWriter, > > IRequestCycle) would more or less go away. I don't mean to actually make > it > > go away right now, but will instead duplicate logic just this once to > allow > > backwards compatiblity. > > > > The new interface would be something along the lines of > > renderPipeline(<Myseterious Object Name Here>, IRequestCycle); > > > > The render implementation would then do the normal sort of housework > that it > > always does, for instance the For component would setup it's collection > and > > iteration loop, the actual rendering wouldn't happen directly in this > method > > though, instead the <MONH> (short for mysterious object name here) would > be > > called with a signature somewhat like: > > > > <MONH>.renderComponent(IComponent component, IRequestCycle cycle); > > > > The logic for determining JSON vs normal vs Ajax writers and which > methods > > to call on the component would be encapsulated by this new object. This > also > > brings us closer to providing a more centralized/seperate sort of logic > area > > for transitioning the state and rendering of these objects out of the > hands > > of the objects themselves and into something a little bit more > managable. > > > > I'm sure Howard's ideas will ultimately create a much better solution > for > > this, but without completely duplicating and hacking up the current > design > > internals of tapestry I don't know a better solution. > > > > Stop me now before I get too far I guess... > > > > -- > > Jesse Kuhnert > > Tacos/Tapestry, team member/developer > > > > Open source based consulting work centered around > > dojo/tapestry/tacos/hivemind. http://opennotion.com > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
-- Jesse Kuhnert Tacos/Tapestry, team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://opennotion.com