Class PropertyHelper<S,V>
java.lang.Object
org.jdesktop.beansbinding.Property<S,V>
org.jdesktop.beansbinding.PropertyHelper<S,V>
- Type Parameters:
S
- the type of source object that thisProperty
operates onV
- the type of value that thisProperty
represents
- Direct Known Subclasses:
BeanProperty, ELProperty
An abstract subclass of
Property
that helps with the management of
PropertyStateListeners
by implementing the methods for adding, removing,
and getting listeners. PropertyHelper
can be constructed
to manage listeners for multiple source objects, or to ignore the source
object argument when dealing with listeners and associate them directly with
the PropertyHelper
instance itself. This makes PropertyHelper
useful as a base for both property types described in the documentation for
Property
.
PropertyHelper
also provides, by way of the protected methods
listeningStarted(S)
and listeningStopped(S)
a hook for subclasses
to know when it's time to start tracking changes to a particular source object.
-
Constructor Summary
ConstructorsConstructorDescriptionCreate aPropertyHelper
that manages listeners for multiple source objects.PropertyHelper
(boolean ignoresSource) Create aPropertyHelper
, specifying whether it manages listeners for multiple source objects, or ignores the source object argument when dealing with listeners -
Method Summary
Modifier and TypeMethodDescriptionfinal void
addPropertyStateListener
(S source, PropertyStateListener listener) Adds aPropertyStateListener
to be notified when the state of theProperty
changes with respect to the given source.protected final void
Notify listeners that the state of this property has changed, as characterized by the givenPropertyStateEvent
.final PropertyStateListener[]
getPropertyStateListeners
(S source) Returns an arry containing the listeners registered for the given source.abstract V
Returns the value of thisProperty
for the given source.getWriteType
(S source) Returns the type of object that is suitable for setting as the value of thisProperty
by calls tosetValue
.final boolean
isListening
(S source) Returns whether or not there are anyPropertyStateListeners
installed for the given source object.abstract boolean
isReadable
(S source) Returns whether or not theProperty
is readable for the given source.abstract boolean
isWriteable
(S source) Returns whether or not theProperty
is writeable for the given source.protected void
listeningStarted
(S source) Called when thisPropertyHelper
changes from having no listeners installed for the given source object to having listeners installed for the given source object.protected void
listeningStopped
(S source) Called when thisPropertyHelper
changes from having listeners installed for the given source object to having no listeners installed for the given source object.final void
removePropertyStateListener
(S source, PropertyStateListener listener) Removes aPropertyStateListener
for the given source.abstract void
Sets the value of thisProperty
for the given source.
-
Constructor Details
-
PropertyHelper
public PropertyHelper()Create aPropertyHelper
that manages listeners for multiple source objects. -
PropertyHelper
public PropertyHelper(boolean ignoresSource) Create aPropertyHelper
, specifying whether it manages listeners for multiple source objects, or ignores the source object argument when dealing with listeners- Parameters:
ignoresSource
- whether or not the source argument is ignored when dealing with listeners
-
-
Method Details
-
getWriteType
Returns the type of object that is suitable for setting as the value of thisProperty
by calls tosetValue
.- Specified by:
getWriteType
in classProperty<S,
V> - Parameters:
source
- the source object on which to operate- Returns:
- the type of object suitable for setting as the value
- Throws:
UnsupportedOperationException
- if theProperty
is not writeable for the given source- See Also:
-
getValue
Returns the value of thisProperty
for the given source.- Specified by:
getValue
in classProperty<S,
V> - Parameters:
source
- the source object on which to operate- Returns:
- the value of this
Property
for the given source - Throws:
UnsupportedOperationException
- if theProperty
is not readable for the given source- See Also:
-
setValue
Sets the value of thisProperty
for the given source.- Specified by:
setValue
in classProperty<S,
V> - Parameters:
source
- the source object on which to operatevalue
- the new value for theProperty
- Throws:
UnsupportedOperationException
- if theProperty
is not writeable for the given source- See Also:
-
isReadable
Returns whether or not theProperty
is readable for the given source.- Specified by:
isReadable
in classProperty<S,
V> - Parameters:
source
- the source object on which to operate- Returns:
- whether or not the
Property
is readable for the given source. - See Also:
-
isWriteable
Returns whether or not theProperty
is writeable for the given source.- Specified by:
isWriteable
in classProperty<S,
V> - Parameters:
source
- the source object on which to operate- Returns:
- whether or not the
Property
is writeable for the given source. - See Also:
-
listeningStarted
Called when thisPropertyHelper
changes from having no listeners installed for the given source object to having listeners installed for the given source object. This is the ideal time for subclasses to install any listeners needed to track change on the source object.- See Also:
-
listeningStopped
Called when thisPropertyHelper
changes from having listeners installed for the given source object to having no listeners installed for the given source object. This is the ideal time for subclasses to remove any listeners that they've installed to track changes on the source object.- See Also:
-
addPropertyStateListener
Adds aPropertyStateListener
to be notified when the state of theProperty
changes with respect to the given source. Does nothing if the listener isnull
. If a listener is added more than once, notifications are sent to that listener once for every time that it has been added. The ordering of listener notification is unspecified.- Specified by:
addPropertyStateListener
in classProperty<S,
V> - Parameters:
source
- the source object on which to operatelistener
- the listener to be notified
-
removePropertyStateListener
Removes aPropertyStateListener
for the given source. Does nothing if the listener isnull
or is not one of those registered for this source object. If the listener being removed was registered more than once, only one occurrence of the listener is removed from the list of listeners. The ordering of listener notification is unspecified.- Specified by:
removePropertyStateListener
in classProperty<S,
V> - Parameters:
source
- the source object on which to operatelistener
- the listener to be removed- See Also:
-
getPropertyStateListeners
Returns an arry containing the listeners registered for the given source. Order is undefined. Returns an empty array if there are no listeners.- Specified by:
getPropertyStateListeners
in classProperty<S,
V> - Parameters:
source
- the source object on which to operate- Returns:
- the set of listeners registered for the given source
- See Also:
-
firePropertyStateChange
Notify listeners that the state of this property has changed, as characterized by the givenPropertyStateEvent
. If thisPropertyHelper
is managing listeners for multiple sources, only the listeners associated with the object returned by thePropertyStateEvent's getSourceObject()
method are notified.- Parameters:
pse
- thePropertyStateEvent
characterizing the state change
-
isListening
Returns whether or not there are anyPropertyStateListeners
installed for the given source object.- Parameters:
source
- the source object of interest- Returns:
- whether or not there are any
PropertyStateListeners
installed for the given source object
-