Package org.apache.tapestry5.corelib.components

## Class Checkbox

- java.lang.Object
- - org.apache.tapestry5.corelib.base.AbstractField
  - - org.apache.tapestry5.corelib.components.Checkbox

- All Implemented Interfaces:
    `ClientElement`, `Field`

      public class Checkbox
      extends AbstractField

  A Checkbox component is simply a <input type="checkbox">.

  Component Parameters
  Name | Type | Flags | Default | Default Prefix
  --- | --- | --- | --- | ---
  clientId | String |  |  | literal
  Used to explicitly set the client-side id of the element for this component. Normally this is not bound (or null) and org.apache.tapestry5.services.javascript.JavaScriptSupport#allocateClientId(org.apache.tapestry5.ComponentResources) is used to generate a unique client-id based on the component's id. In some cases, when creating client-side behaviors, it is useful to explicitly set a unique id for an element using this parameter. Certain values, such as "submit", "method", "reset", etc., will cause client-side conflicts and are not allowed; using such will cause a runtime exception.
  ensureClientIdUnique | boolean | Since 5.4 |  | prop
  A rarely used option that indicates that the actual client id should start with the clientId parameter (if non-null) but should still pass that Id through org.apache.tapestry5.services.javascript.JavaScriptSupport#allocateClientId(String) to generate the final id. An example of this are the components used inside a org.apache.tapestry5.corelib.components.BeanEditor which will specify a clientId (based on the property name) but still require that it be unique. Defaults to false.
  validate | org.apache.tapestry5.FieldValidator | Not Null |  | validate
  The object that will perform input validation. The validate binding prefix is generally used to provide this object in a declarative fashion.
  value | boolean | Required |  | prop
  The value to be read or updated. If not bound, the Checkbox will attempt to edit a property of its container whose name matches the component's id.

  ### Examples

    In this example, a Checkbox will be used alone to manipulate a property of the page.

    ### ViewAccounts.tml

        <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
            <body>
                <h1>View Accounts</h1>

                <t:form>
                    <t:checkbox t:id="showall" onclick="this.form.submit();"/> <t:label for="showall"/>
                </t:form>

                <t:grid t:id="accounts"/>

            </body>
        </html>

    The Grid component will do most of the work in terms of displaying the account data.

    Normally, we should bind the value parameter explicitly; here the component's id, "showAll", matches against a property of the page and the value parameter is automatically bound as a convenience.

    A small amount of JavaScript is provided in-line to submit the form when the checkbox is clicked.

    All Tapestry form control element components must be enclosed by a Form component.

    The Label component is responsible for rendering a element connected to the checkbox. This is good for accessibility, it also provides a larger "target" to click on. The label's text will be "Show All", derived from the property name. Using a Label component is optional but recommended.

    ### ViewAccounts.java

        public class ViewAccount
        {
            @Property
            @Persist
            private boolean showAll;

            @Inject
            private AccountDAO accountDAO;

            public List<Account> getAccounts()
            {
                return showAll ? accountDAO.getAllAccounts() : accountDAO.getActiveAccounts();
            }
        }

    The component updates the showAll field, and that's used to determine which set of accounts should be provided to the Grid component. As always in Tapestry, you must be careful to mark fields persistent if they need to hold their value between the action request (the form submission) and the render request.

- - ### Field Summary

    - ### Fields inherited from class org.apache.tapestry5.corelib.base.AbstractField

      `cssClass, decorator, defaultProvider, disabled, environment, fieldValidationSupport, formSupport, javaScriptSupport, label, request, resources, validationTracker`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Checkbox()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `processSubmission​(java.lang.String controlName)` | Method implemented by subclasses to actually do the work of processing the submission of the form.

    - ### Methods inherited from class org.apache.tapestry5.corelib.base.AbstractField

      `decorateInsideField, getClientId, getControlName, getLabel, isDisabled, isRequired, putPropertyNameIntoBeanValidationContext, removePropertyNameFromBeanValidationContext, setDecorator, setFormSupport`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Checkbox

          public Checkbox()

  - ### Method Detail

    - #### processSubmission

          protected void processSubmission​(java.lang.String controlName)

      Description copied from class: `AbstractField`
      Method implemented by subclasses to actually do the work of processing the submission of the form. The element's controlName property will already have been set. This method is only invoked if the field is not `disabled`.
      Specified by:
        `processSubmission` in class `AbstractField`
      Parameters:
        `controlName` - the control name of the rendered element (used to find the correct parameter in the request)