com.vaadin.flow.component.

Class AbstractCompositeField<C extends Component,S extends AbstractCompositeField<C,S,T>,T>

    • Constructor Detail

      • AbstractCompositeField

        public AbstractCompositeField(T defaultValue)

        Creates a new field. The provided default value is used by getEmptyValue() and is also used as the initial value of this instance.

        Parameters:

        defaultValue - the default value

    • Method Detail

      • setValue

        public void setValue(T value)

        Description copied from interface: HasValue

        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, and override HasValue.getEmptyValue() if the empty value is not null.

        Specified by:

        setValue in interface HasValue<AbstractField.ComponentValueChangeEvent<S extends AbstractCompositeField<C,S,T>,T>,T>

        Parameters:

        value - the new value

      • setPresentationValue

        protected abstract void setPresentationValue(T newPresentationValue)

        Updates the presentation of this field to display the provided value. Subclasses should override this method to show the value to the user. This is typically done by setting an element property or by applying changes to child components.

        If setModelValue(Object, boolean) is called from within this method, then value of the last invocation will be used as the model value instead of the value passed to this method. In this case setPresentationValue(Object) will not be called again. Changing the provided value might be useful if the provided value is sanitized.

        See AbstractField for an overall description on the difference between model values and presentation values.

        Parameters:

        newPresentationValue - the new value to show

      • setModelValue

        protected void setModelValue(T newModelValue,
                                     boolean fromClient)

        Updates the model value if the value has actually changed. Subclasses should call this method whenever the user has changed the value. A value change event is fired if the new value is different from the previous value according to valueEquals(Object, Object).

        If the value is from the client-side and this field is in readonly mode, then the new model value will be ignored. setPresentationValue(Object) will be called with the previous model value so that the representation shown to the user can be reverted.

        See AbstractField for an overall description on the difference between model values and presentation values.

        Parameters:

        newModelValue - the new internal value to use

        fromClient - true if the new value originates from the client; otherwise false

      • valueEquals

        protected boolean valueEquals(T value1,
                                      T value2)

        Compares to value instances to each other to determine whether they are equal. Equality is used to determine whether to update internal state and fire an event when setValue(Object) or setModelValue(Object, boolean) is called. Subclasses can override this method to define an alternative comparison method instead of Object.equals(Object).

        Parameters:

        value1 - the first instance

        value2 - the second instance

        Returns:

        true if the instances are equal; otherwise false