Interface HasValue<V>

    • Method Detail

      • setValue

        void setValue​(V value)
        Sets the value of this object. If the new value is not equal to getValue(), fires a value change event. May throw IllegalArgumentException if the value is not acceptable.

        Implementation note: the implementing class should document whether null values are accepted or not.

        Parameters:
        value - the new value
        Throws:
        IllegalArgumentException - if the value is invalid
      • getValue

        V getValue()
        Returns the current value of this object.

        Implementation note: the implementing class should document whether null values may be returned or not.

        Returns:
        the current value
      • addValueChangeListener

        Registration addValueChangeListener​(HasValue.ValueChangeListener<V> listener)
        Adds a value change listener. The listener is called when the value of this HasValue is changed either by the user or programmatically.
        Parameters:
        listener - the value change listener, not null
        Returns:
        a registration for the listener
      • getEmptyValue

        default V getEmptyValue()
        Returns the value that represents an empty value.

        By default HasValue is expected to support null as empty values. Specific implementations might not support this.

        Returns:
        empty value
        See Also:
        Binder#bind(HasValue, ValueProvider, Setter)
      • getOptionalValue

        default Optional<V> getOptionalValue()
        Returns the current value of this object, wrapped in an Optional.

        The Optional will be empty if the value is null or isEmpty() returns true.

        Returns:
        the current value, wrapped in an Optional
      • isEmpty

        default boolean isEmpty()
        Returns whether this HasValue is considered to be empty.

        By default this is an equality check between current value and empty value.

        Returns:
        true if considered empty; false if not
      • setRequiredIndicatorVisible

        void setRequiredIndicatorVisible​(boolean requiredIndicatorVisible)
        Sets the required indicator visible or not.

        If set visible, it is visually indicated in the user interface.

        Parameters:
        requiredIndicatorVisible - true to make the required indicator visible, false if not
      • isRequiredIndicatorVisible

        boolean isRequiredIndicatorVisible()
        Checks whether the required indicator is visible.
        Returns:
        true if visible, false if not
      • setReadOnly

        void setReadOnly​(boolean readOnly)
        Sets the read-only mode of this HasValue to given mode. The user can't change the value when in read-only mode.

        A HasValue with a visual component in read-only mode typically looks visually different to signal to the user that the value cannot be edited.

        Parameters:
        readOnly - a boolean value specifying whether the component is put read-only mode or not
      • isReadOnly

        boolean isReadOnly()
        Returns whether this HasValue is in read-only mode or not.
        Returns:
        false if the user can modify the value, true if not.
      • getDefaultValidator

        default Validator<V> getDefaultValidator()
        Returns a validator that checks the internal state of the HasValue. This should be overridden for components with internal value conversion or validation, e.g. when the user is providing a string that has to be parsed into a date. An invalid input from user will be exposed to a Binder and can be seen as a validation failure.
        Returns:
        internal state validator
        Since:
        8.1
        See Also:
        Binder.validate()