public class DatePickerCell extends AbstractEditableCell<java.util.Date,java.util.Date>
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.
Cell.Context
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 . |
Modifier and Type | Method and Description |
---|---|
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. |
clearViewData, getViewData, setViewData
dependsOnSelection, getConsumedEvents, handlesSelection, resetFocus, setValue
public DatePickerCell()
DateTimeFormat.getFullDateFormat()
.public DatePickerCell(DateTimeFormat format)
SimpleSafeHtmlRenderer
.format
- a DateTimeFormat
instancepublic DatePickerCell(SafeHtmlRenderer<java.lang.String> renderer)
DateTimeFormat.getFullDateFormat()
and the given
SafeHtmlRenderer
.renderer
- a SafeHtmlRenderer
instancepublic DatePickerCell(DateTimeFormat format, SafeHtmlRenderer<java.lang.String> renderer)
SafeHtmlRenderer
.format
- a DateTimeFormat
instancerenderer
- a SafeHtmlRenderer
instancepublic DatePicker getDatePicker()
DatePicker
widget used by this cell.public boolean isEditing(Cell.Context context, Element parent, java.util.Date value)
AbstractEditableCell
isEditing
in interface Cell<java.util.Date>
isEditing
in class AbstractEditableCell<java.util.Date,java.util.Date>
context
- the Context
of the cellparent
- the parent Elementvalue
- the value associated with the cellpublic void onBrowserEvent(Cell.Context context, Element parent, java.util.Date value, NativeEvent event, ValueUpdater<java.util.Date> valueUpdater)
AbstractCell
If you override this method to add support for events, remember to pass the event types that the cell expects into the constructor.
onBrowserEvent
in interface Cell<java.util.Date>
onBrowserEvent
in class AbstractCell<java.util.Date>
context
- the Cell.Context
of the cellparent
- the parent Elementvalue
- the value associated with the cellevent
- the native browser eventvalueUpdater
- a ValueUpdater
, or null if not specifiedpublic void render(Cell.Context context, java.util.Date value, SafeHtmlBuilder sb)
Cell
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.
render
in interface Cell<java.util.Date>
render
in class AbstractCell<java.util.Date>
context
- the Cell.Context
of the cellvalue
- the cell value to be renderedsb
- the SafeHtmlBuilder
to be written toprotected void onEnterKeyDown(Cell.Context context, Element parent, java.util.Date value, NativeEvent event, ValueUpdater<java.util.Date> valueUpdater)
AbstractCell
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.onEnterKeyDown
in class AbstractCell<java.util.Date>
context
- the Context
of the cellparent
- the parent Elementvalue
- the value associated with the cellevent
- the native browser eventvalueUpdater
- a ValueUpdater
, or null if not specified