com.google.gwt.cell.client

## Class DatePickerCell

- java.lang.Object
- - com.google.gwt.cell.client.AbstractCell<C>
  - - com.google.gwt.cell.client.AbstractEditableCell<java.util.Date,java.util.Date>
    - - com.google.gwt.cell.client.DatePickerCell

All Implemented Interfaces:
  Cell<java.util.Date>

    public class DatePickerCell
    extends AbstractEditableCell<java.util.Date,java.util.Date>

A `Cell` used to render and edit `Date`s. When a cell is selected by clicking on it, a `DatePicker` is popped up. When a date is selected using the `DatePicker`, the new date is passed to the `update` method of the `ValueUpdater` that was passed to `onBrowserEvent(com.google.gwt.cell.client.Cell.Context, com.google.gwt.dom.client.Element, java.util.Date, com.google.gwt.dom.client.NativeEvent, com.google.gwt.cell.client.ValueUpdater<java.util.Date>)` for the click event. Note that this means that the call to `ValueUpdater.update(C)` will occur after `onBrowserEvent(com.google.gwt.cell.client.Cell.Context, com.google.gwt.dom.client.Element, java.util.Date, com.google.gwt.dom.client.NativeEvent, com.google.gwt.cell.client.ValueUpdater<java.util.Date>)` has returned. Pressing the 'escape' key dismisses the `DatePicker` popup without calling `ValueUpdater.update(C)`.

Each `DatePickerCell` has a unique `DatePicker` popup associated with it; thus, if a single `DatePickerCell` is used as the cell for a column in a table, only one entry in that column will be editable at a given time.

### Nested Class Summary

### Nested classes/interfaces inherited from interface com.google.gwt.cell.client.Cell

`Cell.Context`

### Constructor Summary

Constructors
Constructor and Description
`DatePickerCell()` Constructs a new DatePickerCell that uses the date/time format given by `DateTimeFormat.getFullDateFormat()`.
`DatePickerCell(DateTimeFormat format)` Constructs a new DatePickerCell that uses the given date/time format and a `SimpleSafeHtmlRenderer`.
`DatePickerCell(DateTimeFormat format, SafeHtmlRenderer<java.lang.String> renderer)` Constructs a new DatePickerCell that uses the given date/time format and `SafeHtmlRenderer`.
`DatePickerCell(SafeHtmlRenderer<java.lang.String> renderer)` Constructs a new DatePickerCell that uses the date/time format given by `DateTimeFormat.getFullDateFormat()` and the given `SafeHtmlRenderer`.

### Method Summary

All Methods Instance Methods Concrete Methods
`DatePicker` `getDatePicker()` Returns the underlying `DatePicker` widget used by this cell.
`boolean` `isEditing(Cell.Context context, Element parent, java.util.Date value)` Returns true if the cell is currently editing the data identified by the given element and key.
`void` `onBrowserEvent(Cell.Context context, Element parent, java.util.Date value, NativeEvent event, ValueUpdater<java.util.Date> valueUpdater)` Handle a browser event that took place within the cell.
`protected void` `onEnterKeyDown(Cell.Context context, Element parent, java.util.Date value, NativeEvent event, ValueUpdater<java.util.Date> valueUpdater)` Called when the user triggers a `keydown` event with the ENTER key while focused on the cell.
`void` `render(Cell.Context context, java.util.Date value, SafeHtmlBuilder sb)` Render a cell as HTML into a `SafeHtmlBuilder`, suitable for passing to `Element.setInnerHTML(String)` on a container element.

### Methods inherited from class com.google.gwt.cell.client.AbstractEditableCell

`clearViewData, getViewData, setViewData`

### Methods inherited from class com.google.gwt.cell.client.AbstractCell

`dependsOnSelection, getConsumedEvents, handlesSelection, resetFocus, setValue`

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

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

### Constructor Detail

#### DatePickerCell

    public DatePickerCell()

Constructs a new DatePickerCell that uses the date/time format given by `DateTimeFormat.getFullDateFormat()`.

#### DatePickerCell

    public DatePickerCell(DateTimeFormat format)

Constructs a new DatePickerCell that uses the given date/time format and a `SimpleSafeHtmlRenderer`.

Parameters:
  `format` - a `DateTimeFormat` instance

#### DatePickerCell

    public DatePickerCell(SafeHtmlRenderer<java.lang.String> renderer)

Constructs a new DatePickerCell that uses the date/time format given by `DateTimeFormat.getFullDateFormat()` and the given `SafeHtmlRenderer`.

Parameters:
  `renderer` - a `SafeHtmlRenderer<String>` instance

#### DatePickerCell

    public DatePickerCell(DateTimeFormat format,
                          SafeHtmlRenderer<java.lang.String> renderer)

Constructs a new DatePickerCell that uses the given date/time format and `SafeHtmlRenderer`.

Parameters:
  `format` - a `DateTimeFormat` instance
  `renderer` - a `SafeHtmlRenderer<String>` instance

### Method Detail

#### getDatePicker

    public DatePicker getDatePicker()

Returns the underlying `DatePicker` widget used by this cell.

#### isEditing

    public boolean isEditing(Cell.Context context,
                             Element parent,
                             java.util.Date value)

Description copied from class: `AbstractEditableCell`
Returns true if the cell is currently editing the data identified by the given element and key. While a cell is editing, widgets containing the cell may choose to pass keystrokes directly to the cell rather than using them for navigation purposes.

Specified by:
  `isEditing` in interface `Cell<java.util.Date>`
Specified by:
  `isEditing` in class `AbstractEditableCell<java.util.Date,java.util.Date>`
Parameters:
  `context` - the `Context` of the cell
  `parent` - the parent Element
  `value` - the value associated with the cell
Returns:
  true if the cell is in edit mode

#### onBrowserEvent

    public void onBrowserEvent(Cell.Context context,
                               Element parent,
                               java.util.Date value,
                               NativeEvent event,
                               ValueUpdater<java.util.Date> valueUpdater)

Description copied from class: `AbstractCell`
Handle a browser event that took place within the cell. The default implementation returns null.

If you override this method to add support for events, remember to pass the event types that the cell expects into the constructor.

Specified by:
  `onBrowserEvent` in interface `Cell<java.util.Date>`
Overrides:
  `onBrowserEvent` in class `AbstractCell<java.util.Date>`
Parameters:
  `context` - the `Cell.Context` of the cell
  `parent` - the parent Element
  `value` - the value associated with the cell
  `event` - the native browser event
  `valueUpdater` - a `ValueUpdater`, or null if not specified

#### render

    public void render(Cell.Context context,
                       java.util.Date value,
                       SafeHtmlBuilder sb)

Description copied from interface: `Cell`
Render a cell as HTML into a `SafeHtmlBuilder`, suitable for passing to `Element.setInnerHTML(String)` on a container element.

Note: If your cell contains natively focusable elements, such as buttons or input elements, be sure to set the tabIndex to -1 so that they do not steal focus away from the containing widget.

Specified by:
  `render` in interface `Cell<java.util.Date>`
Specified by:
  `render` in class `AbstractCell<java.util.Date>`
Parameters:
  `context` - the `Cell.Context` of the cell
  `value` - the cell value to be rendered
  `sb` - the `SafeHtmlBuilder` to be written to

#### onEnterKeyDown

    protected void onEnterKeyDown(Cell.Context context,
                                  Element parent,
                                  java.util.Date value,
                                  NativeEvent event,
                                  ValueUpdater<java.util.Date> valueUpdater)

Description copied from class: `AbstractCell`
Called when the user triggers a `keydown` event with the ENTER key while focused on the cell. If your cell interacts with the user, you should override this method to provide a consistent user experience. Your widget must consume `keydown` events for this method to be called.

Overrides:
  `onEnterKeyDown` in class `AbstractCell<java.util.Date>`
Parameters:
  `context` - the `Context` of the cell
  `parent` - the parent Element
  `value` - the value associated with the cell
  `event` - the native browser event
  `valueUpdater` - a `ValueUpdater`, or null if not specified