|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ValueModel
Describes models with a generic access to a single value that allow
to observe value changes. The value can be accessed using the
#getValue()
/#setValue(Object)
methods.
Observers can register instances of PropertyChangeListener
to be notified if the value changes.
If the value is read-only or write-only, an implementor may choose
to reject an operation using an UnsupportedOperationException
or may do nothing or perform an appropriate action, or may return an
appropriate value.
The listeners registered with this ValueModel using #addValueChangeListener will be invoked only with PropertyChangeEvents that have the name set to "value". In other words, the listeners won't get notified when a PropertyChangeEvent is fired that has a null object as the name to indicate an arbitrary set of the event source's properties have changed. This is the case if you use the PropertyChangeSupport, either directly or indirectly, to fire property changes with the property name "value" specified. This constraint ensures that all ValueModel implementors behave like the AbstractValueModel subclasses. In the rare case, where you want to notify a PropertyChangeListener even with PropertyChangeEvents that have no property name set, you can register the listener with #addPropertyChangeListener, not #addValueChangeListener.
AbstractValueModel minimizes the effort required to implement this interface. It uses the PropertyChangeSupport to fire PropertyChangeEvents, and it adds PropertyChangeListeners for the specific property name "value". This ensures that the constraint mentioned above is met.
Implementors are encouraged to provide non-null values for the PropertyChangeEvent's old and new values. However, both may be null.
AbstractValueModel
,
ValueHolder
,
PropertyAdapter
Method Summary | |
---|---|
void |
addValueChangeListener(PropertyChangeListener listener)
Registers the given PropertyChangeListener with this ValueModel. |
Object |
getValue()
Returns this model's value. |
void |
removeValueChangeListener(PropertyChangeListener listener)
Deregisters the given PropertyChangeListener from this ValueModel. |
void |
setValue(Object newValue)
Sets a new value and notifies any registered value listeners if the value has changed. |
Method Detail |
---|
Object getValue()
null
or any other appropriate value.
void setValue(Object newValue)
newValue
- the value to be setvoid addValueChangeListener(PropertyChangeListener listener)
To comply with the above specification implementors can use the PropertyChangeSupport's #addPropertyChangeListener method that accepts a property name, so that listeners will be invoked only if that specific property has changed.
listener
- the listener to be addedAbstractValueModel.addValueChangeListener(PropertyChangeListener)
void removeValueChangeListener(PropertyChangeListener listener)
listener
- the listener to be removed
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |