You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by dr...@apache.org on 2011/08/19 13:36:41 UTC

svn commit: r1159599 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry5/corelib/components/ test/java/org/apache/tapestry5/integration/app1/pages/

Author: drobiazko
Date: Fri Aug 19 11:36:41 2011
New Revision: 1159599

URL: http://svn.apache.org/viewvc?rev=1159599&view=rev
Log:
Added reference documentation for Checklist component

Added:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.xdoc
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/checklist_ref.png   (with props)
Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ChecklistDemo.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java?rev=1159599&r1=1159598&r2=1159599&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java Fri Aug 19 11:36:41 2011
@@ -30,6 +30,13 @@ import java.util.List;
 import java.util.Set;
 
 /**
+ * Multiple selection component, used as an alternative to the {@link Palette} component. 
+ * Generates a UI consisting of a list of check boxes. 
+ * 
+ * @since 5.3
+ * 
+ * @see Form
+ * @see Palette
  * @tapestrydoc
  */
 public class Checklist extends AbstractField

Added: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.xdoc
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.xdoc?rev=1159599&view=auto
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.xdoc (added)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.xdoc Fri Aug 19 11:36:41 2011
@@ -0,0 +1,116 @@
+<document>
+    <body>
+        <section name="Examples">
+
+            <p>
+                For this example, we'll implement a page from an e-commerce order wizard; the page collects information
+                about special handling for the order:
+            </p>
+
+            <p>
+                <br/>
+                <img src="checklist_ref.png"/>
+            </p>
+
+            <subsection name="SpecialHandling.java">
+
+            <p>
+                Now let's see how the component can be used.
+            </p>
+            
+                <source><![CDATA[
+public enum SpecialHandling
+{
+    EXPRESS_SERVICE, GIFT_WRAP, GIFT_BASKET, CUSTOM_ENGRAVING, SHIPPING_INSURANCE,
+    EXTENDED_WARRANTY
+}]]>        </source>
+
+                <p>
+                    In this contrived example, the possible types of special handling are defined using
+                    an enum. It's more likely, in the real world, that this would be defined in terms
+                    of a database entity.
+                </p>
+            </subsection>
+
+            <subsection name="OrderHandling.tml">
+                <source><![CDATA[
+<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
+    <body>
+        <h1>Special Handling</h1>
+
+        <t:form>
+
+            <t:checklist t:id="handling" encoder="encoder" model="model"/>
+
+            <br/>
+
+            <input type="submit" value="Continue"/>
+
+        </t:form>
+
+    </body>
+</html>]]></source>
+
+                <p>
+                    Here we are able to omit the selected parameter (the list of selected items) because the Checklist
+                    component's id matches a property of the page.
+                </p>
+
+                <p>
+                    The model parameter will define the available options that can be selected. The encoder parameter
+                    will define how to translate server side values (the enum values) into client side strings and back.
+                </p>
+
+            </subsection>
+
+            <subsection name="OrderHandling.java">
+                <source><![CDATA[
+public class OrderHandling {
+    @Property
+    @Persist
+    private List<SpecialHandling> handling;
+
+    @Inject
+    private Messages messages;
+
+    public ValueEncoder getEncoder() {
+        return new EnumValueEncoder(SpecialHandling.class);
+    }
+
+    public SelectModel getModel() {
+        return new EnumSelectModel(SpecialHandling.class, messages);
+    }
+}]]></source>
+
+                <p>
+                    Tapestry has built-in public classes that help convert enum types into value encoders
+                    and select models.
+                </p>
+
+                <p>
+                    Injecting a Messages object gives a component access to its own message catalog.
+                </p>
+
+                <p>
+                    The Checklist component will read the handling property when rendering (it's ok for it to be null).
+                    When the form is submitted, it will create a new List and update the handling property.
+                </p>
+
+            </subsection>
+        </section>
+
+        <section name="Notes">
+
+            <p>The Checklist component can be customized through CSS. Following CSS rules are used:</p>
+
+
+            <dl>
+                    <dt>t-checklist-row</dt>
+                    <dd>Each checkbox and its label is enclosed by a div element whose css attribute is set to t-checklist-row.</dd>
+
+            </dl>
+
+        </section>
+
+    </body>
+</document>
\ No newline at end of file

Added: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/checklist_ref.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/checklist_ref.png?rev=1159599&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/checklist_ref.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ChecklistDemo.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ChecklistDemo.java?rev=1159599&r1=1159598&r2=1159599&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ChecklistDemo.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/ChecklistDemo.java Fri Aug 19 11:36:41 2011
@@ -1,3 +1,17 @@
+// Copyright 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.ValueEncoder;