It makes some sense, but more details would help.
You said that the parameter is "redundant": in what way is it redundant?
If the parameter is already passed to the component, then what's the
issue?
If the value is calculated, why can't the component calculate it?
Incidentally, if the component has the value at render time, couldn't
the component stick the value into the context for the action/event
link? Then your event handler would accept a parameter which is the
value of interest, and you're done. :)
Sometimes, to understand the general concept, specific situations/
details are helpful; I suggest more specifics on your use case.
Robert
On May 27, 2008, at 5/2711:48 AM , Blower, Andy wrote:
Replying to myself so quickly - not a good sign. ;-)
Anyway, I found another solution which is to let the event bubble up
to the parent component which needs to do the initialisation of the
derived variable (which is then provided as a source for the sub-
component) and do the init in the event handler method.
Not so bad, but it does force me to have my event handler in the
component containing the sub-component which is actually generating
the event. I'm unsure as to the best practice for this, I was
assuming that a component should always handle its own events, which
isn't possible in this case without session usage or a redundant
parameter in the parent component.
I do hope this makes sense to someone out there on the list...
rather than sounding like the babblings of a crazy man. ;-)
Thanks,
Andy
-----Original Message-----
From: Blower, Andy
Sent: 27 May 2008 17:20
To: 'Tapestry users'
Subject: T5: Components initialising derived variables for action
requests?
How should a component initialise a derived variable from a parameter
for the purposes of handling events?
As far as I've seen so far, derived variable initialisation is
usually
done in a setupRender() method. This works for rendering, but not for
the event handling phase. The containing page has the onActivate()
method which sets up all required data for both the action requests
as
well as render requests, but the components setupRender() only sets
up
the component variable for render requests. Since pageAttached()
fires
before onActivate(), that can't be used. What else could be used?
I know that the component variable could be made a (kinda redundant)
parameter rather than being derived, or it could be persisted, but
both
solutions seem clumsy and inelegant since all the information is
already available but only tied together for render requests.
I find it hard to believe that Tapestry 5 has all the wonderful
activation context for restoring state without it being held in the
session but not have a mechanism for deriving variables on action
requests. I'm probably going to feel silly if it's really obvious,
but
I can't figure it out.
Thanks,
Andy.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]