Package java.beans
Class PropertyChangeSupport
java.lang.Object
java.beans.PropertyChangeSupport
- All Implemented Interfaces:
Serializable
public class PropertyChangeSupport extends Object implements Serializable
Manages a list of listeners to be notified when a property changes. Listeners
subscribe to be notified of all property changes, or of changes to a single
named property.
This class is thread safe. No locking is necessary when subscribing or unsubscribing listeners, or when publishing events. Callers should be careful when publishing events because listeners may not be thread safe.
- See Also:
- Serialized Form
-
Constructor Summary
Constructors Constructor Description PropertyChangeSupport(Object sourceBean)Creates a new instance that uses the source bean as source for any event. -
Method Summary
Modifier and Type Method Description voidaddPropertyChangeListener(PropertyChangeListener listener)Subscribeslistenerto change notifications for all properties.voidaddPropertyChangeListener(String propertyName, PropertyChangeListener listener)Subscribeslistenerto change notifications for the property namedpropertyName.voidfireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)Fires a property change of a boolean property with the given name.voidfireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)Fires a property change of an integer property with the given name.voidfireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)Fires anIndexedPropertyChangeEventwith the given name, old value, new value and index.voidfirePropertyChange(PropertyChangeEvent event)Publishes a property change event to all listeners of that property.voidfirePropertyChange(String propertyName, boolean oldValue, boolean newValue)Fires a property change of a boolean property with the given name.voidfirePropertyChange(String propertyName, int oldValue, int newValue)Fires a property change of an integer property with the given name.voidfirePropertyChange(String propertyName, Object oldValue, Object newValue)Fires aPropertyChangeEventwith the given name, old value and new value.PropertyChangeListener[]getPropertyChangeListeners()Returns all subscribers.PropertyChangeListener[]getPropertyChangeListeners(String propertyName)Returns the subscribers to be notified whenpropertyNamechanges.booleanhasListeners(String propertyName)Returns true if there are listeners registered to the property with the given name.voidremovePropertyChangeListener(PropertyChangeListener listener)Unsubscribeslistenerfrom change notifications for all properties.voidremovePropertyChangeListener(String propertyName, PropertyChangeListener listener)Unsubscribeslistenerfrom change notifications for the property namedpropertyName.
-
Constructor Details
-
PropertyChangeSupport
Creates a new instance that uses the source bean as source for any event.- Parameters:
sourceBean- the bean used as source for all events.
-
-
Method Details
-
firePropertyChange
Fires aPropertyChangeEventwith the given name, old value and new value. As source the bean used to initialize this instance is used. If the old value and the new value are not null and equal the event will not be fired.- Parameters:
propertyName- the name of the propertyoldValue- the old value of the propertynewValue- the new value of the property
-
fireIndexedPropertyChange
public void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)Fires anIndexedPropertyChangeEventwith the given name, old value, new value and index. As source the bean used to initialize this instance is used. If the old value and the new value are not null and equal the event will not be fired.- Parameters:
propertyName- the name of the propertyindex- the indexoldValue- the old value of the propertynewValue- the new value of the property
-
removePropertyChangeListener
Unsubscribeslistenerfrom change notifications for the property namedpropertyName. If multiple subscriptions exist forlistener, it will receive one fewer notifications when the property changes. If the property name or listener is null or not subscribed, this method silently does nothing. -
addPropertyChangeListener
Subscribeslistenerto change notifications for the property namedpropertyName. If the listener is already subscribed, it will receive an additional notification when the property changes. If the property name or listener is null, this method silently does nothing. -
getPropertyChangeListeners
Returns the subscribers to be notified whenpropertyNamechanges. This includes both listeners subscribed to all property changes and listeners subscribed to the named property only. -
firePropertyChange
Fires a property change of a boolean property with the given name. If the old value and the new value are not null and equal the event will not be fired.- Parameters:
propertyName- the property nameoldValue- the old valuenewValue- the new value
-
fireIndexedPropertyChange
public void fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)Fires a property change of a boolean property with the given name. If the old value and the new value are not null and equal the event will not be fired.- Parameters:
propertyName- the property nameindex- the index of the changed propertyoldValue- the old valuenewValue- the new value
-
firePropertyChange
Fires a property change of an integer property with the given name. If the old value and the new value are not null and equal the event will not be fired.- Parameters:
propertyName- the property nameoldValue- the old valuenewValue- the new value
-
fireIndexedPropertyChange
Fires a property change of an integer property with the given name. If the old value and the new value are not null and equal the event will not be fired.- Parameters:
propertyName- the property nameindex- the index of the changed propertyoldValue- the old valuenewValue- the new value
-
hasListeners
Returns true if there are listeners registered to the property with the given name.- Parameters:
propertyName- the name of the property- Returns:
- true if there are listeners registered to that property, false otherwise.
-
removePropertyChangeListener
Unsubscribeslistenerfrom change notifications for all properties. If the listener has multiple subscriptions, it will receive one fewer notification when properties change. If the property name or listener is null or not subscribed, this method silently does nothing. -
addPropertyChangeListener
Subscribeslistenerto change notifications for all properties. If the listener is already subscribed, it will receive an additional notification. If the listener is null, this method silently does nothing. -
getPropertyChangeListeners
Returns all subscribers. This includes both listeners subscribed to all property changes and listeners subscribed to a single property. -
firePropertyChange
Publishes a property change event to all listeners of that property. If the event's old and new values are equal (but non-null), no event will be published.
-