Class DateTimeField
java.lang.Object
org.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
org.apache.wicket.markup.html.form.FormComponent<T>
org.apache.wicket.markup.html.form.FormComponentPanel<Date>
org.wicketstuff.datetime.extensions.yui.calendar.DateTimeField
- All Implemented Interfaces:
Serializable,Iterable<Component>,IEventSink,IEventSource,IFeedbackContributor,IConverterLocator,IGenericComponent<Date,,FormComponent<Date>> IMetadataContext<Serializable,,Component> IQueueRegion,IFormModelUpdateListener,IFormVisitorParticipant,ILabelProvider<String>,IHeaderContributor,IRequestableComponent,IHierarchical<Component>,IClusterable
Works on a
Date object. Displays a date field and a DatePicker, a field
for hours and a field for minutes, and an AM/PM field. The format (12h/24h) of the hours field
depends on the time format of this DateTimeField's Locale, as does the visibility
of the AM/PM field (see use12HourFormat()).
Ajaxifying the DateTimeField: If you want to update a DateTimeField with an
AjaxFormComponentUpdatingBehavior, you have to attach it to the contained
DateTextField by overriding newDateTextField(String, IModel) and calling
FormComponent.processInput():
DateTimeField dateTimeField = new DateTimeField(...) {
protected DateTextField newDateTextField(String id, IModel<Date> dateFieldModel)
{
DateTextField dateField = super.newDateTextField(id, dateFieldModel);
dateField.add(new AjaxFormComponentUpdatingBehavior("change") {
protected void onUpdate(AjaxRequestTarget target) {
processInput(); // let DateTimeField process input too
...
}
});
return recorder;
}
}
- Author:
- eelcohillenius
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumEnumerated type for different ways of handling the render part of requests. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final Stringprotected static final Stringprotected static final StringFields inherited from class org.apache.wicket.markup.html.form.FormComponent
FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULL, VALUE_SEPARATORFields inherited from class org.apache.wicket.Component
ENABLE, FLAG_INITIALIZED, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING, RFLAG_CONTAINER_HAS_REMOVALS -
Constructor Summary
ConstructorsConstructorDescriptionDateTimeField(String id) Construct.DateTimeField(String id, IModel<Date> model) Construct. -
Method Summary
Modifier and TypeMethodDescriptionstatic DatechangeTimeZone(Date date, TimeZone zone) Change a date in another timezoneprotected voidGives overriding classes the option of adding (or even changing/ removing) configuration properties for the javascript widget.voidSets the converted input, which is an instance ofDate, possibly null.final DateTimeField.AM_PMDeprecated.valid during rendering onlyprotected TimeZoneGets the client's time zone.final DategetDate()Deprecated.valid during rendering onlyprotected final DateTextFieldfinal IntegergetHours()Deprecated.valid during rendering onlygetInput()final IntegerDeprecated.valid during rendering onlyprotected DateA factory method for the DateTextField's model object.protected DatenewDateInstance(long time) A factory method for the DateTextField's model object.protected DatePickerThe DatePicker that gets added to the DateTimeField component.protected DateTextFieldnewDateTextField(String id, IModel<Date> dateFieldModel) create a newDateTextFieldinstance to be added to this panel.create a newTextFieldinstance for hours to be added to this panel.create a newTextFieldinstance for minutes to be added to this panel.protected voidfinal voidsetAmOrPm(DateTimeField.AM_PM amOrPm) Sets the amOrPm model object associated with the drop down choice.final voidSets the date model object associated with the date TextField.final voidSets hours.final voidsetMinutes(Integer minutes) Sets minutes.protected booleanChecks whether the currentLocaleuses the 12h or 24h time format.Methods inherited from class org.apache.wicket.markup.html.form.FormComponentPanel
checkRequired, clearInput, newMarkupSourcingStrategy, onComponentTagMethods inherited from class org.apache.wicket.markup.html.form.FormComponent
add, add, convertValue, error, getConvertedInput, getDefaultLabel, getDefaultLabel, getForm, getInputAsArray, getInputName, getModelValue, getParameterValues, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isFormParticipant, isInputNullable, isMultiPart, isRequired, isValid, newValidatable, newValidationError, onDetach, onDisabled, onInvalid, onValid, processChildren, processInput, remove, reportRequiredError, setConvertedInput, setLabel, setModelValue, setRequired, setType, shouldTrimInput, trim, updateAutoLabels, updateAutoLabels, updateCollectionModel, updateModel, valid, validate, validateRequired, validateValidators, visitComponentsPostOrder, visitFormComponentsPostOrderMethods inherited from class org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
getLabelMethods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSessionMethods inherited from class org.apache.wicket.MarkupContainer
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, getRegionMarkup, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildrenMethods inherited from class org.apache.wicket.Component
add, addStateChange, beforeRender, canCallListener, canCallListenerAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMarkupTag, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPart, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.wicket.IGenericComponent
getDefaultModel, getDefaultModelObject, getModel, getModelObject, setDefaultModel, setDefaultModelObject, setModel, setModelObjectMethods inherited from interface org.apache.wicket.IQueueRegion
dequeue, getRegionMarkup, newDequeueContextMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
DATE
- See Also:
-
HOURS
- See Also:
-
MINUTES
- See Also:
-
AM_OR_PM_CHOICE
- See Also:
-
-
Constructor Details
-
DateTimeField
Construct.- Parameters:
id-
-
DateTimeField
Construct.- Parameters:
id-model-
-
-
Method Details
-
newHoursTextField
protected TextField<Integer> newHoursTextField(String id, IModel<Integer> model, Class<Integer> type) create a newTextFieldinstance for hours to be added to this panel.- Parameters:
id- the component idmodel- model that should be used by theTextFieldtype- the type of the text field- Returns:
- a new text field instance
-
newMinutesTextField
protected TextField<Integer> newMinutesTextField(String id, IModel<Integer> model, Class<Integer> type) create a newTextFieldinstance for minutes to be added to this panel.- Parameters:
id- the component idmodel- model that should be used by theTextFieldtype- the type of the text field- Returns:
- a new text field instance
-
getDateTextField
- Returns:
- The date TextField
-
getAmOrPm
Deprecated.valid during rendering onlyGets the amOrPm model object of the drop down choice.- Returns:
- amOrPm
-
getDate
Deprecated.valid during rendering onlyGets the date model object for the date TextField. Any associated time information will be ignored.- Returns:
- date
-
getHours
Deprecated.valid during rendering onlyGets the hours model object for the TextField- Returns:
- hours
-
getMinutes
Deprecated.valid during rendering onlyGets the minutes model object for the TextField- Returns:
- minutes
-
configure
Gives overriding classes the option of adding (or even changing/ removing) configuration properties for the javascript widget. See the widget's documentation for the available options. If you want to override/ remove properties, you should call super.configure(properties) first. If you don't call that, be aware that you will have to callconfigure(java.util.Map)manually if you like localized strings to be added.- Parameters:
widgetProperties- the current widget properties
-
getInput
- Overrides:
getInputin classFormComponent<Date>
-
setAmOrPm
Sets the amOrPm model object associated with the drop down choice.- Parameters:
amOrPm- amOrPm
-
setDate
Sets the date model object associated with the date TextField. It does not affect hours or minutes.- Parameters:
date- date
-
setHours
Sets hours.- Parameters:
hours- hours
-
setMinutes
Sets minutes.- Parameters:
minutes- minutes
-
getClientTimeZone
Gets the client's time zone.- Returns:
- The client's time zone or null
-
convertInput
public void convertInput()Sets the converted input, which is an instance ofDate, 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 ofFormComponent.updateModel()anyway (so we don't have to override that anymore).- Overrides:
convertInputin classFormComponent<Date>
-
newDateInstance
A factory method for the DateTextField's model object.- Returns:
- any specialization of java.util.Date
-
newDateInstance
A factory method for the DateTextField's model object.- Parameters:
time- the time in milliseconds- Returns:
- any specialization of java.util.Date
-
newDateTextField
create a newDateTextFieldinstance to be added to this panel.- Parameters:
id- the component iddateFieldModel- model that should be used by theDateTextField- Returns:
- a new date text field instance
-
onBeforeRender
protected void onBeforeRender()- Overrides:
onBeforeRenderin classFormComponent<Date>- See Also:
-
changeTimeZone
Change a date in another timezone- Parameters:
date- The input date.zone- The target timezone.- Returns:
- A new converted date.
-
use12HourFormat
protected boolean use12HourFormat()Checks whether the currentLocaleuses the 12h or 24h time format. This method can be overridden to e.g. always use 24h format.- Returns:
- true, if the current
Localeuses the 12h format.
false, otherwise
-
newDatePicker
The DatePicker that gets added to the DateTimeField component. Users may override this method with a DatePicker of their choice.- Returns:
- a new
DatePickerinstance
-