Question about the flow.

I GET ViewProject.tml with an activation context of "1" which invokes:
    ViewProject.onActivate(Integer projectId)

I echo the projectId to the screen as a context for a CreateIssue pagelink.
I visit or GET CreateIssue.tml which invokes:
    CreateIssue.onActivate(Integer projectId)
    Createissue.onPassivate()


*Q1*: ?? Why does onPassivate get called here - but not when I visited
ViewProject ??


I complete two fields on the CreateIssue.tml form and submit the form to
CreateIssue.java which invokes
    CreateIssue.onActivate(Integer projectId)
    CreateIssue.onSuccess()


*Q2*: ?? Why isn't CreateIssue.onPassivate called ??


I return CreateIssue.onSuccess returns "ViewProject.class" which invokes:
    ViewProject.onPassivate()
    ViewProject.onActivate(Integer projectId)


*Q3*: ?? Whoa? How'd that happen? I'm going TO ViewProject.tml --- and yet,
onPassivate is invoked first. obviously, ViewProject has NO IDEA what
projectId to return since, it was invoked without an ACTIVATION context. Is
that why onPassivate is called? to find an activation context? I know the
docs say that if no activation context is passed - Tapestry will ask the
page for one. Is this how? If so - one need be a bit careful about how
onPassivate is implemented?

Is there an HttpSession free way to forward to have CreateIssue.onSuccess >>
ViewProject.onActivate(Integer projectId) ?

So - I'm not sure how I can forward to another page and pass an activation
context along with the forward ... Is there a way? After taking a look here,
http://tapestry.apache.org/tapestry5/tapestry-core/guide/pagenav.html, I
decided to try to @InjectPage so that

CreateIssue.onSuccess()
{
   nextPage.setProject(project);
   return nextPage;
}

and changed ViewProject.onPassivate() to return project.getId() ... which,
is naturally used by ViewProject.Activate(Integer projectId) which is called
next.

Does that seem like the right way to do this? I don't need to @Persist as
the example has done - since with this method, I can cause onPassivate to
return what onActivate needs ... and I really don't need to save this info
after the request is handled... But, is it safe to assume that the instance
of the page returned by CreateIssue will be the instance that handles the
request ... ie: do I have a pooling concern when I'm directly assigning page
properties?

Man ... this is cool.

-Luther

Reply via email to