A component used to collect a provided date from the user using a client-side JavaScript calendar. Non-JavaScript
clients can simply type into a text field.

One wierd aspect here is that, because client-side JavaScript formatting and parsing is so limited, we (currently)
use Ajax to send the user's input to the server for parsing (before raising the popup) and formatting (after closing
the popup). Weird and inefficient, but easier than writing client-side JavaScript for that purpose.

The id used to generate a page-unique client-side identifier for the component. If a component renders multiple
times, a suffix will be appended to the to id to ensure uniqueness. The uniqued value may be accessed via the
clientId property.

String

prop:componentResources.id

literal

disabled

If true, then the field will render out with a disabled attribute
(to turn off client-side behavior). When the form is submitted, the
bound value is evaluated again and, if true, the field's value is
ignored (not even validated) and the component's events are not fired.

boolean

false

prop

format

The format used to format and parse dates. This is typically specified as a string which is coerced to a
DateFormat. You should be aware that using a date format with a two digit year is problematic: Java (not
Tapestry) may get confused about the century.

java.text.DateFormat

Required, Not Null

literal

hideTextField

If true, then the text field will be hidden, and only the icon for the date picker will be visible. The default
is false.

boolean

prop

icon

org.apache.tapestry5.Asset

datefield.gif

asset

label

The user presentable label for the field. If not provided, a reasonable label is generated from the component's
id, first by looking for a message key named "id-label" (substituting the component's actual id), then by
converting the actual id to a presentable string (for example, "userId" to "User Id").

String

literal

messages

Used to override the component's message catalog.

org.apache.tapestry5.ioc.Messages

componentResources.messages

prop

5.2.0.0

validate

The object that will perform input validation (which occurs after translation). The translate binding prefix is
generally used to provide this object in a declarative fashion.

org.apache.tapestry5.FieldValidator

validate

value

The value parameter of a DateField must be a java.util.Date.

java.util.Date

Required

prop

Events:

validate

Examples:

The DateField component is very easy to use, all the JavaScript is generated for you. Then end result
looks like:

Note: these screenshots are out of date, and reflect an earlier version of Tapestry and a different
third-party JavaScript calendar than is currently available.

DateField

processSubmission

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.