Hi,

Sorry I've been away for a few days hence the lack of reply.  Inge, I tried
to explain my problem carefully and precisely as Igor indicated that he
didn't understand it.  Of course my problem doesn't make sense, if it made
sense I could solve it and it wouldn't be a problem!  Feel free to hit me
with some obvious questions...

I have tried all sorts of event handlers including onSuccess in the layout
and inside the confirmation component, it simply never gets called whatever
I choose.

My original reason for posting was to see if there was a recognised
issue/limitation in this area (injecting pages) that I was not aware of. 
Judging by the reactions i've had there is not.  I still have no solution
but when I find out what my problem was i'll make sure to check back.

Cheers,
Ben.


Inge Solvoll-2 wrote:
> 
> I don't know. What I DO know is this:
> 
> Trying hard to explain why your problem doesn't make sense is not a very
> good way of solving it. I do that very often, and I'm always corrected by
> someone who asks the obvious questions ;)
> 
> The best way is to "binary search" your way through this, by modifying
> your
> code step by step in order to find out when the event handler will
> actually
> be called on the page where the problem is. Then you can step back and you
> will most likely find that your problem was a rather trivial one.
> 
> To the other guys: Is there a way in an event handler like onSuccess to
> find
> out which component triggered the event?
> 
> On Tue, Jan 5, 2010 at 11:38 AM, lebenski <be...@gamesys.co.uk> wrote:
> 
>>
>> Ok I think I'm missing something because I don't understand why this
>> would
>> happen.
>>
>> If I have two pages:
>>
>> Page1.tml
>>
>> <t:layout>
>> Page 1 Goes Here
>> </t:layout>
>>
>> Page2.tml
>>
>> <t:layout>
>> Page 2 Goes Here
>> </t:layout>
>>
>> And a layout...
>>
>> Layout.tml (simplified)
>> <html>
>> <body>
>>  <t:form t:id="hello">
>>  ...form content
>>  </t:form>
>> </body>
>> </html>
>>
>> Layout.java
>>
>> ...
>>
>> void onSuccessFromHelloForm() {
>>    System.out.println("Hello called");
>> }
>>
>> Page 1 is accessed using a normal pagelink:
>>
>> <t:pagelink page="Page1">Page1</pagelink>
>>
>> But Page 2 is returned from a method call on some other page and injected
>> using InjectPage:
>>
>> SomeOtherPage.java
>>
>> @InjectPage
>> private Page2 page2;
>>
>> Object doSomething() {
>>
>> //something happens
>>
>> return page2;
>>
>> }
>>
>> How come the onSuccessFromHelloForm() is called when I submit the hello
>> form
>> contained in the layout on page1, but not when I submit the hello form
>> contained in the layout on page 2?  Why has the origin changed in this
>> case?
>>
>>
>> Inge Solvoll-2 wrote:
>> >
>> > I only suggested it for testing to see if it gets called. If it gets
>> > called,
>> > it means that the origin changed, and your "FromXXX" must be changed.
>> >
>> > On Tue, Jan 5, 2010 at 11:23 AM, lebenski <be...@gamesys.co.uk> wrote:
>> >
>> >>
>> >> This isn't the form I'm having trouble with.  The "Submit a Question"
>> >> form
>> >> works fine.
>> >>
>> >> The form that is not working is the LoginForm in the layout.  Using
>> >> onSuccessFromLoginForm works in all other pages except the
>> confirmation
>> >> page.  Are you suggesting that I should change the method in my layout
>> >> class
>> >> to "onSuccess"? this won't work as this method will get called for all
>> >> forms
>> >> on the site (as it resides in the layout).
>> >>
>> >>
>> >> Inge Solvoll-2 wrote:
>> >> >
>> >> > I think what Howard said was that your "FromQuestionForm" part won't
>> >> work,
>> >> > since the origin changes when the event bubbles up. Change the name
>> to
>> >> > "onSuccess" and see if gets called then.
>> >> >
>> >> > On Tue, Jan 5, 2010 at 10:47 AM, lebenski <be...@gamesys.co.uk>
>> wrote:
>> >> >
>> >> >>
>> >> >> Hi Igor,
>> >> >>
>> >> >> I thought i'd spelled out this issue fairly clearly, but here goes
>> >> again.
>> >> >> All of my pages use a layout along these lines:
>> >> >>
>> >> >> http://tapestry.apache.org/tapestry5/guide/layout.html
>> >> >>
>> >> >> Inside this component I have a login form.  This login form works
>> on
>> >> all
>> >> >> pages, except for a specific page called 'Confirmation'.  I use
>> this
>> >> page
>> >> >> slightly differently to the others by injecting it using
>> @InjectPage,
>> >> >> setting a couple of properties on it, and then returning it:
>> >> >>
>> >> >> @InjectPage
>> >> >> private Confirmation confirmation;
>> >> >>
>> >> >> Object onSuccessFromQuestionForm() {
>> >> >>       //processing
>> >> >>        confirmation.setType(ConfirmationType.SUCCESS);
>> >> >>       confirmation.setMessage(Messages.get("question-submit"));
>> >> >>
>> >> >>       return confirmation;
>> >> >>  }
>> >> >>
>> >> >> For some reason, the login form does not work on the Confirmation
>> >> page,
>> >> >> the
>> >> >> onSuccessFromLoginForm method that resides within my layout is
>> simply
>> >> >> never
>> >> >> called.  My hunch is that this issue is something to do with a
>> nuance
>> >> of
>> >> >> the
>> >> >> @InjectPage annotation that causes the page to behave differently,
>> but
>> >> >> I'm
>> >> >> really not sure.
>> >> >>
>> >> >> I hope this is clearer.
>> >> >>
>> >> >>
>> >> >> Igor Drobiazko wrote:
>> >> >> >
>> >> >> > Your explanation is unclear. This way you never get an answer.
>> >> Please
>> >> >> be
>> >> >> > more precise and post more of your code.
>> >> >> >
>> >> >> > On Mon, Jan 4, 2010 at 11:07 AM, lebenski <be...@gamesys.co.uk>
>> >> wrote:
>> >> >> >
>> >> >> >>
>> >> >> >> I have a layout component that contains a login form:
>> >> >> >>
>> >> >> >> <t:form t:id="loginForm">
>> >> >> >>        <t:textfield t:id="loginUsernameField"
>> t:value="memberName"
>> >> >> >> height="30"/>
>> >> >> >>        <t:passwordfield t:id="loginPasswordField"
>> >> t:value="password"
>> >> >> />
>> >> >> >>        <t:submit id="loginSubmit" value="message:login"/>
>> >> >> >> </t:form>
>> >> >> >>
>> >> >> >> Page Class:
>> >> >> >>
>> >> >> >> Object onSuccessFromLoginForm() {
>> >> >> >>        try{
>> >> >> >>            loggedInMember = loginManager.logUserIn(new
>> >> >> Login(memberName,
>> >> >> >> password));
>> >> >> >>        } catch(LoginException e) {
>> >> >> >>            //Login Error Processing
>> >> >> >>        }
>> >> >> >>
>> >> >> >>        return Index.class;
>> >> >> >> }
>> >> >> >>
>> >> >> >> I also have a generic confirmation page which I use for page
>> flows
>> >> >> where
>> >> >> >> I
>> >> >> >> need to present some message to the user.  For example "Thanks
>> for
>> >> >> >> submitting a question"
>> >> >> >>
>> >> >> >> SubmitQuestion.java
>> >> >> >>
>> >> >> >> @InjectPage
>> >> >> >> private Confirmation confirmation;
>> >> >> >>
>> >> >> >> Object onSuccessFromQuestionForm() {
>> >> >> >>        //processing
>> >> >> >>        confirmation.setType(ConfirmationType.SUCCESS);
>> >> >> >>        confirmation.setMessage(Messages.get("question-submit"));
>> >> >> >>
>> >> >> >>        return confirmation;
>> >> >> >> }
>> >> >> >>
>> >> >> >> The confirmation template itself is inside the layout:
>> >> >> >>
>> >> >> >> <t:layout
>> >> >> xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd
>> >> >> ">
>> >> >> >>        ${type}<br/>
>> >> >> >>        ${message}
>> >> >> >> </t:layout>
>> >> >> >>
>> >> >> >> However, for some reason I don't seem to have access to the
>> layout
>> >> >> from
>> >> >> >> this
>> >> >> >> confirmation page.  If I try to use the login form, the Index
>> page
>> >> is
>> >> >> >> loaded
>> >> >> >> but the user is not logged in.  In fact as far as I can see
>> >> (through
>> >> >> >> debugging), the onSuccessFromLoginForm() method in the Layout is
>> >> never
>> >> >> >> called.
>> >> >> >>
>> >> >> >> I'm at a bit of a loss as to why this is happening, as this is
>> >> working
>> >> >> on
>> >> >> >> all other pages in my application.  Is there some specific
>> nuance
>> >> of
>> >> >> >> using
>> >> >> >> @InjectPage that could be causing this issue?
>> >> >> >> --
>> >> >> >> View this message in context:
>> >> >> >>
>> >> >>
>> >>
>> http://old.nabble.com/-T5.0.18--%40InjectedPage-does-not-have-access-to-it%27s-own-layout-tp27010913p27010913.html
>> >> >> >> Sent from the Tapestry - User mailing list archive at
>> Nabble.com.
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> ---------------------------------------------------------------------
>> >> >> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> >> >> >> For additional commands, e-mail: users-h...@tapestry.apache.org
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >> > --
>> >> >> > Best regards,
>> >> >> >
>> >> >> > Igor Drobiazko
>> >> >> > http://tapestry5.de/blog
>> >> >> >
>> >> >> >
>> >> >>
>> >> >> --
>> >> >> View this message in context:
>> >> >>
>> >>
>> http://old.nabble.com/-T5.0.18--%40InjectedPage-does-not-have-access-to-it%27s-own-layout-tp27010913p27025941.html
>> >> >> Sent from the Tapestry - User mailing list archive at Nabble.com.
>> >> >>
>> >> >>
>> >> >>
>> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> >> >> For additional commands, e-mail: users-h...@tapestry.apache.org
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://old.nabble.com/-T5.0.18--%40InjectedPage-does-not-have-access-to-it%27s-own-layout-tp27010913p27026345.html
>> >> Sent from the Tapestry - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> >> For additional commands, e-mail: users-h...@tapestry.apache.org
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://old.nabble.com/-T5.0.18--%40InjectedPage-does-not-have-access-to-it%27s-own-layout-tp27010913p27026479.html
>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
> 
> 

-- 
View this message in context: 
http://old.nabble.com/-T5.0.18--%40InjectedPage-does-not-have-access-to-it%27s-own-layout-tp27010913p27101317.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


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

Reply via email to