Class WTextField
- java.lang.Object
-
- com.github.bordertech.wcomponents.AbstractWComponent
-
- com.github.bordertech.wcomponents.WBeanComponent
-
- com.github.bordertech.wcomponents.AbstractInput
-
- com.github.bordertech.wcomponents.WTextField
-
- All Implemented Interfaces:
AjaxTarget
,AjaxTrigger
,Autocompleteable
,AutocompleteableDate
,AutocompleteableEmail
,AutocompleteableNumeric
,AutocompleteablePassword
,AutocompleteablePhone
,AutocompleteableText
,AutocompleteableURL
,BeanAware
,BeanBound
,BeanProviderBound
,DataBound
,Diagnosable
,Disableable
,Input
,Labelable
,Mandatable
,Placeholderable
,SubordinateTarget
,SubordinateTrigger
,WComponent
,WebComponent
,Serializable
- Direct Known Subclasses:
WTextArea
public class WTextField extends AbstractInput implements AjaxTrigger, AjaxTarget, SubordinateTrigger, SubordinateTarget, Placeholderable, AutocompleteableText
A WTextField is a wcomponent used to display a html text input field. Use the method "getText" to get the text entered into the field by the user. Common configuration methods include "setColumns" and "setMaxlength".- Since:
- 1.0.0
- Author:
- James Gifford, Martin Shevchenko, Jonathan Austin, Mark Reeves
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
WTextField.TextFieldModel
TextFieldModel holds Extrinsic state management of the field.-
Nested classes/interfaces inherited from class com.github.bordertech.wcomponents.AbstractInput
AbstractInput.InputModel
-
Nested classes/interfaces inherited from class com.github.bordertech.wcomponents.AbstractWComponent
AbstractWComponent.WComponentRef
-
-
Field Summary
-
Fields inherited from interface com.github.bordertech.wcomponents.WComponent
DEFAULT_APPLICATION_ID, DEFAULT_INTERNAL_ID, DEFAULT_NO_ID, ID_CONTEXT_SEPERATOR, ID_FRAMEWORK_ASSIGNED_SEPERATOR, ID_VALIDATION_PATTERN
-
-
Constructor Summary
Constructors Constructor Description WTextField()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAutocompleteSection(String sectionName)
Pre-pend anautocomplete
section to the value of anautocomplete
attribute for the current field.void
clearAutocomplete()
Clear theautocomplete
attribute.protected boolean
doHandleRequest(Request request)
Override handleRequest in order to perform processing for this component.String
getAutocomplete()
int
getColumns()
protected WTextField.TextFieldModel
getComponentModel()
Returns the effective component model for this component.int
getMaxLength()
int
getMinLength()
protected WTextField.TextFieldModel
getOrCreateComponentModel()
Retrieves the model for this component so that it can be modified.String
getPattern()
String
getPlaceholder()
Get the placeholder text, if explicitly set.String
getRequestValue(Request request)
Provide the value of the component on the Request.WSuggestions
getSuggestions()
String
getText()
Retrieves the text field's text.String
getValue()
Provide the value of the component returned byDataBound.getData()
in the correct format.protected WTextField.TextFieldModel
newComponentModel()
Creates a new TextFieldModel holds Extrinsic state management of the field.void
setAddressAutocomplete(AddressType addressType, AddressPart addressPart)
Set values for theautocomplete
attribute applicable to an address or part thereof.void
setAutocomplete(AutocompleteSegment value)
Setautocomplete
attribute value for a field based on a segment name.void
setAutocomplete(DateType value)
Set theautocomplete
s attribute for a type of date input.void
setAutocomplete(Email value)
Set theautocomplete
attribute to a specific "email" value.void
setAutocomplete(Numeric value)
Set the autocomplete attribute for a number field for a given numeric auto-fill value.void
setAutocomplete(Password value)
Set theautocomplete
attribute of a password field to a given password auto-fill hint type.void
setAutocomplete(Telephone phone, PhoneFormat phoneType)
Set theautocomplete
attribute to an appropriate value for a particular type of phone number, in either of a full or local format.void
setAutocomplete(Url value)
Set theautocomplete
attribute to a specific URL auto-fill type: "url", "impp" or "photo".protected void
setAutocomplete(String autocompleteValue)
Set the value of theautocomplete
attribute for the current field.void
setAutocompleteOff()
Turnautocomplete
off for the current field.void
setColumns(int columns)
Sets the width of the input field more-or-less in characters.void
setMaxLength(int maxLength)
Set the maximum number of characters that the user can enter into the text field.void
setMinLength(int minLength)
Set the minimum number of characters that the user can enter into the text field.void
setPattern(String pattern)
The pattern to validate against.void
setPhoneSegmentAutocomplete(PhoneFormat phoneType, PhonePart phoneSegment)
Set theautocomplete
attribute value relevant for a specified telephone number type and segment.void
setPlaceholder(String placeholder)
Set placeholder text which will appear in the field if it is editable and has no content.void
setSuggestions(WSuggestions suggestions)
Set theWSuggestions
for this textfield.void
setText(String text)
Sets the text value to be shown in the input field for the given user.protected void
validateComponent(List<Diagnostic> diags)
Override validateComponent to perform further validation.-
Methods inherited from class com.github.bordertech.wcomponents.AbstractInput
addValidator, beforeHandleRequest, createMandatoryDiagnostic, doHandleChanged, getActionCommand, getActionObject, getActionOnChange, getDefaultSubmitButton, getDiagnostics, getValidators, getValueAsString, handleRequest, isChangedInLastRequest, isCurrentAjaxTrigger, isDisabled, isEmpty, isMandatory, isPresent, isReadOnly, setActionObject, setActionOnChange, setChangedInLastRequest, setDefaultSubmitButton, setDisabled, setMandatory, setMandatory, setReadOnly, showErrorIndicatorsForComponent, showIndicatorsForComponent, showWarningIndicatorsForComponent, toString
-
Methods inherited from class com.github.bordertech.wcomponents.WBeanComponent
addBeanToScratchMap, doUpdateBeanValue, getBean, getBeanFromScratchMap, getBeanId, getBeanProperty, getBeanProvider, getBeanScratchMap, getBeanValue, getData, isBeanInScratchMap, isChanged, isSearchAncestors, isUseRequestScopeScratchMap, removeBeanFromScratchMap, resetData, setBean, setBeanId, setBeanProperty, setBeanProvider, setData, setSearchAncestors, updateBeanValue
-
Methods inherited from class com.github.bordertech.wcomponents.AbstractWComponent
addHtmlClass, addHtmlClass, addNotify, afterPaint, assertAddSupported, beforePaint, createErrorDiagnostic, createErrorDiagnostic, forward, getAccessibleText, getAttribute, getBaseUrl, getDefaultModel, getEnvironment, getHeaders, getHtmlClass, getHtmlClasses, getId, getIdName, getInternalId, getLabel, getName, getParent, getScratchMap, getTabIndex, getTag, getTemplate, getTemplateMarkUp, getToolTip, hasNoComponentModel, hasTabIndex, initialiseComponentModel, invokeLater, invokeLaters, isDebugStructure, isDefaultState, isFlagSet, isHidden, isInitialised, isLocked, isTracking, isTrackingEnabled, isValidate, isVisible, paint, paintComponent, preparePaint, preparePaintComponent, removeAttribute, removeComponentModel, removeHtmlClass, removeHtmlClass, removeNotify, replaceWComponent, reset, serviceRequest, setAccessibleText, setAttribute, setEnvironment, setFlag, setFocussed, setHidden, setHtmlClass, setHtmlClass, setIdName, setInitialised, setLocked, setTag, setToolTip, setTrackingEnabled, setValidate, setVisible, showErrorIndicators, showWarningIndicators, tidyUpUIContext, tidyUpUIContextForTree, validate, writeReplace
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.github.bordertech.wcomponents.autocomplete.Autocompleteable
isAutocompleteOff
-
Methods inherited from interface com.github.bordertech.wcomponents.autocomplete.AutocompleteableDate
setBirthdayAutocomplete
-
Methods inherited from interface com.github.bordertech.wcomponents.autocomplete.AutocompleteableEmail
setEmailAutocomplete
-
Methods inherited from interface com.github.bordertech.wcomponents.autocomplete.AutocompleteablePhone
setFullPhoneAutocomplete, setFullPhoneAutocomplete, setLocalPhoneAutocomplete, setLocalPhoneAutocomplete
-
Methods inherited from interface com.github.bordertech.wcomponents.autocomplete.AutocompleteableURL
setUrlAutocomplete
-
Methods inherited from interface com.github.bordertech.wcomponents.BeanAware
getBean, getBeanProperty, getBeanValue, setBeanProperty
-
Methods inherited from interface com.github.bordertech.wcomponents.BeanBound
isSearchAncestors, setBean
-
Methods inherited from interface com.github.bordertech.wcomponents.BeanProviderBound
getBeanId, setBeanId, setBeanProvider
-
Methods inherited from interface com.github.bordertech.wcomponents.WComponent
addHtmlClass, addHtmlClass, forward, getAccessibleText, getAttribute, getBaseUrl, getEnvironment, getHeaders, getHtmlClass, getHtmlClasses, getId, getIdName, getInternalId, getLabel, getName, getParent, getTabIndex, getTag, getToolTip, handleRequest, hasTabIndex, invokeLater, isDefaultState, isHidden, isInitialised, isLocked, isTracking, isTrackingEnabled, isValidate, isVisible, paint, preparePaint, removeAttribute, removeHtmlClass, removeHtmlClass, reset, serviceRequest, setAccessibleText, setAttribute, setEnvironment, setFocussed, setHtmlClass, setHtmlClass, setIdName, setInitialised, setLocked, setTag, setToolTip, setTrackingEnabled, setValidate, setVisible, showErrorIndicators, showWarningIndicators, tidyUpUIContextForTree, validate
-
-
-
-
Method Detail
-
doHandleRequest
protected boolean doHandleRequest(Request request)
Override handleRequest in order to perform processing for this component. This implementation updates the text field's text if it has changed.- Specified by:
doHandleRequest
in classAbstractInput
- Parameters:
request
- the request being responded to.- Returns:
- true if the text field has changed, otherwise false
-
getRequestValue
public String getRequestValue(Request request)
Provide the value of the component on the Request.If the component is not on the request, the components current value will be provided.
- Specified by:
getRequestValue
in interfaceInput
- Parameters:
request
- the request being responded to.- Returns:
- the value of this component on the Request, or its current state if it is not on the request.
-
getValue
public String getValue()
Provide the value of the component returned byDataBound.getData()
in the correct format.If required, this method can convert the data into the correct type and also do any validation before the value is used.
- Specified by:
getValue
in interfaceInput
- Overrides:
getValue
in classAbstractInput
- Returns:
- the value of the component returned by
DataBound.getData()
in the correct format.
-
getText
public String getText()
Retrieves the text field's text.- Returns:
- the text field's text.
-
setText
public void setText(String text)
Sets the text value to be shown in the input field for the given user.- Parameters:
text
- the text to display for the given context.
-
setPlaceholder
public void setPlaceholder(String placeholder)
Set placeholder text which will appear in the field if it is editable and has no content.- Specified by:
setPlaceholder
in interfacePlaceholderable
- Parameters:
placeholder
- The text to set as the placeholder.
-
getPlaceholder
public String getPlaceholder()
Get the placeholder text, if explicitly set.- Specified by:
getPlaceholder
in interfacePlaceholderable
- Returns:
- The placeholder text, if set.
-
getColumns
public int getColumns()
- Returns:
- the width of the input field in characters.
-
setColumns
public void setColumns(int columns)
Sets the width of the input field more-or-less in characters. The actual width of the input will vary from browser to browser bit will be in the region of 1.4 × columns.- Parameters:
columns
- the number of characters to display.
-
getMinLength
public int getMinLength()
- Returns:
- the minimum number of characters that the user can enter into the text field.
-
setMinLength
public void setMinLength(int minLength)
Set the minimum number of characters that the user can enter into the text field.
Setting the minimum number of characters will not make a field mandatory as the validation is only applied once the user has entered some text. Use
AbstractInput.setMandatory(boolean)
to make a field mandatory, which can be used in combination with setMinLength.- Parameters:
minLength
- the minimum number of characters to allow.
-
getMaxLength
public int getMaxLength()
- Returns:
- the maximum number of characters that the user can enter into the text field.
-
setMaxLength
public final void setMaxLength(int maxLength)
Set the maximum number of characters that the user can enter into the text field.- Parameters:
maxLength
- the maximum number of characters to allow.
-
setPattern
public final void setPattern(String pattern)
The pattern to validate against.The pattern must be supported natively by your target user agent (e.g. browser).
It is expected the
WLabel
for this component describes the required format of the component.- Parameters:
pattern
- the pattern to validate against.
-
getPattern
public String getPattern()
- Returns:
- the pattern to validate against.
-
getSuggestions
public WSuggestions getSuggestions()
- Returns:
- the
WSuggestions
for this textfield.
-
setSuggestions
public final void setSuggestions(WSuggestions suggestions)
Set theWSuggestions
for this textfield.- Parameters:
suggestions
- theWSuggestions
for this textfield
-
validateComponent
protected void validateComponent(List<Diagnostic> diags)
Override validateComponent to perform further validation.- Overrides:
validateComponent
in classAbstractInput
- Parameters:
diags
- the list into which any validation diagnostics are added.
-
newComponentModel
protected WTextField.TextFieldModel newComponentModel()
Creates a new TextFieldModel holds Extrinsic state management of the field.- Overrides:
newComponentModel
in classAbstractInput
- Returns:
- a new TextFieldModel
-
getComponentModel
protected WTextField.TextFieldModel getComponentModel()
Returns the effective component model for this component. Subclass may override this method to narrow the return type to their specific model type.- Overrides:
getComponentModel
in classAbstractInput
- Returns:
- the effective component model
-
getOrCreateComponentModel
protected WTextField.TextFieldModel getOrCreateComponentModel()
Retrieves the model for this component so that it can be modified. If this method is called during request processing, and a session specific model does not yet exist, then a new model is created. Subclasses may override this method to narrow the return type to their specific model type.- Overrides:
getOrCreateComponentModel
in classAbstractInput
- Returns:
- the model for this component
-
setAutocomplete
protected void setAutocomplete(String autocompleteValue)
Set the value of theautocomplete
attribute for the current field.- Parameters:
autocompleteValue
- the value to set as a (optionally space delimited list of) String value(s).
-
getAutocomplete
public String getAutocomplete()
- Specified by:
getAutocomplete
in interfaceAutocompleteable
- Returns:
- the value of the
autocomplete
attribute applied to the current field.
-
setAutocompleteOff
public void setAutocompleteOff()
Description copied from interface:Autocompleteable
Turnautocomplete
off for the current field.- Specified by:
setAutocompleteOff
in interfaceAutocompleteable
-
addAutocompleteSection
public void addAutocompleteSection(String sectionName)
Description copied from interface:Autocompleteable
Pre-pend anautocomplete
section to the value of anautocomplete
attribute for the current field.- Specified by:
addAutocompleteSection
in interfaceAutocompleteable
- Parameters:
sectionName
- the name of the section being the part which would replace the asterisk in the formsection-*
-
clearAutocomplete
public void clearAutocomplete()
Description copied from interface:Autocompleteable
Clear theautocomplete
attribute.- Specified by:
clearAutocomplete
in interfaceAutocompleteable
-
setAutocomplete
public void setAutocomplete(DateType value)
Description copied from interface:AutocompleteableDate
Set theautocomplete
s attribute for a type of date input.- Specified by:
setAutocomplete
in interfaceAutocompleteableDate
- Parameters:
value
- the type of date to auto-fill, currently only "bday" is supported.
-
setAutocomplete
public void setAutocomplete(Email value)
Description copied from interface:AutocompleteableEmail
Set theautocomplete
attribute to a specific "email" value. Currently only value "email" is supported.- Specified by:
setAutocomplete
in interfaceAutocompleteableEmail
- Parameters:
value
- the auto-fill hint value
-
setAutocomplete
public void setAutocomplete(Numeric value)
Description copied from interface:AutocompleteableNumeric
Set the autocomplete attribute for a number field for a given numeric auto-fill value.- Specified by:
setAutocomplete
in interfaceAutocompleteableNumeric
- Parameters:
value
- the type of number for auto-fill
-
setAutocomplete
public void setAutocomplete(Password value)
Description copied from interface:AutocompleteablePassword
Set theautocomplete
attribute of a password field to a given password auto-fill hint type.- Specified by:
setAutocomplete
in interfaceAutocompleteablePassword
- Parameters:
value
- the type of password field to auto-fill
-
setAutocomplete
public void setAutocomplete(Url value)
Description copied from interface:AutocompleteableURL
Set theautocomplete
attribute to a specific URL auto-fill type: "url", "impp" or "photo".- Specified by:
setAutocomplete
in interfaceAutocompleteableURL
- Parameters:
value
- the auto-fill hint value
-
setAutocomplete
public void setAutocomplete(AutocompleteSegment value)
Description copied from interface:AutocompleteableText
Setautocomplete
attribute value for a field based on a segment name.- Specified by:
setAutocomplete
in interfaceAutocompleteableText
- Parameters:
value
- the auto-fill mnemonic
-
setAutocomplete
public void setAutocomplete(Telephone phone, PhoneFormat phoneType)
Description copied from interface:AutocompleteablePhone
Set theautocomplete
attribute to an appropriate value for a particular type of phone number, in either of a full or local format.- Specified by:
setAutocomplete
in interfaceAutocompleteablePhone
- Parameters:
phone
- the telephone auto-fill variant, being full (including international prefix) or local (without international prefix)phoneType
- the type of phone to which the number belongs, for example "mobile" or "fax"
-
setPhoneSegmentAutocomplete
public void setPhoneSegmentAutocomplete(PhoneFormat phoneType, PhonePart phoneSegment)
Description copied from interface:AutocompleteableText
Set theautocomplete
attribute value relevant for a specified telephone number type and segment.- Specified by:
setPhoneSegmentAutocomplete
in interfaceAutocompleteableText
- Parameters:
phoneType
- the type of phone numberphoneSegment
- the phone number segment
-
setAddressAutocomplete
public void setAddressAutocomplete(AddressType addressType, AddressPart addressPart)
Description copied from interface:AutocompleteableText
Set values for theautocomplete
attribute applicable to an address or part thereof.- Specified by:
setAddressAutocomplete
in interfaceAutocompleteableText
- Parameters:
addressType
- the type of address being auto-filledaddressPart
- the address segment for the field
-
-