All Implemented Interfaces:
Serializable, Iterable<Component>, IEventSink, IEventSource, IFeedbackContributor, IConverterLocator, IGenericComponent<ZonedDateTime,FormComponent<ZonedDateTime>>, IMetadataContext<Serializable,Component>, IQueueRegion, IFormModelUpdateListener, IFormVisitorParticipant, ILabelProvider<String>, IHeaderContributor, IRequestableComponent, IHierarchical<Component>, IClusterable

public class ZonedDateTimeField extends FormComponentPanel<T>
Works on a ZonedDateTime object. See AbstractDateTimeField for further details.
Author:
eelcohillenius
See Also:
  • Field Details

    • DATE_CSS_CLASS_KEY

      public static final String DATE_CSS_CLASS_KEY
    • TIME_CSS_CLASS_KEY

      public static final String TIME_CSS_CLASS_KEY
  • Constructor Details

  • Method Details

    • createTemporal

      Creates a zoned date time in the systems default zone.
      Returns:
      See Also:
    • getLocalDate

      protected LocalDate getLocalDate(ZonedDateTime temporal)
      Get the local date from the given temporal.
      Returns:
      local date
    • getLocalTime

      protected LocalTime getLocalTime(ZonedDateTime temporal)
      Get the time from the given temporal.
      Returns:
      time
    • onInitialize

      protected void onInitialize()
      Description copied from class: Component
      This method is meant to be used as an alternative to initialize components. Usually the component's constructor is used for this task, but sometimes a component cannot be initialized in isolation, it may need to access its parent component or its markup in order to fully initialize. This method is invoked once per component's lifecycle when a path exists from this component to the Page thus providing the component with an atomic callback when the component's environment is built out.

      Overrides must call super#Component.onInitialize(). Usually this should be the first thing an override does, much like a constructor.

      Parent containers are guaranteed to be initialized before their children

      It is safe to use Component.getPage() in this method

      NOTE:The timing of this call is not precise, the contract is that it is called sometime before Component.onBeforeRender().

      Overrides:
      onInitialize in class MarkupContainer
    • getDateField

      protected final LocalDateTextField getDateField()
      Returns:
      The date TextField
    • getTimeField

      protected final TimeField getTimeField()
      Returns:
      The date TextField
    • getInput

      public String getInput()
      Description copied from class: FormComponent
      Gets the request parameter for this component as a string.
      Overrides:
      getInput in class FormComponent<T extends Temporal>
      Returns:
      The value in the request for this component
    • convertInput

      public void convertInput()
      Sets the converted input, which is an instance of Date, possibly null. It combines the inputs of the nested date, hours, minutes and am/pm fields and constructs a date from it.

      Note that overriding this method is a better option than overriding FormComponent.updateModel() like the first versions of this class did. The reason for that is that this method can be used by form validators without having to depend on the actual model being updated, and this method is called by the default implementation of FormComponent.updateModel() anyway (so we don't have to override that anymore).

      Overrides:
      convertInput in class FormComponent<T extends Temporal>
      See Also:
    • getDefaultTime

      protected LocalTime getDefaultTime()
      Get a default time if none was entered.
      Returns:
      null by default
    • newDateField

      protected LocalDateTextField newDateField(String id, IModel<LocalDate> dateFieldModel)
      create a new LocalDateTextField instance to be added to this panel.
      Parameters:
      id - the component id
      dateFieldModel - model that should be used by the LocalDateTextField
      Returns:
      a new date text field instance
    • newTimeField

      protected TimeField newTimeField(String id, IModel<LocalTime> timeFieldModel)
      create a new TimeField instance to be added to this panel.
      Parameters:
      id - the component id
      timeFieldModel - model that should be used by the TimeField
      Returns:
      a new time text field instance
    • onBeforeRender

      protected void onBeforeRender()
      Description copied from class: Component
      Called on all visible components before any component is rendered.

      NOTE: If you override this, you *must* call super.onBeforeRender() within your implementation. Because this method is responsible for cascading Component.onBeforeRender() call to its children it is strongly recommended that super call is made at the end of the override.

      Changes to the component tree can be made only before calling super.onBeforeRender().
      Overrides:
      onBeforeRender in class FormComponent<T extends Temporal>
      See Also: