javax.swing.event

Class SwingPropertyChangeSupport

Implemented Interfaces:
Serializable

public final class SwingPropertyChangeSupport
extends PropertyChangeSupport

Provides a mechanism for registering PropertyChangeListeners and forwarding PropertyChangeEvents to those listeners.
See Also:
Serialized Form

Constructor Summary

SwingPropertyChangeSupport(Object source)
Creates a new instance.

Method Summary

void
addPropertyChangeListener(PropertyChangeListener listener)
Registers listener to receive notification of any future PropertyChangeEvents generated by this instance.
void
addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
Registers listener to receive notification of any future PropertyChangeEvents generated by this instance for the named property.
void
firePropertyChange(PropertyChangeEvent event)
Forwards event to registered listeners.
void
firePropertyChange(String propertyName, Object oldValue, Object newValue)
Creates a new PropertyChangeEvent using the given arguments (and the default source for this SwingPropertyChangeSupport instance) and forwards it to all registered listeners via the PropertyChangeListener.propertyChange(PropertyChangeEvent) method.
PropertyChangeListener[]
getPropertyChangeListeners()
Returns an array of the PropertyChangeListeners registered with this SwingPropertyChangeSupport instance.
PropertyChangeListener[]
getPropertyChangeListeners(String propertyName)
Returns an array of all listeners that are registered to receive notification of changes to the named property.
boolean
hasListeners(String propertyName)
Tell whether the specified property is being listened on or not.
void
removePropertyChangeListener(PropertyChangeListener listener)
Removes listener from the list of registered listeners, so that it will no longer receive notification of property change events.
void
removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
Removes listener from the list of registered listeners for the named property, so that it will no longer receive notification of property change events.

Methods inherited from class java.beans.PropertyChangeSupport

addPropertyChangeListener, addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, hasListeners, removePropertyChangeListener, removePropertyChangeListener

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

SwingPropertyChangeSupport

public SwingPropertyChangeSupport(Object source)
Creates a new instance.
Parameters:
source - the source (null not permitted).
Throws:
NullPointerException - if source is null.

Method Details

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
Registers listener to receive notification of any future PropertyChangeEvents generated by this instance.
Overrides:
addPropertyChangeListener in interface PropertyChangeSupport
Parameters:
listener - the listener (null is ignored).

addPropertyChangeListener

public void addPropertyChangeListener(String propertyName,
                                      PropertyChangeListener listener)
Registers listener to receive notification of any future PropertyChangeEvents generated by this instance for the named property.
Overrides:
addPropertyChangeListener in interface PropertyChangeSupport
Parameters:
propertyName - the property name.
listener - the listener.

firePropertyChange

public void firePropertyChange(PropertyChangeEvent event)
Forwards event to registered listeners.

Note that if the event's getOldValue() and getNewValue() methods return non-null and equal values, no listeners will be notified.

Overrides:
firePropertyChange in interface PropertyChangeSupport
Parameters:
event - the event.

firePropertyChange

public void firePropertyChange(String propertyName,
                               Object oldValue,
                               Object newValue)
Creates a new PropertyChangeEvent using the given arguments (and the default source for this SwingPropertyChangeSupport instance) and forwards it to all registered listeners via the PropertyChangeListener.propertyChange(PropertyChangeEvent) method.

Note that if oldValue and newValue are non-null and equal, no listeners will be notified.

Overrides:
firePropertyChange in interface PropertyChangeSupport
Parameters:
propertyName - the property name.
oldValue - the old value
newValue - the new value.

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners()
Returns an array of the PropertyChangeListeners registered with this SwingPropertyChangeSupport instance.
Overrides:
getPropertyChangeListeners in interface PropertyChangeSupport
Returns:
The array of listeners.
Since:
1.4

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
Returns an array of all listeners that are registered to receive notification of changes to the named property. This includes the general listeners as well as those registered specifically for the named property.
Overrides:
getPropertyChangeListeners in interface PropertyChangeSupport
Parameters:
propertyName - the property name.
Returns:
An array of all listeners for the named property.

hasListeners

public boolean hasListeners(String propertyName)
Tell whether the specified property is being listened on or not. This will only return true if there are listeners on all properties or if there is a listener specifically on this property.
Overrides:
hasListeners in interface PropertyChangeSupport
Parameters:
propertyName - the property that may be listened on
Returns:
whether the property is being listened on
Throws:
NullPointerException - if propertyName is null

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener listener)
Removes listener from the list of registered listeners, so that it will no longer receive notification of property change events.
Overrides:
removePropertyChangeListener in interface PropertyChangeSupport
Parameters:
listener - the listener to remove.

removePropertyChangeListener

public void removePropertyChangeListener(String propertyName,
                                         PropertyChangeListener listener)
Removes listener from the list of registered listeners for the named property, so that it will no longer receive notification of property change events.
Overrides:
removePropertyChangeListener in interface PropertyChangeSupport
Parameters:
propertyName - the property name.
listener - the listener to remove.

SwingPropertyChangeSupport.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.