1442 * @see #addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
1443 * @see #getPropertyChangeListeners(java.lang.String)
1444 * @see #removePropertyChangeListener(java.beans.PropertyChangeListener)
1445 */
1446 public void removePropertyChangeListener(String propertyName,
1447 PropertyChangeListener listener) {
1448 if (listener != null) {
1449 synchronized (this) {
1450 if (changeSupport != null) {
1451 changeSupport.removePropertyChangeListener(propertyName,
1452 listener);
1453 }
1454 }
1455 }
1456 }
1457
1458 /**
1459 * Returns an array of all the <code>PropertyChangeListener</code>s
1460 * associated with the named property.
1461 *
1462 * @return all of the <code>PropertyChangeListener</code>s associated with
1463 * the named property or an empty array if no such listeners have
1464 * been added.
1465 *
1466 * @see #addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
1467 * @see #removePropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
1468 * @since 1.4
1469 */
1470 public synchronized PropertyChangeListener[] getPropertyChangeListeners(String propertyName) {
1471 if (changeSupport == null) {
1472 changeSupport = new PropertyChangeSupport(this);
1473 }
1474 return changeSupport.getPropertyChangeListeners(propertyName);
1475 }
1476
1477 /**
1478 * Fires a PropertyChangeEvent in response to a change in a bound property.
1479 * The event will be delivered to all registered PropertyChangeListeners.
1480 * No event will be delivered if oldValue and newValue are the same.
1481 *
1611 * @see #addVetoableChangeListener
1612 * @see #getVetoableChangeListeners
1613 * @see #removeVetoableChangeListener(java.beans.VetoableChangeListener)
1614 */
1615 public void removeVetoableChangeListener(String propertyName,
1616 VetoableChangeListener listener) {
1617 if (listener != null) {
1618 synchronized (this) {
1619 if (vetoableSupport != null) {
1620 vetoableSupport.removeVetoableChangeListener(propertyName,
1621 listener);
1622 }
1623 }
1624 }
1625 }
1626
1627 /**
1628 * Returns an array of all the <code>VetoableChangeListener</code>s
1629 * associated with the named property.
1630 *
1631 * @return all of the <code>VetoableChangeListener</code>s associated with
1632 * the named property or an empty array if no such listeners have
1633 * been added.
1634 *
1635 * @see #addVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)
1636 * @see #removeVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)
1637 * @see #getVetoableChangeListeners
1638 * @since 1.4
1639 */
1640 public synchronized VetoableChangeListener[] getVetoableChangeListeners(String propertyName) {
1641 if (vetoableSupport == null) {
1642 vetoableSupport = new VetoableChangeSupport(this);
1643 }
1644 return vetoableSupport.getVetoableChangeListeners(propertyName);
1645 }
1646
1647 /**
1648 * Fires a PropertyChangeEvent in response to a change in a vetoable
1649 * property. The event will be delivered to all registered
1650 * VetoableChangeListeners. If a VetoableChangeListener throws a
|
1442 * @see #addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
1443 * @see #getPropertyChangeListeners(java.lang.String)
1444 * @see #removePropertyChangeListener(java.beans.PropertyChangeListener)
1445 */
1446 public void removePropertyChangeListener(String propertyName,
1447 PropertyChangeListener listener) {
1448 if (listener != null) {
1449 synchronized (this) {
1450 if (changeSupport != null) {
1451 changeSupport.removePropertyChangeListener(propertyName,
1452 listener);
1453 }
1454 }
1455 }
1456 }
1457
1458 /**
1459 * Returns an array of all the <code>PropertyChangeListener</code>s
1460 * associated with the named property.
1461 *
1462 * @param propertyName the property name
1463 *
1464 * @return all of the <code>PropertyChangeListener</code>s associated with
1465 * the named property or an empty array if no such listeners have
1466 * been added.
1467 *
1468 * @see #addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
1469 * @see #removePropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
1470 * @since 1.4
1471 */
1472 public synchronized PropertyChangeListener[] getPropertyChangeListeners(String propertyName) {
1473 if (changeSupport == null) {
1474 changeSupport = new PropertyChangeSupport(this);
1475 }
1476 return changeSupport.getPropertyChangeListeners(propertyName);
1477 }
1478
1479 /**
1480 * Fires a PropertyChangeEvent in response to a change in a bound property.
1481 * The event will be delivered to all registered PropertyChangeListeners.
1482 * No event will be delivered if oldValue and newValue are the same.
1483 *
1613 * @see #addVetoableChangeListener
1614 * @see #getVetoableChangeListeners
1615 * @see #removeVetoableChangeListener(java.beans.VetoableChangeListener)
1616 */
1617 public void removeVetoableChangeListener(String propertyName,
1618 VetoableChangeListener listener) {
1619 if (listener != null) {
1620 synchronized (this) {
1621 if (vetoableSupport != null) {
1622 vetoableSupport.removeVetoableChangeListener(propertyName,
1623 listener);
1624 }
1625 }
1626 }
1627 }
1628
1629 /**
1630 * Returns an array of all the <code>VetoableChangeListener</code>s
1631 * associated with the named property.
1632 *
1633 * @param propertyName the property name
1634 * @return all of the <code>VetoableChangeListener</code>s associated with
1635 * the named property or an empty array if no such listeners have
1636 * been added.
1637 *
1638 * @see #addVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)
1639 * @see #removeVetoableChangeListener(java.lang.String,java.beans.VetoableChangeListener)
1640 * @see #getVetoableChangeListeners
1641 * @since 1.4
1642 */
1643 public synchronized VetoableChangeListener[] getVetoableChangeListeners(String propertyName) {
1644 if (vetoableSupport == null) {
1645 vetoableSupport = new VetoableChangeSupport(this);
1646 }
1647 return vetoableSupport.getVetoableChangeListeners(propertyName);
1648 }
1649
1650 /**
1651 * Fires a PropertyChangeEvent in response to a change in a vetoable
1652 * property. The event will be delivered to all registered
1653 * VetoableChangeListeners. If a VetoableChangeListener throws a
|