You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2014/05/06 11:30:15 UTC

[2/2] git commit: TAP5-2256: reset the zone to null in the setup render phase, fixes zone element being rendered only for the first iteration of a loop

TAP5-2256: reset the zone to null in the setup render phase, fixes zone element being rendered only for the first iteration of a loop


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/14524fec
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/14524fec
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/14524fec

Branch: refs/heads/master
Commit: 14524fecd3da310db41fee71f9bd3cb9eb22efa8
Parents: 6a63e75
Author: Jochen Kemnade <jo...@eddyson.de>
Authored: Tue May 6 11:13:50 2014 +0200
Committer: Jochen Kemnade <jo...@eddyson.de>
Committed: Tue May 6 11:26:55 2014 +0200

----------------------------------------------------------------------
 .../tapestry5/corelib/components/Grid.java      |  2 ++
 .../src/test/app1/InplaceGridInLoopDemo.tml     | 22 ++++++++++++++++
 .../tapestry5/integration/app1/GridTests.java   | 20 +++++++++++++++
 .../tapestry5/integration/app1/pages/Index.java |  4 ++-
 .../app1/pages/InplaceGridInLoopDemo.java       | 27 ++++++++++++++++++++
 5 files changed, 74 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/14524fec/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Grid.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Grid.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Grid.java
index 2a37214..dd3fda4 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Grid.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Grid.java
@@ -440,6 +440,8 @@ public class Grid implements GridModel, ClientElement
 
     Object setupRender()
     {
+        zone = null;
+
         if (formSupport != null)
             formSupport.store(this, SETUP_DATA_SOURCE);
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/14524fec/tapestry-core/src/test/app1/InplaceGridInLoopDemo.tml
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/app1/InplaceGridInLoopDemo.tml b/tapestry-core/src/test/app1/InplaceGridInLoopDemo.tml
new file mode 100644
index 0000000..e12609b
--- /dev/null
+++ b/tapestry-core/src/test/app1/InplaceGridInLoopDemo.tml
@@ -0,0 +1,22 @@
+<html t:type="Border" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
+
+    <h1>In-Place Grid in a Loop Demo</h1>
+	
+	<t:loop source="[1,2]" value="index">
+		<t:any class="prop:containerclass">
+		    <table t:type="grid" t:id="grid" source="tracks" row="track" inplace="true" rowsPerPage="5">
+		        <t:parameter name="ratingheader">
+		            <t:actionlink t:id="sortRating">Sort Rating</t:actionlink>
+		        </t:parameter>
+		        <t:parameter name="ratingcell">
+		            <t:outputRating rating="track.rating"/>
+		        </t:parameter>
+		    </table>
+	    </t:any>
+    </t:loop>
+
+    <p>
+        [<t:actionlink t:id="reset">reset the Grids</t:actionlink>]
+    </p>
+
+</html>

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/14524fec/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/GridTests.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/GridTests.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/GridTests.java
index 1a55695..2d5f7b3 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/GridTests.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/GridTests.java
@@ -332,4 +332,24 @@ public class GridTests extends App1TestCase
         assertAttribute("//a[contains(@href,'columns:sort')]/@rel", "nofollow");
     }
 
+    /**
+     * TAP5-2256
+     */
+    @Test
+    public void sorting_inplace_grid_in_a_loop()
+    {
+        openLinks("In-Place Grid in a Loop Demo", "reset the Grids");
+
+        click("css=.grid1 th[data-grid-property='title'] a");
+        waitForAjaxRequestsToComplete();
+        click("css=.grid2 th[data-grid-property='album'] a");
+        waitForAjaxRequestsToComplete();
+        assertAttribute("css=.grid1 th[data-grid-property='title']/@data-grid-column-sort", "ascending");
+        assertAttribute("css=.grid2 th[data-grid-property='album']/@data-grid-column-sort", "ascending");
+        assertAttribute("css=.grid2 th[data-grid-property='title']/@data-grid-column-sort", "sortable");
+
+
+    }
+
+
 }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/14524fec/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
----------------------------------------------------------------------
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 bfd68f3..b516ef7 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
@@ -561,7 +561,9 @@ public class Index
 
                     new Item("PartialTemplateRendererDemo", "PartialTemplateRenderer Demo", "Shows some examples of rendering blocks and components to a String using PartialTemplateRenderer"),
 
-                    new Item("nested/PageThatThrowsException", "Reload on nested page", "Tests a page reload from a nested page's exception report")
+                    new Item("nested/PageThatThrowsException", "Reload on nested page", "Tests a page reload from a nested page's exception report"),
+                    
+                    new Item("inplacegridinloopdemo", "In-Place Grid in a Loop Demo", "In-place grid in a loop")
 
             );
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/14524fec/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/InplaceGridInLoopDemo.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/InplaceGridInLoopDemo.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/InplaceGridInLoopDemo.java
new file mode 100644
index 0000000..6337cec
--- /dev/null
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/InplaceGridInLoopDemo.java
@@ -0,0 +1,27 @@
+// Copyright 2008, 2011 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package org.apache.tapestry5.integration.app1.pages;
+
+import org.apache.tapestry5.annotations.Property;
+
+public class InplaceGridInLoopDemo extends GridDemo {
+
+  @Property
+  private int index;
+
+  public String getContainerClass() {
+    return "grid" + index;
+  }
+}