Class CustomField<T>
- java.lang.Object
-
- com.vaadin.flow.component.Component
-
- com.vaadin.flow.component.AbstractField<CustomField<T>,T>
-
- com.vaadin.flow.component.customfield.CustomField<T>
-
- Type Parameters:
T- field value type
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier,com.vaadin.flow.component.BlurNotifier<CustomField>,com.vaadin.flow.component.DetachNotifier,com.vaadin.flow.component.Focusable<CustomField>,com.vaadin.flow.component.FocusNotifier<CustomField>,com.vaadin.flow.component.HasElement,com.vaadin.flow.component.HasEnabled,com.vaadin.flow.component.HasHelper,com.vaadin.flow.component.HasLabel,com.vaadin.flow.component.HasSize,com.vaadin.flow.component.HasStyle,com.vaadin.flow.component.HasTheme,com.vaadin.flow.component.HasValidation,com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<CustomField<T>,T>,T>,com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<CustomField<T>,T>,T>,HasTooltip,Serializable
@Tag("vaadin-custom-field") @NpmPackage(value="@vaadin/polymer-legacy-adapter",version="23.6.1") @NpmPackage(value="@vaadin/custom-field",version="23.6.1") @NpmPackage(value="@vaadin/vaadin-custom-field",version="23.6.1") @JsModule("@vaadin/polymer-legacy-adapter/style-modules.js") @JsModule("@vaadin/custom-field/src/vaadin-custom-field.js") public abstract class CustomField<T> extends com.vaadin.flow.component.AbstractField<CustomField<T>,T> implements com.vaadin.flow.component.HasSize, com.vaadin.flow.component.HasValidation, com.vaadin.flow.component.Focusable<CustomField>, com.vaadin.flow.component.HasHelper, com.vaadin.flow.component.HasLabel, com.vaadin.flow.component.HasTheme, com.vaadin.flow.component.HasStyle, HasTooltipAHasValuewhose UI content can be constructed by the user, enabling the creation of e.g. form fields by composing Vaadin components. Customization of both the visual presentation and the logic of the field is possible.Subclasses must implement
generateModelValue()and AbstractFieldsetPresentationValue(Object).- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.vaadin.flow.component.AbstractField
com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<C extends com.vaadin.flow.component.Component,V extends Object>
-
Nested classes/interfaces inherited from interface com.vaadin.flow.component.BlurNotifier
com.vaadin.flow.component.BlurNotifier.BlurEvent<C extends com.vaadin.flow.component.Component>
-
Nested classes/interfaces inherited from interface com.vaadin.flow.component.FocusNotifier
com.vaadin.flow.component.FocusNotifier.FocusEvent<C extends com.vaadin.flow.component.Component>
-
Nested classes/interfaces inherited from interface com.vaadin.flow.component.HasValue
com.vaadin.flow.component.HasValue.ValueChangeEvent<V extends Object>, com.vaadin.flow.component.HasValue.ValueChangeListener<E extends com.vaadin.flow.component.HasValue.ValueChangeEvent<?>>
-
-
Constructor Summary
Constructors Constructor Description CustomField()Default constructor.CustomField(T defaultValue)Constructs a new custom field.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidadd(com.vaadin.flow.component.Component... components)Adds the given components as children of this component.voidaddThemeVariants(CustomFieldVariant... variants)Adds theme variants to the component.protected abstract TgenerateModelValue()This method should return the value of the field, based on value of the internal fields.StringgetErrorMessage()StringgetLabel()Gets the label for the field.booleanisInvalid()This property is set to true when the control value is invalid.protected voidonAttach(com.vaadin.flow.component.AttachEvent attachEvent)protected voidremove(com.vaadin.flow.component.Component... components)Removes the given child components from this component.voidremoveThemeVariants(CustomFieldVariant... variants)Removes theme variants from the component.voidsetErrorMessage(String errorMessage)voidsetInvalid(boolean invalid)This property is set to true when the control value is invalid.voidsetLabel(String label)Sets the label for the field.protected abstract voidsetPresentationValue(T newPresentationValue)This method should be implemented to set the value of the fields contained in this custom field according to the value of the parameter.protected voidupdateValue()Regenerates the value by callinggenerateModelValue()and updates the model.-
Methods inherited from class com.vaadin.flow.component.AbstractField
addValueChangeListener, getEmptyValue, getValue, isEmpty, setModelValue, setValue, valueEquals
-
Methods inherited from class com.vaadin.flow.component.Component
addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onDetach, onEnabledStateChanged, scrollIntoView, set, setElement, setId, setVisible
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.vaadin.flow.component.Focusable
addFocusShortcut, blur, focus, getTabIndex, setTabIndex
-
Methods inherited from interface com.vaadin.flow.component.HasHelper
getHelperComponent, getHelperText, setHelperComponent, setHelperText
-
Methods inherited from interface com.vaadin.flow.component.HasSize
getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFull
-
Methods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
-
Methods inherited from interface com.vaadin.flow.component.HasTheme
addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeName
-
Methods inherited from interface com.vaadin.flow.component.shared.HasTooltip
getTooltip, setTooltipText
-
-
-
-
Constructor Detail
-
CustomField
public CustomField()
Default constructor.
-
CustomField
public CustomField(T defaultValue)
Constructs a new custom field.- Parameters:
defaultValue- The initial value for the field. Will also be used byAbstractField.getEmptyValue().- See Also:
AbstractField(Object)
-
-
Method Detail
-
onAttach
protected void onAttach(com.vaadin.flow.component.AttachEvent attachEvent)
- Overrides:
onAttachin classcom.vaadin.flow.component.Component
-
generateModelValue
protected abstract T generateModelValue()
This method should return the value of the field, based on value of the internal fields.- Returns:
- new value of the field.
-
setPresentationValue
protected abstract void setPresentationValue(T newPresentationValue)
This method should be implemented to set the value of the fields contained in this custom field according to the value of the parameter. It can also be use to show the value to the user in some way, like placing it in an element contained on the field.- Specified by:
setPresentationValuein classcom.vaadin.flow.component.AbstractField<CustomField<T>,T>- Parameters:
newPresentationValue- The new presentation value.
-
updateValue
protected void updateValue()
Regenerates the value by callinggenerateModelValue()and updates the model. If the value is different than the current one, aHasValue.ValueChangeEventwill be generated withHasValue.ValueChangeEvent.isFromClient()set totrueThis method is called when the webcomponent generates a changed event, typically in response to a change made by the user in one of the contained fields.
Custom implementations of this method must call
AbstractField.setModelValue(Object, boolean)with the updated model value. Subclasses can call this method when the model value needs to be regenerated and updated.
-
add
protected void add(com.vaadin.flow.component.Component... components)
Adds the given components as children of this component.- Parameters:
components- the components to add
-
remove
protected void remove(com.vaadin.flow.component.Component... components)
Removes the given child components from this component.- Parameters:
components- the components to remove- Throws:
IllegalArgumentException- if any of the components is not a child of this component
-
isInvalid
public boolean isInvalid()
This property is set to true when the control value is invalid.
- Specified by:
isInvalidin interfacecom.vaadin.flow.component.HasValidation- Returns:
- the
invalidproperty from the webcomponent
-
setInvalid
public void setInvalid(boolean invalid)
This property is set to true when the control value is invalid.
- Specified by:
setInvalidin interfacecom.vaadin.flow.component.HasValidation- Parameters:
invalid- the boolean value to set
-
setErrorMessage
public void setErrorMessage(String errorMessage)
- Specified by:
setErrorMessagein interfacecom.vaadin.flow.component.HasValidation
-
getErrorMessage
public String getErrorMessage()
- Specified by:
getErrorMessagein interfacecom.vaadin.flow.component.HasValidation
-
getLabel
public String getLabel()
Gets the label for the field.- Specified by:
getLabelin interfacecom.vaadin.flow.component.HasLabel- Returns:
- the
labelproperty from the webcomponent
-
setLabel
public void setLabel(String label)
Sets the label for the field.- Specified by:
setLabelin interfacecom.vaadin.flow.component.HasLabel- Parameters:
label- value for thelabelproperty in the webcomponent
-
addThemeVariants
public void addThemeVariants(CustomFieldVariant... variants)
Adds theme variants to the component.- Parameters:
variants- theme variants to add
-
removeThemeVariants
public void removeThemeVariants(CustomFieldVariant... variants)
Removes theme variants from the component.- Parameters:
variants- theme variants to remove
-
-