Interface ValueModel<V>

Type Parameters:
V - The type of value contained in the model.
All Superinterfaces:
Model, com.globalmentor.model.MutableValued<V>, com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, com.globalmentor.model.Valued<V>
All Known Subinterfaces:
ActionValueControl<V>, CardControl, DialogFrame<V>, ListSelectControl<V>, ListSelectModel<V>, OptionDialogFrame<O>, SelectControl<V>, SelectModel<V>, TreeNodeModel<V>, ValueControl<V>
All Known Implementing Classes:
AbstractActionValueControl, AbstractBooleanSelectActionControl, AbstractCardPanel, AbstractContainerValueControl, AbstractDialogFrame, AbstractEditValueControl, AbstractLayoutValueControl, AbstractListSelectContainerControl, AbstractListSelectControl, AbstractListSelectTableModel, AbstractOptionDialogFrame, AbstractSelectActionValueControl, AbstractTextControl, AbstractValueControl, AbstractValueLayout, AbstractValueModel, BooleanSelectButton, BooleanSelectLink, BooleanSelectToolButton, BooleanValueControlSelectControl, CalendarControl, CalendarDialogFrame, CardLayout, CardPanel, CardTabControl, CheckControl, DateTimeControl, DateTimeFieldsControl, DefaultDialogFrame, DefaultListSelectModel, DefaultTreeNodeModel, DefaultValueModel, DummyTreeNodeModel, DynamicTreeNodeModel, ImageBooleanSelectActionControl, ListControl, MessageOptionDialogFrame, NotificationOptionDialogFrame, ResourceImportControl, SequenceCardPanel, SliderControl, SpinnerControl, TabbedPanel, TabContainerControl, TabControl, TabLayout, Table.DefaultCellValueModel, TaskStateSelectLink, TextControl, TogglePrototype, ValuePrototype, ValueSelectButton, ValueSelectLink

public interface ValueModel<V> extends Model, com.globalmentor.model.MutableValued<V>
A model for user input of a value.
Author:
Garret Wilson
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The validator bound property.
    static final String
    The value bound property.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Clears the value by setting the value to null, which may be invalid according to any installed validators.
     
     
     
     
    boolean
    Determines whether the value of this model is valid.
    void
    Resets the value to a default value, which may be invalid according to any installed validators.
    void
    setValidator(Validator<V> newValidator)
    Sets the validator.
    void
    setValue(V newValue)
    Sets the new value.
    void
    Validates the value of this model, throwing an exception if the model is not valid.

    Methods inherited from interface com.globalmentor.beans.PropertyBindable

    addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, hasPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener

    Methods inherited from interface com.globalmentor.beans.PropertyConstrainable

    addVetoableChangeListener, addVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, hasVetoableChangeListeners, removeVetoableChangeListener, removeVetoableChangeListener
  • Field Details

    • VALIDATOR_PROPERTY

      static final String VALIDATOR_PROPERTY
      The validator bound property.
    • VALUE_PROPERTY

      static final String VALUE_PROPERTY
      The value bound property.
  • Method Details

    • getDefaultValue

      V getDefaultValue()
      Returns:
      The default value.
    • getValue

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

      void setValue(V newValue) throws PropertyVetoException
      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>
      Parameters:
      newValue - The new value.
      Throws:
      PropertyVetoException - if the provided value is not valid or the change has otherwise been vetoed.
      See Also:
    • clearValue

      void clearValue()
      Clears the value by setting the value to null, which may be invalid according to any installed validators. No validation occurs.
      See Also:
    • resetValue

      void resetValue()
      Resets the value to a default value, which may be invalid according to any installed validators. No validation occurs.
      See Also:
    • getValidator

      Validator<V> getValidator()
      Returns:
      The validator for this model, or null if no validator is installed.
    • setValidator

      void setValidator(Validator<V> newValidator)
      Sets the validator. This is a bound property
      Parameters:
      newValidator - The validator for this model, or null if no validator should be used.
      See Also:
    • isValidValue

      boolean isValidValue()
      Determines whether the value of this model is valid.
      Returns:
      Whether the value of this model is valid.
    • validateValue

      void validateValue() throws ValidationException
      Validates the value of this model, throwing an exception if the model is not valid.
      Throws:
      ValidationException - if the value of this model is not valid.
    • getValueClass

      Class<V> getValueClass()
      Returns:
      The class representing the type of value this model can hold.