Yes it does, if the onActivate() methods are in different places.
There's a very explicit order, base classes handle events before
subclasses.  Within a class, its handled alphabetically (ascending)
and by parameter count (descending, for a single method name with
multiple overrides).

What you may be seeing is onActivate() in the parent class being
invoked before the child class.

Ooops ... I was going to point you at the docs, but this is not
documented (outside of JavaDoc).

The rules are pretty much the same as for render phase methods:

http://tapestry.apache.org/tapestry5/tapestry-core/guide/rendering.html

But even that doc is out of date slightly (I need to update the
comment about ordering by number of parameters).

On Nov 26, 2007 4:38 PM, Andy Huhn <[EMAIL PROTECTED]> wrote:
> Howard,
>
> I'm on 5.0.6.  I'll try to boil this down to a simple test case and file
> a JIRA.  It might have something to do with the page inheritance I'm
> using?  ThisPage -> EditBasePage -> BasePage.  The onActivate() and
> onActivate(Integer) methods are on ThisPage.  Would this make a
> difference?
>
> Thanks,
> Andy
>
> On Sat, 2007-11-24 at 17:00 -0800, Howard Lewis Ship wrote:
>
> > You are using 5.0.5?  I believe 5.0.6 has a fix for this, wherein the
> > method invocation order is by number of parameters, decreasing.
> >
> > You may have to do:
> >
> > Object onActivate(Object[] context)
> > {
> >  ...
> > }
> >
> > And check the context count explicitly, and convert the context values
> > explicitly, if you are on 5.0.5.
> >
> > On Nov 24, 2007 11:37 AM, Andy Huhn <[EMAIL PROTECTED]> wrote:
> > > Hello,
> > >
> > > I'm having a problem with onActivate().  Here are my questions:
> > > 1) Why is onActivate() called when a context variable is included in the
> > > URL?
> > > 2) Is there a way to prevent onActivate() from being called until AFTER
> > > onActivate(Integer prmPrimaryKey) is called?
> > >
> > > Here's my dilemma: I want to use one detail page to handle inserts and
> > > updates.  So I have written an onActivate(Integer prmPrimaryKey) handler
> > > to initialize the page for an update; and another onActivate() handler
> > > to initialize the page for an insert.
> > >
> > > Each onActivate() handler checks to see if the user is allowed to access
> > > this page.  If the user is not allowed to access, the onActivate()
> > > handler generates a Link with the current page's context, uses that Link
> > > to set a Session state variable, and then returns a Login page.  Once
> > > the user logs in, the Session state variable is checked to see if it has
> > > been set; if so, the user is taken back to that page.
> > >
> > > My problem is that when the page is accessed with a context variable
> > > (thus, to handle an UPDATE), onActivate() is being called before
> > > onActivate(Integer prmPrimaryKey).  Thus, the entity ID of the page
> > > isn't being set before the Link is generated and added to the session
> > > state.
> > >
> > > The Link that is being generated, then, doesn't have any context
> > > included, so when the user finishes logging in, the user is taken back
> > > to the page, with no context.
> > >
> > > Is this a Tapestry bug, or is there a better way of handling this?
> > >
> > > 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]
>
>



-- 
Howard M. Lewis Ship
Partner and Senior Architect at Feature50

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to