public class TimeField extends FormComponentPanel<LocalTime>
LocalTime
object. Displays 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
TimeField
's Locale
, as does the visibility of the AM/PM field (see
use12HourFormat()
).Modifier and Type | Class and Description |
---|---|
static class |
TimeField.AM_PM
Enumerated type for different ways of handling the render part of requests.
|
protected class |
TimeField.AmPmModel |
protected class |
TimeField.HoursModel |
protected class |
TimeField.MinutesModel |
Modifier and Type | Field and Description |
---|---|
static String |
HOURS_CSS_CLASS_KEY |
static String |
MINUTES_CSS_CLASS_KEY |
FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULL, VALUE_SEPARATOR
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 and Description |
---|
TimeField(String id)
Construct.
|
TimeField(String id,
IModel<LocalTime> model)
Construct.
|
Modifier and Type | Method and Description |
---|---|
void |
convertInput()
Converts and validates the conversion of the raw input string into the object specified by
FormComponent.getType() and records any thrown ConversionException s. |
String |
getInput()
Gets the request parameter for this component as a string.
|
protected TextField<Integer> |
newHoursTextField(String id,
IModel<Integer> model,
Class<Integer> type)
create a new
TextField instance for hours to be added to this panel. |
protected TextField<Integer> |
newMinutesTextField(String id,
IModel<Integer> model,
Class<Integer> type)
create a new
TextField instance for minutes to be added to this panel. |
protected void |
onConfigure()
Called on all components before any component is rendered.
|
protected void |
onInitialize()
This method is meant to be used as an alternative to initialize components.
|
protected boolean |
use12HourFormat()
Checks whether the current
Locale uses the 12h or 24h time format. |
checkRequired, clearInput, newMarkupSourcingStrategy, onComponentTag
add, add, convertValue, error, getConvertedInput, getDefaultLabel, getDefaultLabel, getForm, getInputAsArray, getInputName, getModelValue, getParameterValues, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isInputNullable, isMultiPart, isRequired, isValid, newValidatable, newValidationError, onDetach, onDisabled, onInvalid, onRequired, onValid, processChildren, processInput, remove, reportRequiredError, setConvertedInput, setLabel, setModelValue, setRequired, setType, shouldTrimInput, trim, updateAutoLabels, updateCollectionModel, updateModel, valid, validate, validateRequired, validateValidators, visitComponentsPostOrder, visitFormComponentsPostOrder
getLabel
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, getRegionMarkup, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildren
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, 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, onBeforeRender, 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, wrap
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
dequeue, getRegionMarkup, newDequeueContext
getDefaultModel, getDefaultModelObject, getModel, getModelObject, setDefaultModel, setDefaultModelObject, setModel, setModelObject
forEach, spliterator
public static final String HOURS_CSS_CLASS_KEY
public static final String MINUTES_CSS_CLASS_KEY
public TimeField(String id)
id
- the component idprotected void onInitialize()
Component
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()
.
onInitialize
in class MarkupContainer
protected TextField<Integer> newHoursTextField(String id, IModel<Integer> model, Class<Integer> type)
TextField
instance for hours to be added to this panel.id
- the component idmodel
- model that should be used by the TextField
type
- the type of the text fieldprotected TextField<Integer> newMinutesTextField(String id, IModel<Integer> model, Class<Integer> type)
TextField
instance for minutes to be added to this panel.id
- the component idmodel
- model that should be used by the TextField
type
- the type of the text fieldpublic String getInput()
FormComponent
getInput
in class FormComponent<LocalTime>
public void convertInput()
FormComponent
FormComponent.getType()
and records any thrown ConversionException
s.
Converted value is available through FormComponent.getConvertedInput()
.
Usually the user should do custom conversions by specifying an IConverter
by
registering it with the application by overriding Application.getConverterLocator()
,
or at the component level by overriding Component.getConverter(Class)
.
protected void onConfigure()
Component
Overrides must call super.onConfigure()
, usually before any other code
NOTE: Component hierarchy should not be modified inside this method, instead it should be
done in Component.onBeforeRender()
NOTE: Why this method is preferrable to directly overriding Component.isVisible()
and
Component.isEnabled()
? Because those methods are called multiple times even for processing of
a single request. If they contain expensive logic they can slow down the response time of the
entire page. Further, overriding those methods directly on form components may lead to
inconsistent or unexpected state depending on when those methods are called in the form
processing workflow. It is a better practice to push changes to state rather than pull.
NOTE: If component's visibility or another property depends on another component you may call
other.configure()
followed by other.isVisible()
as mentioned in
Component.configure()
javadoc.
NOTE: Why should Component.onBeforeRender()
not be used for this? Because if a component's
visibility is controlled inside Component.onBeforeRender()
, once invisible the component will
never become visible again.
onConfigure
in class Component
Copyright © 2006–2022 Apache Software Foundation. All rights reserved.