-----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]

Reply via email to