Class TypedTextField<V>

java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.AbstractField<C,T>
com.vaadin.flow.component.AbstractSinglePropertyField<TComponent,TValue>
com.vaadin.flow.component.textfield.TextFieldBase<com.vaadin.flow.component.textfield.TextField,String>
com.vaadin.flow.component.textfield.TextField
io.jmix.flowui.component.textfield.TypedTextField<V>
All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.BlurNotifier<com.vaadin.flow.component.textfield.TextField>, com.vaadin.flow.component.CompositionNotifier, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.Focusable<com.vaadin.flow.component.textfield.TextField>, com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.textfield.TextField>, 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<com.vaadin.flow.component.textfield.TextField,String>,String>, com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>,String>, com.vaadin.flow.component.InputNotifier, com.vaadin.flow.component.KeyNotifier, com.vaadin.flow.component.shared.HasAllowedCharPattern, com.vaadin.flow.component.shared.HasClearButton, com.vaadin.flow.component.shared.HasClientValidation, com.vaadin.flow.component.shared.HasPrefix, com.vaadin.flow.component.shared.HasSuffix, com.vaadin.flow.component.shared.HasThemeVariant<com.vaadin.flow.component.textfield.TextFieldVariant>, com.vaadin.flow.component.shared.HasTooltip, com.vaadin.flow.component.shared.HasValidationProperties, com.vaadin.flow.component.textfield.HasAutocapitalize, com.vaadin.flow.component.textfield.HasAutocomplete, com.vaadin.flow.component.textfield.HasAutocorrect, com.vaadin.flow.component.textfield.HasPrefixAndSuffix, com.vaadin.flow.data.binder.HasValidator<String>, com.vaadin.flow.data.value.HasValueChangeMode, HasRequired, SupportsDatatype<V>, SupportsStatusChangeHandler<TypedTextField<V>>, SupportsTypedValue<TypedTextField<V>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>,V,String>, SupportsValidation<V>, SupportsValueSource<V>, HasTitle, Serializable, org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware

public class TypedTextField<V> extends com.vaadin.flow.component.textfield.TextField implements SupportsValidation<V>, SupportsStatusChangeHandler<TypedTextField<V>>, SupportsDatatype<V>, SupportsTypedValue<TypedTextField<V>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>,V,String>, SupportsValueSource<V>, HasRequired, HasTitle, org.springframework.context.ApplicationContextAware, org.springframework.beans.factory.InitializingBean
See Also:
  • 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.shared.HasClientValidation

    com.vaadin.flow.component.shared.HasClientValidation.ClientValidatedEvent

    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<?>>

    Nested classes/interfaces inherited from interface io.jmix.flowui.component.SupportsStatusChangeHandler

    SupportsStatusChangeHandler.StatusContext<C extends com.vaadin.flow.component.Component>

    Nested classes/interfaces inherited from interface io.jmix.flowui.component.SupportsTypedValue

    SupportsTypedValue.TypedValueChangeEvent<C extends com.vaadin.flow.component.Component,V>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected org.springframework.context.ApplicationContext
     
     
    protected V
     
    protected boolean
    Component manually handles Vaadin value change event: when programmatically sets value (see setValueInternal(Object, String, boolean) ) and client-side sets value (see onValueChange(ComponentValueChangeEvent)).

    Fields inherited from interface com.vaadin.flow.component.textfield.HasAutocapitalize

    AUTOCAPITALIZE_ATTRIBUTE

    Fields inherited from interface com.vaadin.flow.component.textfield.HasAutocomplete

    AUTOCOMPLETE_ATTRIBUTE

    Fields inherited from interface com.vaadin.flow.component.textfield.HasAutocorrect

    AUTOCORRECT_ATTRIBUTE

    Fields inherited from interface io.jmix.flowui.component.HasRequired

    PROPERTY_REQUIRED

    Fields inherited from interface com.vaadin.flow.data.value.HasValueChangeMode

    DEFAULT_CHANGE_TIMEOUT

    Fields inherited from interface io.jmix.flowui.component.SupportsValidation

    PROPERTY_ERROR_MESSAGE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    com.vaadin.flow.shared.Registration
    addTypedValueChangeListener(com.vaadin.flow.component.ComponentEventListener<SupportsTypedValue.TypedValueChangeEvent<TypedTextField<V>,V>> listener)
     
    com.vaadin.flow.shared.Registration
    addValidator(Validator<? super V> validator)
     
    com.vaadin.flow.shared.Registration
    addValueChangeListener(com.vaadin.flow.component.HasValue.ValueChangeListener<? super com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>> listener)
     
    void
     
    protected void
     
    protected V
    convertToModel(String presentationValue)
     
    protected String
     
     
    void
     
    protected boolean
    fieldValueEquals(V value, V oldValue)
     
    protected void
    fireAllValueChangeEvents(V value, V oldValue, boolean isFromClient)
     
    protected void
    fireTextFieldValueChangeEvent(V oldValue, boolean isFromClient)
     
    protected void
    fireTypedValueChangeEvent(V value, V oldValue, boolean isFromClient)
     
     
     
     
     
     
    protected void
     
    boolean
     
    protected void
    onValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TypedTextField<V>,String> event)
     
    void
    setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
     
    void
    setDatatype(Datatype<V> datatype)
     
    void
    setErrorMessage(String errorMessage)
     
    void
    setInvalid(boolean invalid)
    Sets invalid state to the field considering result of field validation.
    void
    setMaxLength(int maxLength)
     
    void
    setMinLength(int minLength)
     
    void
    setPattern(String pattern)
     
    void
    setRequired(boolean required)
     
    void
    setRequiredIndicatorVisible(boolean requiredIndicatorVisible)
     
    void
    setRequiredMessage(String requiredMessage)
     
    void
    Sets a callback to be used to handle component status changes, e.g.
    void
     
    void
     
    protected void
    setValueInternal(V modelValue, String presentationValue, boolean fromClient)
     
    void
     
    protected void
     

    Methods inherited from class com.vaadin.flow.component.textfield.TextField

    addValidationStatusChangeListener, getDefaultValidator, getEmptyValue, getMaxLength, getMinLength, getPattern, getValue, onAttach

    Methods inherited from class com.vaadin.flow.component.textfield.TextFieldBase

    addToInput, addToPrefix, addToSuffix, getPlaceholder, getTitle, getValueChangeMode, getValueChangeTimeout, isAutofocus, isAutoselect, isRequired, setAutofocus, setAutoselect, setPlaceholder, setTitle, setValueChangeMode, setValueChangeTimeout

    Methods inherited from class com.vaadin.flow.component.AbstractSinglePropertyField

    getSynchronizationRegistration, hasValidValue, setPresentationValue, setSynchronizedEvent

    Methods inherited from class com.vaadin.flow.component.AbstractField

    isEmpty, setModelValue, 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, removeFromParent, scrollIntoView, 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.AttachNotifier

    addAttachListener

    Methods inherited from interface com.vaadin.flow.component.BlurNotifier

    addBlurListener

    Methods inherited from interface com.vaadin.flow.component.CompositionNotifier

    addCompositionEndListener, addCompositionStartListener, addCompositionUpdateListener

    Methods inherited from interface com.vaadin.flow.component.DetachNotifier

    addDetachListener

    Methods inherited from interface com.vaadin.flow.component.Focusable

    addFocusShortcut, blur, focus, getTabIndex, setTabIndex

    Methods inherited from interface com.vaadin.flow.component.FocusNotifier

    addFocusListener

    Methods inherited from interface com.vaadin.flow.component.shared.HasAllowedCharPattern

    getAllowedCharPattern, setAllowedCharPattern

    Methods inherited from interface com.vaadin.flow.component.textfield.HasAutocapitalize

    getAutocapitalize, setAutocapitalize

    Methods inherited from interface com.vaadin.flow.component.textfield.HasAutocomplete

    getAutocomplete, setAutocomplete

    Methods inherited from interface com.vaadin.flow.component.textfield.HasAutocorrect

    isAutocorrect, setAutocorrect

    Methods inherited from interface com.vaadin.flow.component.shared.HasClearButton

    isClearButtonVisible, setClearButtonVisible

    Methods inherited from interface com.vaadin.flow.component.shared.HasClientValidation

    addClientValidatedEventListener

    Methods inherited from interface com.vaadin.flow.component.HasElement

    getElement

    Methods inherited from interface com.vaadin.flow.component.HasEnabled

    isEnabled, setEnabled

    Methods inherited from interface com.vaadin.flow.component.HasHelper

    getHelperComponent, getHelperText, setHelperComponent, setHelperText

    Methods inherited from interface com.vaadin.flow.component.HasLabel

    getLabel, setLabel

    Methods inherited from interface com.vaadin.flow.component.shared.HasPrefix

    getPrefixComponent, setPrefixComponent

    Methods inherited from interface io.jmix.flowui.component.HasRequired

    isRequired

    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.shared.HasSuffix

    getSuffixComponent, setSuffixComponent

    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.HasThemeVariant

    addThemeVariants, removeThemeVariants

    Methods inherited from interface io.jmix.flowui.kit.component.HasTitle

    getTitle, setTitle

    Methods inherited from interface com.vaadin.flow.component.shared.HasTooltip

    getTooltip, setTooltipText

    Methods inherited from interface com.vaadin.flow.component.HasValue

    clear, getEmptyValue, getOptionalValue, getValue, isEmpty

    Methods inherited from interface com.vaadin.flow.component.HasValueAndElement

    isReadOnly, isRequiredIndicatorVisible, setReadOnly

    Methods inherited from interface com.vaadin.flow.component.InputNotifier

    addInputListener

    Methods inherited from interface com.vaadin.flow.component.KeyNotifier

    addKeyDownListener, addKeyDownListener, addKeyPressListener, addKeyPressListener, addKeyUpListener, addKeyUpListener
  • Field Details

    • applicationContext

      protected org.springframework.context.ApplicationContext applicationContext
    • fieldDelegate

      protected TextInputFieldDelegate<TypedTextField<V>,V> fieldDelegate
    • internalValue

      protected V internalValue
    • isVaadinValueChangeEnabled

      protected boolean isVaadinValueChangeEnabled
      Component manually handles Vaadin value change event: when programmatically sets value (see setValueInternal(Object, String, boolean) ) and client-side sets value (see onValueChange(ComponentValueChangeEvent)). Therefore, any Vaadin value change listener has a wrapper and disabled for handling event.
  • Constructor Details

    • TypedTextField

      public TypedTextField()
  • Method Details

    • setApplicationContext

      public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware
    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • initComponent

      protected void initComponent()
    • createFieldDelegate

      protected TextInputFieldDelegate<TypedTextField<V>,V> createFieldDelegate()
    • getDatatype

      @Nullable public Datatype<V> getDatatype()
      Specified by:
      getDatatype in interface SupportsDatatype<V>
    • setDatatype

      public void setDatatype(@Nullable Datatype<V> datatype)
      Specified by:
      setDatatype in interface SupportsDatatype<V>
    • addValidator

      public com.vaadin.flow.shared.Registration addValidator(Validator<? super V> validator)
      Specified by:
      addValidator in interface SupportsValidation<V>
    • validate

      protected void validate()
      Overrides:
      validate in class com.vaadin.flow.component.textfield.TextField
    • executeValidators

      public void executeValidators() throws ValidationException
      Specified by:
      executeValidators in interface SupportsValidation<V>
      Throws:
      ValidationException
    • isInvalid

      public boolean isInvalid()
      Specified by:
      isInvalid in interface com.vaadin.flow.component.HasValidation
      Specified by:
      isInvalid in interface com.vaadin.flow.component.shared.HasValidationProperties
    • setInvalid

      public void setInvalid(boolean invalid)
      Description copied from interface: SupportsValidation
      Sets invalid state to the field considering result of field validation.
      • Invalid - false and validation passed - false = field is invalid
      • Invalid - false and validation passed - true = field is valid
      • Invalid - true and validation passed - false = field is invalid
      • Invalid - true and validation passed - true = field is invalid
      Specified by:
      setInvalid in interface com.vaadin.flow.component.HasValidation
      Specified by:
      setInvalid in interface com.vaadin.flow.component.shared.HasValidationProperties
      Specified by:
      setInvalid in interface SupportsValidation<V>
      Parameters:
      invalid - whether field should be invalid
    • getErrorMessage

      @Nullable public String getErrorMessage()
      Specified by:
      getErrorMessage in interface com.vaadin.flow.component.HasValidation
      Specified by:
      getErrorMessage in interface com.vaadin.flow.component.shared.HasValidationProperties
      Specified by:
      getErrorMessage in interface SupportsValidation<V>
    • setErrorMessage

      public void setErrorMessage(@Nullable String errorMessage)
      Specified by:
      setErrorMessage in interface com.vaadin.flow.component.HasValidation
      Specified by:
      setErrorMessage in interface com.vaadin.flow.component.shared.HasValidationProperties
      Specified by:
      setErrorMessage in interface SupportsValidation<V>
    • setStatusChangeHandler

      public void setStatusChangeHandler(@Nullable Consumer<SupportsStatusChangeHandler.StatusContext<TypedTextField<V>>> handler)
      Description copied from interface: SupportsStatusChangeHandler
      Sets a callback to be used to handle component status changes, e.g. validation messages set by HasValidation.setErrorMessage(String).
      Specified by:
      setStatusChangeHandler in interface SupportsStatusChangeHandler<V>
      Parameters:
      handler - a handler to set
    • getValueSource

      @Nullable public ValueSource<V> getValueSource()
      Specified by:
      getValueSource in interface SupportsValueSource<V>
    • setValueSource

      public void setValueSource(@Nullable ValueSource<V> valueSource)
      Specified by:
      setValueSource in interface SupportsValueSource<V>
    • getTypedValue

      @Nullable public V getTypedValue()
      Specified by:
      getTypedValue in interface SupportsTypedValue<TypedTextField<V>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>,V,String>
    • setTypedValue

      public void setTypedValue(@Nullable V value)
      Specified by:
      setTypedValue in interface SupportsTypedValue<TypedTextField<V>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>,V,String>
    • setValue

      public void setValue(String value)
      Specified by:
      setValue in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>,String>
      Overrides:
      setValue in class com.vaadin.flow.component.textfield.TextField
    • setValueInternal

      protected void setValueInternal(@Nullable V modelValue, String presentationValue, boolean fromClient)
    • addValueChangeListener

      public com.vaadin.flow.shared.Registration addValueChangeListener(com.vaadin.flow.component.HasValue.ValueChangeListener<? super com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>> listener)
      Specified by:
      addValueChangeListener in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>,String>
      Overrides:
      addValueChangeListener in class com.vaadin.flow.component.AbstractField<com.vaadin.flow.component.textfield.TextField,String>
    • addTypedValueChangeListener

      public com.vaadin.flow.shared.Registration addTypedValueChangeListener(com.vaadin.flow.component.ComponentEventListener<SupportsTypedValue.TypedValueChangeEvent<TypedTextField<V>,V>> listener)
      Specified by:
      addTypedValueChangeListener in interface SupportsTypedValue<TypedTextField<V>,com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>,V,String>
    • getRequiredMessage

      @Nullable public String getRequiredMessage()
      Specified by:
      getRequiredMessage in interface HasRequired
    • setRequiredMessage

      public void setRequiredMessage(@Nullable String requiredMessage)
      Specified by:
      setRequiredMessage in interface HasRequired
    • setMaxLength

      public void setMaxLength(int maxLength)
      Overrides:
      setMaxLength in class com.vaadin.flow.component.textfield.TextField
    • setMinLength

      public void setMinLength(int minLength)
      Overrides:
      setMinLength in class com.vaadin.flow.component.textfield.TextField
    • setPattern

      public void setPattern(String pattern)
      Overrides:
      setPattern in class com.vaadin.flow.component.textfield.TextField
    • setRequired

      public void setRequired(boolean required)
      Specified by:
      setRequired in interface HasRequired
      Overrides:
      setRequired in class com.vaadin.flow.component.textfield.TextField
    • setRequiredIndicatorVisible

      public void setRequiredIndicatorVisible(boolean requiredIndicatorVisible)
      Specified by:
      setRequiredIndicatorVisible in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>,String>
      Specified by:
      setRequiredIndicatorVisible in interface com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.textfield.TextField,String>,String>
      Overrides:
      setRequiredIndicatorVisible in class com.vaadin.flow.component.textfield.TextField
    • fireAllValueChangeEvents

      protected void fireAllValueChangeEvents(@Nullable V value, @Nullable V oldValue, boolean isFromClient)
    • fireTypedValueChangeEvent

      protected void fireTypedValueChangeEvent(@Nullable V value, @Nullable V oldValue, boolean isFromClient)
    • fireTextFieldValueChangeEvent

      protected void fireTextFieldValueChangeEvent(@Nullable V oldValue, boolean isFromClient)
    • attachValueChangeListener

      protected void attachValueChangeListener()
    • onValueChange

      protected void onValueChange(com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<TypedTextField<V>,String> event)
    • convertToModel

      @Nullable protected V convertToModel(String presentationValue) throws ConversionException
      Throws:
      ConversionException
    • convertToPresentation

      protected String convertToPresentation(@Nullable Object modelValue)
    • fieldValueEquals

      protected boolean fieldValueEquals(@Nullable V value, @Nullable V oldValue)