Author: mschulte
Date: Thu Jul 12 11:57:25 2007
New Revision: 555719
URL: http://svn.apache.org/viewvc?view=rev&rev=555719
Log:
fixes TAPESTRY-1638
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/ImageSubmit.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestImageSubmit.java
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/ImageSubmit.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/ImageSubmit.java?view=diff&rev=555719&r1=555718&r2=555719
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/ImageSubmit.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/ImageSubmit.java
Thu Jul 12 11:57:25 2007
@@ -47,8 +47,11 @@
protected boolean isClicked(IRequestCycle cycle, String name)
{
String parameterName = name + ".x";
+
+ // the name.x parameter is not set for asynchronous submits
+ String value = cycle.getParameter(FormConstants.SUBMIT_NAME_PARAMETER);
- return (cycle.getParameter(parameterName) != null);
+ return (cycle.getParameter(parameterName) != null) ||
name.equals(value);
}
protected void renderFormComponent(IMarkupWriter writer, IRequestCycle
cycle)
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestImageSubmit.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestImageSubmit.java?view=diff&rev=555719&r1=555718&r2=555719
==============================================================================
---
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestImageSubmit.java
(original)
+++
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestImageSubmit.java
Thu Jul 12 11:57:25 2007
@@ -308,6 +308,7 @@
trainIsRewinding(form, true);
trainGetParameter(cycle, "fred.x", null);
+ trainGetParameter(cycle, FormConstants.SUBMIT_NAME_PARAMETER,
"peebles");
replay();
@@ -343,6 +344,7 @@
trainIsRewinding(form, true);
trainGetParameter(cycle, "fred.x", "33");
+ trainGetParameter(cycle, FormConstants.SUBMIT_NAME_PARAMETER, "fred");
replay();
@@ -357,6 +359,44 @@
verify();
}
+
+ public void testRewindTriggerAsync()
+ {
+ Creator creator = new Creator();
+ ImageSubmit submit = (ImageSubmit)
creator.newInstance(ImageSubmit.class, new Object[]
+ { "tag", "clicked" });
+
+ IBinding binding = newBinding();
+ submit.setBinding("selected", binding);
+
+ IValidationDelegate delegate = newDelegate();
+ IForm form = newForm();
+ IRequestCycle cycle = newCycle();
+ IMarkupWriter writer = newWriter();
+
+ trainGetForm(cycle, form);
+
+ trainWasPrerendered(form, writer, submit, false);
+
+ expect(form.getDelegate()).andReturn(delegate);
+
+ delegate.setFormComponent(submit);
+
+ trainGetElementId(form, submit, "fred");
+
+ trainIsRewinding(form, true);
+
+ trainGetParameter(cycle, "fred.x", null);
+ trainGetParameter(cycle, FormConstants.SUBMIT_NAME_PARAMETER, "fred");
+
+ replay();
+
+ submit.renderComponent(writer, cycle);
+
+ assertEquals("clicked", PropertyUtils.read(submit, "selected"));
+
+ verify();
+ }
public void testRewindTriggeredWithPointBound()
{
@@ -390,7 +430,8 @@
trainGetParameter(cycle, "fred.x", "33");
trainGetParameter(cycle, "fred.x", "33");
trainGetParameter(cycle, "fred.y", "19");
-
+ trainGetParameter(cycle, FormConstants.SUBMIT_NAME_PARAMETER, "fred");
+
replay();
submit.renderComponent(writer, cycle);