<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    Copyright 2004, 2005 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.
-->
<document>
    <properties>
        <title>Checkbox</title>
    </properties>
    <body>

        <section name="Checkbox">
            <p>Renders an HTML checkbox, based on a boolean value.</p>

            <p>
                <strong>
                    See also:
                    <a href="../../apidocs/org/apache/tapestry/form/Checkbox.html">
                        org.apache.tapestry.form.Checkbox
                    </a>
                    ,
                    <a href="form.html">Form</a>
                </strong>
            </p>

            <section name="Parameters">


                <table>
                    <tr>
                        <th>Name</th>
                        <th>Type</th>
                        <th>Required</th>
                        <th>Default</th>
                        <th>Description</th>
                    </tr>

                    <tr>
                        <td>value</td>
                        <td>boolean</td>
                        <td>yes</td>
                        <td></td>
                        <td>
                            Value editted by the component; read on render, updated on form submit.
                            This sets the check attribute of the rendered element. Deprecated alias:
                            selected.
                        </td>
                    </tr>

                    <tr>
                        <td>displayName</td>
                        <td>string</td>
                        <td>no</td>
                        <td></td>
                        <td>
                            The user-presentable name for the component, which will be used by a
                            <a href="fieldlabel.html">FieldLabel</a>
                            connected to the component.
                        </td>
                    </tr>

                    <tr>
                        <td>disabled</td>
                        <td>boolean</td>
                        <td>no</td>
                        <td>false</td>
                        <td>
                            If true, then the checkbox will render as disabled and any input from
                            the checkbox will be ignored.
                        </td>
                    </tr>
                    
                    <tr>
                        <td>id</td>
                        <td>string</td>
                        <td>no</td>
                        <td></td>
                        <td>Sets the id attribute for the rendered <code>&lt;input&gt;</code> element.</td>
                    </tr>
                    
                    <tr>
                        <td>validators</td>
                        <td>
                            Array or collection of
                            <a
                                href="../../apidocs/org/apache/tapestry/form/validator/Validator.html">
                                Validator
                            </a>
                        </td>
                        <td>no</td>
                        <td></td>
                        <td>
                            The validators to apply to the component. Something along the lines of:
                            <code>validators:required</code> .<br/><br/>
                            
                            <strong>See also:</strong> <a href="../../usersguide/validation.html">Validation</a>
                        </td>
                    </tr>

                    <tr>
                        <td>translator</td>
                        <td>
                            <a
                                href="../../tapestry/apidocs/org/apache/tapestry/form/translator/Translator.html">
                                Translator
                            </a>
                        </td>
                        <td>no</td>
                        <td></td>
                        <td>
                            The translator to use when displaying and parsing the date.
                            <br/><br/>
                            <strong>See also:</strong> <a href="../../usersguide/validation.html">Validation</a>
                        </td>
                    </tr>
                </table>

                <p>
                    Body:
                    <strong>removed</strong>
                </p>

                <p>
                    Informal parameters:
                    <strong>allowed</strong>
                </p>

                <p>Reserved parameters: type, checked, name</p>

            </section>

        </section>

    </body>
</document>
