-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 lol - throw a good evening's worth out to ponder then full steam ahead while musings still churn. :-)
Jesse Kuhnert wrote: > I hope an hour was enough time to react because I've already started. :) I > don't mind throwing the code out if problems are found, it's just killing me > not having ~something~ working... > > > > On 3/27/06, Jesse Kuhnert <[EMAIL PROTECTED]> wrote: >> I would like to preface this with saying that as far as I'm concerned this >> is only the result of various ideas howard's casually been floating around >> on the list. Maybe I've inferred and done it slightly differently than he >> originally meant, but I'm also hoping he'll jump in and help me describe wtf >> I'm trying to say in case it's not clear. >> >> What I need is a way to genericize the interface that requires passing in >> IMarkupWriter/IRequestCycle at certain points. >> >> Luckily for us if we float up the interface chain the IRender interface >> semantics were left somewhat closed up to the general public. Though I can >> see a fair amount of references using it internally to tapestry I'm hoping >> that the public at large has stuck to IComponent.renderComponent() to do >> most of their logic. (fingers crossed) >> >> What I want to do isn't overly complicated. I want to make IRender a >> little bit more private and internal to tapestry, and expose a new/different >> interface. I ~can~ get what I want if I were to change IRender to look more >> like this: >> >> public interface IRender >> { >> /** >> * The principal rendering/rewinding method. This will cause >> * the receiving component to render its top level elements (HTML >> * text and components). >> * >> * <p>Renderring and rewinding are the exact same process. The >> * same code that renders must be able to restore state by going >> * through the exact same operations (even though the output is >> * discarded). >> * >> **/ >> >> void render(ResponseBuilder builder, IRequestCycle cycle); >> } >> >> This is still more or less the same thing, only ResponseBuilder contains >> the IMarkupWriter instance. It will of course pass IMarkupWriter (or another >> writer instance for other things, if relevant) into the right components at >> the right places. (still calling renderComponent(), as per normal ) >> >> So now, instead of calling IRender.render(), you call it with a >> ResponseBuilder, and he sort of takes over from there. This is what I need >> in order to support multiple Markup type interfaces/ajax/json without >> breaking backwards compatibility. Here is what the ResponseBuilder interface >> currently looks like: >> >> /** >> * Renders the response to a client. Handles transitioning logic >> * for setting up page and associated components for response. >> * >> * @param cycle >> * The main request cycle object for this request. >> */ >> void renderResponse(IRequestCycle cycle); >> >> I'm hoping if the changes being proposed are ok'd a new method will be >> added into the chain: >> >> void render(IRender render, IRequestCycle cycle); >> >> I think you can see where I'm going with this quite clearly with the >> method above added in. >> >> Everything is in place for me to do it, but I really want to make sure >> this is ok before I move forward as it's quite a large change. >> >> -- >> Jesse Kuhnert >> Tacos/Tapestry, team member/developer >> >> Open source based consulting work centered around >> dojo/tapestry/tacos/hivemind. http://opennotion.com >> > > > > -- > Jesse Kuhnert > Tacos/Tapestry, team member/developer > > Open source based consulting work centered around > dojo/tapestry/tacos/hivemind. http://opennotion.com > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (MingW32) iD8DBQFEKLBCaCoPKRow/gARApksAJ9VD1J4Z2oj/Pivb0ryDj0TAqMo+QCdGVdW pBbFvuEG3ywOZHEqeZ5bjg0= =InDo -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]