Author: drobiazko
Date: Mon Jun 20 19:45:37 2011
New Revision: 1137756
URL: http://svn.apache.org/viewvc?rev=1137756&view=rev
Log:
TAP5-1527: BeanEditForm's prepare event handler aborts Form's prepare event
when re-triggering it.
Added:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.java
(with props)
tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.tml
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/BeanEditorTests.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java?rev=1137756&r1=1137755&r2=1137756&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java
Mon Jun 20 19:45:37 2011
@@ -151,7 +151,7 @@ public class BeanEditForm implements Cli
@Environmental
private TrackableComponentEventCallback eventCallback;
- void onPrepareFromForm()
+ boolean onPrepareFromForm()
{
resources.triggerEvent(EventConstants.PREPARE, null, null);
@@ -163,6 +163,8 @@ public class BeanEditForm implements Cli
BeanModelUtils.modify(model, add, include, exclude, reorder);
}
+
+ return true;
}
/**
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/BeanEditorTests.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/BeanEditorTests.java?rev=1137756&r1=1137755&r2=1137756&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/BeanEditorTests.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/BeanEditorTests.java
Mon Jun 20 19:45:37 2011
@@ -206,4 +206,17 @@ public class BeanEditorTests extends Tap
assertText("//dd[2]", "Ultra Important");
}
+
+ /** TAP5-1527 */
+ public void bean_editor_prepare_bubbling()
+ {
+ openLinks("BeanEditor Prepare Bubbling Demo");
+
+ type("name", "abcdef");
+ type("age", "10");
+
+ clickAndWait(SUBMIT);
+
+ assertTextPresent("Name: abcdef", "Age: 10");
+ }
}
Added:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.java?rev=1137756&view=auto
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.java
(added)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.java
Mon Jun 20 19:45:37 2011
@@ -0,0 +1,22 @@
+package org.apache.tapestry5.integration.app1.pages;
+
+import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.integration.app1.data.Person;
+
+public class BeanEditFormPrepareBubbling
+{
+ @Property
+ @Persist
+ private Person person;
+
+ private boolean eventHandled;
+
+ void onPrepare()
+ {
+ if(eventHandled)
+ throw new IllegalStateException("Illegal event handler invocation.
The 'prepare' event has been already handled");
+
+ eventHandled = true;
+ }
+}
Propchange:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java?rev=1137756&r1=1137755&r2=1137756&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
Mon Jun 20 19:45:37 2011
@@ -474,8 +474,9 @@ public class Index
new Item("LinkQueryParameters", "Link Query Parameters
Demo",
"Providing Query Parameters directly to link
components as a map of key=parameter name, value=parameter values") ,
- new Item("ChecklistDemo", "Checklist Demo",
- "Use Checklist component")
+ new Item("ChecklistDemo", "Checklist Demo", "Use Checklist
component") ,
+
+ new Item("BeanEditFormPrepareBubbling", "BeanEditor
Prepare Bubbling Demo", "Prepare event bubbling")
);
Added:
tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.tml
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.tml?rev=1137756&view=auto
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.tml
(added)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/integration/app1/pages/BeanEditFormPrepareBubbling.tml
Mon Jun 20 19:45:37 2011
@@ -0,0 +1,6 @@
+<html t:type="Border"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
+ <form t:id="foo" t:type="beaneditform" object="person"/>
+
+ <p>Name: ${person.name}</p>
+ <p>Age: ${person.age}</p>
+</html>