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>


Reply via email to