[ http://issues.apache.org/jira/browse/TAPESTRY-1030?page=all ]
Jesse Kuhnert reassigned TAPESTRY-1030:
---------------------------------------
Assignee: Jesse Kuhnert
> cant seem to get a component updated if the event listener is applied to a
> method that doesnt submit a form
> -----------------------------------------------------------------------------------------------------------
>
> Key: TAPESTRY-1030
> URL: http://issues.apache.org/jira/browse/TAPESTRY-1030
> Project: Tapestry
> Issue Type: Bug
> Components: Framework
> Affects Versions: 4.1
> Environment: windows xp, maven 2 and latest snapshot release,
> firefox/IE, tapestry 4.1, 2gb of ram, etc
> Reporter: Joshua Long
> Assigned To: Jesse Kuhnert
>
> The event doesnt seem to actually trigger invocation of a callback method on
> the server unless a form is submitted
> <pre>
> <span jwcid="@Shell" title="Foo 0.1" ajaxEnabled="true"
> browserLogLevel="DEBUG">
> <body jwcid="@Body">
> <form jwcid="[EMAIL PROTECTED]" action="">
> <div id="mLink" style="background-color: yellow; width:100px;">
> click me
> </div>
> <div style="border:1px solid black; height : 40px; width : 400px;"
> jwcid="[EMAIL PROTECTED]">
> <span jwcid="@If" condition="ognl:good">
> <span jwcid="@Insert" value="ognl: message"> the msg goes here
> </span>
> </span>
> </div>
> </form>
> </body>
> </span>
> </pre>
> and the class
> <pre>
> import org.apache.tapestry.IRequestCycle;
> import org.apache.tapestry.annotations.EventListener;
> import org.apache.tapestry.annotations.Persist;
> import org.apache.tapestry.event.BrowserEvent;
> import org.apache.tapestry.html.BasePage;
> import java.text.MessageFormat;
> abstract public class Playground extends BasePage {
> abstract public boolean isGood();
> abstract public void setGood(boolean good);
> @Persist abstract public String getMessage();
> abstract public void setMessage(String message);
> @EventListener(events = "onclick", submitForm = "f", elements = "mLink")
> public void updateThings(IRequestCycle c) {
> BrowserEvent event = new BrowserEvent(c);
> setGood(true);
> setMessage("base page " + new java.util.Date());
> System.out.println(MessageFormat.format("x = {0}, y={1}",
> event.getPageX(), event.getPageY()));
> getRequestCycle().getResponseBuilder().updateComponent("refreshme");
> }
> }
> </pre>
> work. When you click the square a listener on the server (namely,
> updateThings) is called, the variable message is changed and a call to
> responseBuilder.updateComponent is honored and the values on the page are
> changed.
> Remove the form from the html, and remove the submitForm part from the
> EventListener annotation and a different ituation arrives where, amazingly,
> tapestry seems to be getting a valid (if empty) ajax response and theres no
> indication (on the console or the page ) that the listener was invoked
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]