com.google.gwt.user.datepicker.client

## Class DatePicker

- java.lang.Object
- - com.google.gwt.user.client.ui.UIObject
  - - com.google.gwt.user.client.ui.Widget
    - - com.google.gwt.user.client.ui.Composite
      - - com.google.gwt.user.datepicker.client.DatePicker

- All Implemented Interfaces:
    IsEditor<LeafValueEditor<java.util.Date>>, HasAttachHandlers, HasHighlightHandlers<java.util.Date>, HasShowRangeHandlers<java.util.Date>, HasValueChangeHandlers<java.util.Date>, HasHandlers, EventListener, TakesValue<java.util.Date>, HasValue<java.util.Date>, HasVisibility, IsRenderable, IsWidget

      public class DatePicker
      extends Composite
      implements HasHighlightHandlers<java.util.Date>, HasShowRangeHandlers<java.util.Date>, HasValue<java.util.Date>, IsEditor<LeafValueEditor<java.util.Date>>

  Standard GWT date picker.

  ### CSS Style Rules

  - .gwt-DatePicker { }
  - .datePickerMonthSelector { the month selector widget }
  - .datePickerMonth { the month in the month selector widget }
  - .datePickerPreviousButton { the previous month button }
  - .datePickerNextButton { the next month button }
  - .datePickerDays { the portion of the picker that shows the days }
  - .datePickerWeekdayLabel { the label over weekdays }
  - .datePickerWeekendLabel { the label over weekends }
  - .datePickerDay { a single day }
  - .datePickerDayIsToday { today's date }
  - .datePickerDayIsWeekend { a weekend day }
  - .datePickerDayIsFiller { a day in another month }
  - .datePickerDayIsValue { the selected day }
  - .datePickerDayIsDisabled { a disabled day }
  - .datePickerDayIsHighlighted { the currently highlighted day }
  - .datePickerDayIsValueAndHighlighted { the highlighted day if it is also selected }

  ### Example

  >     public class DatePickerExample implements EntryPoint {

  >       public void onModuleLoad() {
  >         // Create a date picker
  >         DatePicker datePicker = new DatePicker();
  >         final Label text = new Label();

  >         // Set the value in the text box when the user selects a date
  >         datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {
  >           public void onValueChange(ValueChangeEvent<Date> event) {
  >             Date date = event.getValue();
  >             String dateString = DateTimeFormat.getMediumDateFormat().format(date);
  >             text.setText(dateString);
  >           }
  >         });

  >         // Set the default value
  >         datePicker.setValue(new Date(), true);

  >         // Add the widgets to the page
  >         RootPanel.get().add(text);
  >         RootPanel.get().add(datePicker);
  >       }
  >     }

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `(package private) static class` | `DatePicker.StandardCss` Convenience class to group css style names.

    - ### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject

      `UIObject.DebugIdImpl, UIObject.DebugIdImplEnabled`

  - ### Field Summary

    - ### Fields inherited from class com.google.gwt.user.client.ui.UIObject

      `DEBUG_ID_PREFIX`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `DatePicker()` Create a new date picker.
    `protected` | `DatePicker(MonthSelector monthSelector, CalendarView view, CalendarModel model)` Creates a new date picker.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `HandlerRegistration` | `addHighlightHandler(HighlightHandler<java.util.Date> handler)` Adds a `HighlightEvent` handler.
    `HandlerRegistration` | `addShowRangeHandler(ShowRangeHandler<java.util.Date> handler)` Adds a `ShowRangeEvent` handler.
    `HandlerRegistration` | `addShowRangeHandlerAndFire(ShowRangeHandler<java.util.Date> handler)` Adds a show range handler and immediately activate the handler on the current view.
    `void` | `addStyleToDates(java.lang.String styleName, java.util.Date date)` Add a style name to the given dates.
    `void` | `addStyleToDates(java.lang.String styleName, java.util.Date date, java.util.Date... moreDates)` Add a style name to the given dates.
    `void` | `addStyleToDates(java.lang.String styleName, java.lang.Iterable<java.util.Date> dates)` Add a style name to the given dates.
    `void` | `addTransientStyleToDates(java.lang.String styleName, java.util.Date date)` Adds the given style name to the specified dates, which must be visible.
    `void` | `addTransientStyleToDates(java.lang.String styleName, java.util.Date date, java.util.Date... moreDates)` Adds the given style name to the specified dates, which must be visible.
    `void` | `addTransientStyleToDates(java.lang.String styleName, java.lang.Iterable<java.util.Date> dates)` Adds the given style name to the specified dates, which must be visible.
    `HandlerRegistration` | `addValueChangeHandler(ValueChangeHandler<java.util.Date> handler)` Adds a `ValueChangeEvent` handler.
    `LeafValueEditor<java.util.Date>` | `asEditor()` Returns a `TakesValueEditor` backed by the DatePicker.
    `(package private) DatePicker.StandardCss` | `css()` Gets the css associated with this date picker for use by extended month and cell grids.
    `java.util.Date` | `getCurrentMonth()` Gets the current month the date picker is showing.
    `java.util.Date` | `getFirstDate()` Returns the first shown date.
    `java.util.Date` | `getHighlightedDate()` Gets the highlighted date (the one the mouse is hovering over), if any.
    `java.util.Date` | `getLastDate()` Returns the last shown date.
    `protected CalendarModel` | `getModel()` Gets the `CalendarModel` associated with this date picker.
    `protected MonthSelector` | `getMonthSelector()` Gets the `MonthSelector` associated with this date picker.
    `java.lang.String` | `getStyleOfDate(java.util.Date date)` Gets the style associated with a date (does not include styles set via `addTransientStyleToDates(java.lang.String, java.util.Date)`).
    `java.util.Date` | `getValue()` Returns the selected date, or null if none is selected.
    `protected CalendarView` | `getView()` Gets the `CalendarView` associated with this date picker.
    `boolean` | `isDateEnabled(java.util.Date date)` Is the visible date enabled?
    `boolean` | `isDateVisible(java.util.Date date)` Is the date currently shown in the date picker?
    `void` | `onLoad()` This method is called immediately after a widget becomes attached to the browser's document.
    `protected void` | `refreshAll()` Refreshes all components of this date picker.
    `void` | `removeStyleFromDates(java.lang.String styleName, java.util.Date date)` Removes the styleName from the given dates (even if it is transient).
    `void` | `removeStyleFromDates(java.lang.String styleName, java.util.Date date, java.util.Date... moreDates)` Removes the styleName from the given dates (even if it is transient).
    `void` | `removeStyleFromDates(java.lang.String styleName, java.lang.Iterable<java.util.Date> dates)` Removes the styleName from the given dates (even if it is transient).
    `void` | `setCurrentMonth(java.util.Date month)` Sets the date picker to show the given month, use `getFirstDate()` and `getLastDate()` to access the exact date range the date picker chose to display.
    `(package private) void` | `setHighlightedDate(java.util.Date highlighted)` Sets the highlighted date.
    `void` | `setStyleName(java.lang.String styleName)` Sets the date picker style name.
    `void` | `setTransientEnabledOnDates(boolean enabled, java.util.Date date)` Sets a visible date to be enabled or disabled.
    `void` | `setTransientEnabledOnDates(boolean enabled, java.util.Date date, java.util.Date... moreDates)` Sets a visible date to be enabled or disabled.
    `void` | `setTransientEnabledOnDates(boolean enabled, java.lang.Iterable<java.util.Date> dates)` Sets a group of visible dates to be enabled or disabled.
    `protected void` | `setup()` Sets up the date picker.
    `void` | `setValue(java.util.Date newValue)` Sets the `DatePicker`'s value.
    `void` | `setValue(java.util.Date newValue, boolean fireEvents)` Sets the `DatePicker`'s value.

    - ### Methods inherited from class com.google.gwt.user.client.ui.Composite

      `claimElement, getWidget, initializeClaimedElement, initWidget, isAttached, onAttach, onBrowserEvent, onDetach, render, render, resolvePotentialElement, setWidget`

    - ### Methods inherited from class com.google.gwt.user.client.ui.Widget

      `addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, fireEvent, getHandlerCount, getLayoutData, getParent, isOrWasAttached, onUnload, removeFromParent, setLayoutData, sinkEvents`

    - ### Methods inherited from class com.google.gwt.user.client.ui.UIObject

      `addStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkBitlessEvent, toString, unsinkEvents`

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

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

    - ### Methods inherited from interface com.google.gwt.event.shared.HasHandlers

      `fireEvent`

- - ### Constructor Detail

    - #### DatePicker

          public DatePicker()

      Create a new date picker.

    - #### DatePicker

          protected DatePicker(MonthSelector monthSelector,
                    CalendarView view,
                    CalendarModel model)

      Creates a new date picker.
      Parameters:
        `monthSelector` - the month selector
        `view` - the view
        `model` - the model

  - ### Method Detail

    - #### addHighlightHandler

          public HandlerRegistration addHighlightHandler(HighlightHandler<java.util.Date> handler)

      Description copied from interface: `HasHighlightHandlers`
      Adds a `HighlightEvent` handler.
      Specified by:
        `addHighlightHandler` in interface `HasHighlightHandlers<java.util.Date>`
      Parameters:
        `handler` - the handler
      Returns:
        the registration for the event

    - #### addShowRangeHandler

          public HandlerRegistration addShowRangeHandler(ShowRangeHandler<java.util.Date> handler)

      Description copied from interface: `HasShowRangeHandlers`
      Adds a `ShowRangeEvent` handler.
      Specified by:
        `addShowRangeHandler` in interface `HasShowRangeHandlers<java.util.Date>`
      Parameters:
        `handler` - the handler
      Returns:
        the registration for the event

    - #### addShowRangeHandlerAndFire

          public HandlerRegistration addShowRangeHandlerAndFire(ShowRangeHandler<java.util.Date> handler)

      Adds a show range handler and immediately activate the handler on the current view.
      Parameters:
        `handler` - the handler
      Returns:
        the handler registration

    - #### addStyleToDates

          public void addStyleToDates(java.lang.String styleName,
                             java.util.Date date)

      Add a style name to the given dates.

    - #### addStyleToDates

          public void addStyleToDates(java.lang.String styleName,
                             java.util.Date date,
                             java.util.Date... moreDates)

      Add a style name to the given dates.

    - #### addStyleToDates

          public void addStyleToDates(java.lang.String styleName,
                             java.lang.Iterable<java.util.Date> dates)

      Add a style name to the given dates.

    - #### addTransientStyleToDates

          public void addTransientStyleToDates(java.lang.String styleName,
                                      java.util.Date date)

      Adds the given style name to the specified dates, which must be visible. This is only set until the next time the DatePicker is refreshed.

    - #### addTransientStyleToDates

          public final void addTransientStyleToDates(java.lang.String styleName,
                                      java.util.Date date,
                                      java.util.Date... moreDates)

      Adds the given style name to the specified dates, which must be visible. This is only set until the next time the DatePicker is refreshed.

    - #### addTransientStyleToDates

          public final void addTransientStyleToDates(java.lang.String styleName,
                                      java.lang.Iterable<java.util.Date> dates)

      Adds the given style name to the specified dates, which must be visible. This is only set until the next time the DatePicker is refreshed.

    - #### addValueChangeHandler

          public HandlerRegistration addValueChangeHandler(ValueChangeHandler<java.util.Date> handler)

      Description copied from interface: `HasValueChangeHandlers`
      Adds a `ValueChangeEvent` handler.
      Specified by:
        `addValueChangeHandler` in interface `HasValueChangeHandlers<java.util.Date>`
      Parameters:
        `handler` - the handler
      Returns:
        the registration for the event

    - #### asEditor

          public LeafValueEditor<java.util.Date> asEditor()

      Returns a `TakesValueEditor` backed by the DatePicker.
      Specified by:
        `asEditor` in interface `IsEditor<LeafValueEditor<java.util.Date>>`
      Returns:
        an `Editor` of type E

    - #### getCurrentMonth

          public java.util.Date getCurrentMonth()

      Gets the current month the date picker is showing.

      A datepicker may show days not in the current month. It must show all days in the current month.

      Returns:
        the current month

    - #### getFirstDate

          public final java.util.Date getFirstDate()

      Returns the first shown date.
      Returns:
        the first date.

    - #### getHighlightedDate

          public final java.util.Date getHighlightedDate()

      Gets the highlighted date (the one the mouse is hovering over), if any.
      Returns:
        the highlighted date

    - #### getLastDate

          public final java.util.Date getLastDate()

      Returns the last shown date.
      Returns:
        the last date.

    - #### getStyleOfDate

          public java.lang.String getStyleOfDate(java.util.Date date)

      Gets the style associated with a date (does not include styles set via `addTransientStyleToDates(java.lang.String, java.util.Date)`).
      Parameters:
        `date` - the date
      Returns:
        the styles associated with this date

    - #### getValue

          public final java.util.Date getValue()

      Returns the selected date, or null if none is selected.
      Specified by:
        `getValue` in interface `TakesValue<java.util.Date>`
      Specified by:
        `getValue` in interface `HasValue<java.util.Date>`
      Returns:
        the selected date, or null
      See Also:
        `TakesValue.setValue(V)`

    - #### isDateEnabled

          public boolean isDateEnabled(java.util.Date date)

      Is the visible date enabled?
      Parameters:
        `date` - the date, which must be visible
      Returns:
        is the date enabled?

    - #### isDateVisible

          public boolean isDateVisible(java.util.Date date)

      Is the date currently shown in the date picker?
      Parameters:
        `date` -
      Returns:
        is the date currently shown

    - #### onLoad

          public void onLoad()

      Description copied from class: `Widget`
      This method is called immediately after a widget becomes attached to the browser's document.
      Overrides:
        `onLoad` in class `Widget`

    - #### removeStyleFromDates

          public void removeStyleFromDates(java.lang.String styleName,
                                  java.util.Date date)

      Removes the styleName from the given dates (even if it is transient).

    - #### removeStyleFromDates

          public void removeStyleFromDates(java.lang.String styleName,
                                  java.util.Date date,
                                  java.util.Date... moreDates)

      Removes the styleName from the given dates (even if it is transient).

    - #### removeStyleFromDates

          public void removeStyleFromDates(java.lang.String styleName,
                                  java.lang.Iterable<java.util.Date> dates)

      Removes the styleName from the given dates (even if it is transient).

    - #### setCurrentMonth

          public void setCurrentMonth(java.util.Date month)

      Sets the date picker to show the given month, use `getFirstDate()` and `getLastDate()` to access the exact date range the date picker chose to display.

      A datepicker may show days not in the current month. It must show all days in the current month.

      Parameters:
        `month` - the month to show

    - #### setStyleName

          public void setStyleName(java.lang.String styleName)

      Sets the date picker style name.
      Overrides:
        `setStyleName` in class `UIObject`
      Parameters:
        `styleName` - the new style name
      See Also:
        `UIObject.setStylePrimaryName(String)`

    - #### setTransientEnabledOnDates

          public final void setTransientEnabledOnDates(boolean enabled,
                                        java.util.Date date)

      Sets a visible date to be enabled or disabled. This is only set until the next time the DatePicker is refreshed.

    - #### setTransientEnabledOnDates

          public final void setTransientEnabledOnDates(boolean enabled,
                                        java.util.Date date,
                                        java.util.Date... moreDates)

      Sets a visible date to be enabled or disabled. This is only set until the next time the DatePicker is refreshed.

    - #### setTransientEnabledOnDates

          public final void setTransientEnabledOnDates(boolean enabled,
                                        java.lang.Iterable<java.util.Date> dates)

      Sets a group of visible dates to be enabled or disabled. This is only set until the next time the DatePicker is refreshed.

    - #### setValue

          public final void setValue(java.util.Date newValue)

      Sets the `DatePicker`'s value.
      Specified by:
        `setValue` in interface `TakesValue<java.util.Date>`
      Specified by:
        `setValue` in interface `HasValue<java.util.Date>`
      Parameters:
        `newValue` - the new value
      See Also:
        `TakesValue.getValue()`

    - #### setValue

          public final void setValue(java.util.Date newValue,
                      boolean fireEvents)

      Sets the `DatePicker`'s value.
      Specified by:
        `setValue` in interface `HasValue<java.util.Date>`
      Parameters:
        `newValue` - the new value for this date picker
        `fireEvents` - should events be fired.

    - #### getModel

          protected final CalendarModel getModel()

      Gets the `CalendarModel` associated with this date picker.
      Returns:
        the model

    - #### getMonthSelector

          protected final MonthSelector getMonthSelector()

      Gets the `MonthSelector` associated with this date picker.
      Returns:
        the month selector

    - #### getView

          protected final CalendarView getView()

      Gets the `CalendarView` associated with this date picker.
      Returns:
        the view

    - #### refreshAll

          protected final void refreshAll()

      Refreshes all components of this date picker.

    - #### setup

          protected void setup()

      Sets up the date picker.

    - #### css

          final DatePicker.StandardCss css()

      Gets the css associated with this date picker for use by extended month and cell grids.
      Returns:
        the css.

    - #### setHighlightedDate

          void setHighlightedDate(java.util.Date highlighted)

      Sets the highlighted date.
      Parameters:
        `highlighted` - highlighted date