Opened https://issues.apache.org/jira/browse/TAP5-948 for it.

Kalle

On Tue, Dec 8, 2009 at 11:24 AM, Kalle Korhonen
<kalle.o.korho...@gmail.com> wrote:
> On Tue, Dec 8, 2009 at 10:59 AM, Howard Lewis Ship <hls...@gmail.com> wrote:
>> I've had to solve this problem for one of my clients as well and I
>> think it's something that should go into the framework.  The approach
>> I took was to identify self-referential links (page render links that
>> are to the same page they originate from) using an additional query
>> parameter. This allows Tapestry to differentiate between requests that
>> start on a new page vs. those that continue on the page. Tapestry can
>> then fire a notification on components to perform initialization (on
>> page render requests without the query parameter).
>> This would be a new lifecycle method, like pageAttached() or
>> pageLoaded().  I'm still working on the right terminology, for Widen
>> it is "initialized", as in method pageInitialized().
>
> Thank you Howard, that would excellent. Until it's in the framework,
> obviously you can get it done one way or another but framework support
> would make things easier and more consistent. I'd hate to come up with
> something that is half-there as an optional module if you are already
> working on solving it at the core framework level. Sounds like there's
> no issue open on it (?) - if not, I'll open one.
>
> Kalle
>
>
>> On Mon, Dec 7, 2009 at 10:22 PM, Kalle Korhonen
>> <kalle.o.korho...@gmail.com> wrote:
>>> Most things in T5 are delightfully simple, but I find this
>>> surprisingly difficult: how to best initialize a page to default
>>> context (and redirect to it). Imagine you have a search & result page.
>>> If I access the page without any context I want all records to be
>>> displayed. In onActivate() without parameters I set the context to
>>> *all* and return this to redirect, then I query the database in
>>> setupRender() to initialize the data for the grid. However, sorting
>>> the grid will also cause a call to onActivate() without parameters,
>>> resetting my data to the default context. The parameter-less call to
>>> onActivate() would be harmless if I didn't do a redirect from
>>> onActivate() but then I cannot set the default context and redirect.
>>> In setupRender() I could decide whether redirect is needed or not but
>>> at that time, I'm already committed to rendering the request.
>>>
>>> Because events cause a parameterless onActivate()  call, I tend to
>>> reserve onActivate() for possible component/event initialization needs
>>> only and always link to pages with initial context already set. I also
>>> find it roughly impossible to use overloaded versions of onActivate()
>>> and subsequently, if my page has multiple entry points, I typically
>>> resort to implementing it in a single onActivate(EventContext
>>> eventContext) operation containing a big if-else clause. Since the
>>> activation context is anyway sent with an event request (as in
>>> ?t:ac=mycontext), rather than using the encoded context for rendering,
>>> wouldn't it be just simpler if that context was used for activating
>>> the page for the event request and the following redirect for
>>> rendering would just use whatever context onPassivate() returns? What
>>> do others think, how do you handle this?
>>>
>>> Kalle
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>
>>>
>>
>>
>>
>> --
>> Howard M. Lewis Ship
>>
>> Creator of Apache Tapestry
>>
>> The source for Tapestry training, mentoring and support. Contact me to
>> learn how I can get you up and productive in Tapestry fast!
>>
>> (971) 678-5210
>> http://howardlewisship.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to