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;