Class AbstractNumberField<C extends AbstractNumberField<C,T>,T extends Number>

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<C,T>
com.vaadin.flow.component.textfield.AbstractNumberField<C,T>
All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.BlurNotifier<C>, com.vaadin.flow.component.CompositionNotifier, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.Focusable<C>, com.vaadin.flow.component.FocusNotifier<C>, com.vaadin.flow.component.HasAriaLabel, com.vaadin.flow.component.HasElement, com.vaadin.flow.component.HasEnabled, com.vaadin.flow.component.HasHelper, com.vaadin.flow.component.HasLabel, com.vaadin.flow.component.HasPlaceholder, com.vaadin.flow.component.HasSize, com.vaadin.flow.component.HasStyle, com.vaadin.flow.component.HasValidation, com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<C,T>,T>, com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<C,T>,T>, com.vaadin.flow.component.InputNotifier, com.vaadin.flow.component.KeyNotifier, HasClearButton, HasPrefix, HasSuffix, HasTooltip, HasValidationProperties, InputField<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<C,T>,T>, HasAutocapitalize, HasAutocomplete, HasAutocorrect, com.vaadin.flow.data.binder.HasValidator<T>, com.vaadin.flow.data.value.HasValueChangeMode, Serializable
Direct Known Subclasses:
IntegerField, NumberField

public abstract class AbstractNumberField<C extends AbstractNumberField<C,T>,T extends Number> extends TextFieldBase<C,T>
Abstract base class for components based on vaadin-number-field element and its subclasses.
Author:
Vaadin Ltd.
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.HasValue

    com.vaadin.flow.component.HasValue.ValueChangeEvent<V extends Object>, com.vaadin.flow.component.HasValue.ValueChangeListener<E extends com.vaadin.flow.component.HasValue.ValueChangeEvent<?>>
  • Field Summary

    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 com.vaadin.flow.data.value.HasValueChangeMode

    DEFAULT_CHANGE_TIMEOUT
  • Constructor Summary

    Constructors
    Constructor
    Description
    AbstractNumberField(com.vaadin.flow.function.SerializableFunction<String,T> parser, com.vaadin.flow.function.SerializableFunction<T,String> formatter, double absoluteMin, double absoluteMax)
    Sets up the common logic for number fields.
  • Method Summary

    Modifier and Type
    Method
    Description
    com.vaadin.flow.shared.Registration
    addValidationStatusChangeListener(com.vaadin.flow.data.binder.ValidationStatusChangeListener<T> listener)
     
    com.vaadin.flow.data.binder.Validator<T>
     
    Returns the value that represents an empty value.
    Gets the internationalization object previously set for this component.
    protected double
    Gets the maximum value for this field.
    protected double
    Gets the minimum value for this field.
    protected double
    Gets the allowed number intervals for this field.
    Returns the current value of the number field.
    boolean
    Gets whether the buttons for increasing/decreasing the value are visible.
    protected void
    Sets the internationalization object for this component.
    void
    setManualValidation(boolean enabled)
     
    protected void
    setMax(double max)
    Sets the maximum value for this field.
    protected void
    setMin(double min)
    Sets the minimum value for this field.
    protected void
    setModelValue(T newModelValue, boolean fromClient)
     
    protected void
    setStep(double step)
    Sets the allowed number intervals for this field.
    void
    setStepButtonsVisible(boolean stepButtonsVisible)
    Sets the visibility of the buttons for increasing/decreasing the value accordingly to the default or specified step.
    void
    setValue(T value)
    Sets the value of this number field.
    void
    setValueChangeMode(com.vaadin.flow.data.value.ValueChangeMode valueChangeMode)
     
    protected void
    Validates the current value against the constraints and sets the invalid property and the errorMessage property based on the result.

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

    getSynchronizationRegistration, hasValidValue, setPresentationValue, setSynchronizedEvent

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

    addValueChangeListener, isEmpty, 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, onAttach, 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.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.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

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

    getPlaceholder, setPlaceholder

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

    getPrefixComponent, setPrefixComponent

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

    getTooltip, setTooltipText

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

    getErrorMessage, isInvalid, setErrorMessage, setInvalid

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

    addValueChangeListener, clear, getOptionalValue, isEmpty

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

    isReadOnly, 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
  • Constructor Details

    • AbstractNumberField

      public AbstractNumberField(com.vaadin.flow.function.SerializableFunction<String,T> parser, com.vaadin.flow.function.SerializableFunction<T,String> formatter, double absoluteMin, double absoluteMax)
      Sets up the common logic for number fields.
      Parameters:
      parser - function to parse the client-side value string into server-side value
      formatter - function to format the server-side value into client-side value string
      absoluteMin - the smallest possible value of the number type of the field, will be used as the default min value at server-side
      absoluteMax - the largest possible value of the number type of the field, will be used as the default max value at server-side
  • Method Details

    • setValueChangeMode

      public void setValueChangeMode(com.vaadin.flow.data.value.ValueChangeMode valueChangeMode)
      Specified by:
      setValueChangeMode in interface com.vaadin.flow.data.value.HasValueChangeMode
      Overrides:
      setValueChangeMode in class TextFieldBase<C extends AbstractNumberField<C,T>,T extends Number>
    • setStepButtonsVisible

      public void setStepButtonsVisible(boolean stepButtonsVisible)
      Sets the visibility of the buttons for increasing/decreasing the value accordingly to the default or specified step.
      Parameters:
      stepButtonsVisible - true if control buttons should be visible; false if those should be hidden
      See Also:
    • isStepButtonsVisible

      public boolean isStepButtonsVisible()
      Gets whether the buttons for increasing/decreasing the value are visible.
      Returns:
      true if buttons are visible, false otherwise
      See Also:
    • getEmptyValue

      public T getEmptyValue()
      Returns the value that represents an empty value.
      Specified by:
      getEmptyValue in interface com.vaadin.flow.component.HasValue<C extends AbstractNumberField<C,T>,T extends Number>
      Overrides:
      getEmptyValue in class com.vaadin.flow.component.AbstractField<C extends AbstractNumberField<C,T>,T extends Number>
    • setValue

      public void setValue(T value)
      Sets the value of this number field. If the new value is not equal to getValue(), fires a value change event.
      Specified by:
      setValue in interface com.vaadin.flow.component.HasValue<C extends AbstractNumberField<C,T>,T extends Number>
      Overrides:
      setValue in class com.vaadin.flow.component.AbstractField<C extends AbstractNumberField<C,T>,T extends Number>
      Parameters:
      value - the new value
    • setModelValue

      protected void setModelValue(T newModelValue, boolean fromClient)
      Overrides:
      setModelValue in class com.vaadin.flow.component.AbstractField<C extends AbstractNumberField<C,T>,T extends Number>
    • getValue

      public T getValue()
      Returns the current value of the number field. By default, the empty number field will return null .
      Specified by:
      getValue in interface com.vaadin.flow.component.HasValue<C extends AbstractNumberField<C,T>,T extends Number>
      Overrides:
      getValue in class com.vaadin.flow.component.AbstractField<C extends AbstractNumberField<C,T>,T extends Number>
      Returns:
      the current value.
    • setMin

      protected void setMin(double min)
      Sets the minimum value for this field.
      Parameters:
      min - the double value to set
    • getMinDouble

      protected double getMinDouble()
      Gets the minimum value for this field.
    • setMax

      protected void setMax(double max)
      Sets the maximum value for this field.
      Parameters:
      max - the double value to set
    • getMaxDouble

      protected double getMaxDouble()
      Gets the maximum value for this field.
    • setStep

      protected void setStep(double step)
      Sets the allowed number intervals for this field.
      Parameters:
      step - the double value to set
    • getStepDouble

      protected double getStepDouble()
      Gets the allowed number intervals for this field.
    • getDefaultValidator

      public com.vaadin.flow.data.binder.Validator<T> getDefaultValidator()
    • addValidationStatusChangeListener

      public com.vaadin.flow.shared.Registration addValidationStatusChangeListener(com.vaadin.flow.data.binder.ValidationStatusChangeListener<T> listener)
    • setManualValidation

      public void setManualValidation(boolean enabled)
    • validate

      protected void validate()
      Validates the current value against the constraints and sets the invalid property and the errorMessage property based on the result. If a custom error message is provided with HasValidationProperties.setErrorMessage(String), it is used. Otherwise, the error message defined in the i18n object is used.

      The method does nothing if the manual validation mode is enabled.

    • getI18n

      protected AbstractNumberFieldI18n getI18n()
      Gets the internationalization object previously set for this component.

      NOTE: Updating the instance that is returned from this method will not update the component if not set again using setI18n(AbstractNumberFieldI18n)

      Returns:
      the i18n object or null if no i18n object has been set
    • setI18n

      protected void setI18n(AbstractNumberFieldI18n i18n)
      Sets the internationalization object for this component.
      Parameters:
      i18n - the i18n object, not null