Class AbstractLayoutValueControl<V>

    • Constructor Detail

      • AbstractLayoutValueControl

        public AbstractLayoutValueControl​(Layout<?> layout,
                                          ValueModel<V> valueModel)
        Layout and value model constructor.
        Parameters:
        layout - The layout definition for the layout component.
        valueModel - The component value model.
        Throws:
        java.lang.NullPointerException - if the given layout and/or value model is null.
    • Method Detail

      • getValueModel

        protected ValueModel<V> getValueModel()
        Returns:
        The value model used by this component.
      • firePropertyChange

        protected <VV> void firePropertyChange​(java.lang.String propertyName,
                                               VV oldValue,
                                               VV newValue)

        This version first updates the valid status if the value is reported as being changed.

        Overrides:
        firePropertyChange in class com.globalmentor.beans.BoundPropertyObject
      • getValue

        public V getValue()
        Specified by:
        getValue in interface com.globalmentor.model.Valued<V>
        Specified by:
        getValue in interface ValuedComponent<V>
        Specified by:
        getValue in interface ValueModel<V>
        Returns:
        The input value, or null if there is no input value.
      • setValue

        public void setValue​(V newValue)
                      throws java.beans.PropertyVetoException
        Description copied from interface: ValueModel
        Sets the new value. This is a bound property that only fires a change event when the new value is different via the equals() method. If a validator is installed, the value will first be validated before the current value is changed. Validation always occurs if a validator is installed, even if the value is not changing. If the value change is vetoed by the installed validator, the validation exception will be accessible via Throwable.getCause().
        Specified by:
        setValue in interface com.globalmentor.model.MutableValued<V>
        Specified by:
        setValue in interface ValuedComponent<V>
        Specified by:
        setValue in interface ValueModel<V>
        Parameters:
        newValue - The new value.
        Throws:
        java.beans.PropertyVetoException - if the provided value is not valid or the change has otherwise been vetoed.
        See Also:
        ValueModel.getValidator(), ValueModel.VALUE_PROPERTY
      • clearValue

        public void clearValue()
        Description copied from interface: ValueModel
        Clears the value by setting the value to null, which may be invalid according to any installed validators. No validation occurs.
        Specified by:
        clearValue in interface ValueModel<V>
        See Also:
        ValueModel.VALUE_PROPERTY
      • resetValue

        public void resetValue()
        Description copied from interface: ValueModel
        Resets the value to a default value, which may be invalid according to any installed validators. No validation occurs.
        Specified by:
        resetValue in interface ValueModel<V>
        See Also:
        ValueModel.VALUE_PROPERTY
      • getValidator

        public Validator<V> getValidator()
        Specified by:
        getValidator in interface ValueModel<V>
        Returns:
        The validator for this model, or null if no validator is installed.
      • isValidValue

        public boolean isValidValue()
        Description copied from interface: ValueModel
        Determines whether the value of this model is valid.
        Specified by:
        isValidValue in interface ValueModel<V>
        Returns:
        Whether the value of this model is valid.