Hi,
 I attached the patch to this email (T53 only atm).
The patch contains a test case *and* I ran the whole test suite (*)

If you think the path is ok I would:
- open a new Jira issue with the correct bug desc and attach the patch to it
- port the patch to T54

I also think that somebody should close and link TAP5-311 and TAP5-983 to the 
new issue once created.


Luca

(*) while implementing the new test case I found out that two tests in 
org.apache.tapestry5.integration.app1.BeanEditorTests 
 are not run because they miss the @Test annotation.


Luca Menegus

D.B.M. S.r.l
Via Enrico Noe, 23 - 20133 Milano (MI) Italy.
Phone: +39 02 26600525
Mobile: +39 3346220663

----- Original Message -----
> From: "Luca Menegus" <lu...@dbmsrl.com>
> To: "Tapestry users" <users@tapestry.apache.org>
> Sent: Friday, November 1, 2013 8:18:13 PM
> Subject: Re: [T53] [BUG] Beandisplay can't be used inside a form
> 
> Thank you very much Thiago,
>  working on it, ETA is Monday (setting up proper test env is not trivial)
> 
> thanks,
>  Luca
> 
> ----- Original Message -----
> > From: "Thiago H de Paula Figueiredo" <thiag...@gmail.com>
> > To: "Tapestry users" <users@tapestry.apache.org>
> > Sent: Friday, November 1, 2013 7:44:40 PM
> > Subject: Re: [T53] [BUG] Beandisplay can't be used inside a form
> > 
> > On Fri, 01 Nov 2013 16:00:43 -0200, Luca Menegus <lu...@dbmsrl.com> wrote:
> > 
> > > Hi all,
> > 
> > Hi!
> > 
> > >  in
> > > tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanDisplay.tml
> > > the loop component has the formState parameter set to "ITERATION" while
> > > (probably) should be set to "NONE".
> > 
> > Good catch! Thanks!
> > 
> > > PS: I would be *really* happy to contribute a patch and test case *if*
> > > any committer has interest in fixing this bug.
> > 
> > Go ahead. :)
> > 
> > > I would also be ready to check the behavior in T54 where the form
> > > submission logic has changed (from POST+GET to POST)
> > 
> > Actually, this changed only when validation fails to avoid session usage.
> > 
> > >
> > > [1] https://issues.apache.org/jira/browse/TAP5-311
> > > [2] https://issues.apache.org/jira/browse/TAP5-983
> > > [3] example code
> > > Example.tml:
> > > <t:form>
> > > <div t:id="testBeanDisplay" />
> > > <input t:type="submit"/>
> > > </t:form>
> > >
> > > Example.java:
> > > @Component(parameters = { "object=testbean" })
> > > private BeanDisplay testBeanDisplay;
> > > @Persist //No matter if persisted or not
> > > @Property
> > > private TestBean testbean;
> > > void onActivate() {
> > > if (testbean == null) {
> > > testbean = new TestBean();
> > > }
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > > For additional commands, e-mail: users-h...@tapestry.apache.org
> > >
> > 
> > 
> > --
> > Thiago H. de Paula Figueiredo
> > Tapestry, Java and Hibernate consultant and developer
> > http://machina.com.br
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > For additional commands, e-mail: users-h...@tapestry.apache.org
> > 
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
> 
> 
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanDisplay.tml b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanDisplay.tml
index 2e56cd4..28dcd59 100644
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanDisplay.tml
+++ b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/BeanDisplay.tml
@@ -1,7 +1,7 @@
 <dl class="t-beandisplay" xml:space="default"
     xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
 
-    <t:loop t:source="model.propertyNames" formState="ITERATION" t:value="propertyName">
+    <t:loop t:source="model.propertyNames" formState="NONE" t:value="propertyName">
 
         <dt class="${propertyClass}">${propertyModel.label}</dt>
 
diff --git a/tapestry-core/src/test/app1/BeanDisplayInFormDemo.tml b/tapestry-core/src/test/app1/BeanDisplayInFormDemo.tml
new file mode 100644
index 0000000..234f169
--- /dev/null
+++ b/tapestry-core/src/test/app1/BeanDisplayInFormDemo.tml
@@ -0,0 +1,13 @@
+<html t:type="Border" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd";>
+    <h1>BeanDisplay in Form demo</h1>
+    <t:form>
+        <t:beandisplay object="prop:item" />
+        <div class="t-beaneditor-row">
+            <t:label for="urgency"/>
+            <t:select t:id="urgency" value="prop:item.urgency"/>
+        </div>
+        <div class="t-beaneditor-row">
+            <input type="submit"/>
+        </div>
+    </t:form>
+</html>
\ No newline at end of file
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/BeanEditorTests.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/BeanEditorTests.java
index 46d5c13..95a9d65 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/BeanEditorTests.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/BeanEditorTests.java
@@ -206,6 +206,21 @@ public class BeanEditorTests extends TapestryCoreTestCase
         
         assertText("//dd[2]", "Ultra Important");
     }
+    
+    @Test
+    public void bean_display_in_form()
+    {
+        openLinks("BeanDisplay In Form Demo");
+        
+        assertText("//dd[2]", "Low");
+        
+        type("urgency", "HIGH");
+        
+        clickAndWait(SUBMIT);
+        
+        assertText("//dd[2]", "High");
+        
+    }
 
     /** TAP5-1527 */
     public void bean_editor_prepare_bubbling()
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/BeanDisplayInFormDemo.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/BeanDisplayInFormDemo.java
new file mode 100644
index 0000000..9e50973
--- /dev/null
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/BeanDisplayInFormDemo.java
@@ -0,0 +1,30 @@
+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.ToDoItem;
+import org.apache.tapestry5.integration.app1.data.Urgency;
+
+/**
+ * Used to demonstrate BeanDisplay can be used inside a Form.
+ */
+public class BeanDisplayInFormDemo {
+
+    @Persist
+    @Property
+    private ToDoItem item;
+
+    void onActivate()
+    {
+        if (item == null)
+        {
+            item = new ToDoItem();
+            item.setId(1);
+            item.setOrder(1);
+            item.setTitle("Develop Faster-Than-Light Travel");
+            item.setUrgency(Urgency.LOW);
+        }
+    }
+
+}
+
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
index b9c336b..3df2976 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
@@ -475,6 +475,9 @@ public class Index
                     new Item("BeanDisplayEnumDemo", "BeanDisplay Enum Demo",
                             "User represenation of enum values is correctly read from messages"),
 
+                    new Item("BeanDisplayInFormDemo", "BeanDisplay In Form Demo",
+                                    "Use of BeanDisplay in Form"),
+                            
                     new Item("unavailablecomponentdemo", "Report Location of Unavailable Component",
                             "Report Location of Unavailable Component"),
 
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to