/** * Returns the subscribers to be notified when {@code propertyName} changes. * This includes both listeners subscribed to all property changes and * listeners subscribed to the named property only. */ public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) { List<PropertyChangeListener> result = new ArrayList<PropertyChangeListener>(); for (PropertyChangeListener p : listeners) { if (p instanceof PropertyChangeListenerProxy && Objects.equal( propertyName, ((PropertyChangeListenerProxy) p).getPropertyName())) { result.add(p); } } return result.toArray(new PropertyChangeListener[result.size()]); }
/** * Returns true if there are listeners registered to the property with the * given name. * * @param propertyName * the name of the property * @return true if there are listeners registered to that property, false * otherwise. */ public boolean hasListeners(String propertyName) { for (PropertyChangeListener p : listeners) { if (!(p instanceof PropertyChangeListenerProxy) || Objects.equal( propertyName, ((PropertyChangeListenerProxy) p).getPropertyName())) { return true; } } return false; }
/** * 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. */ public void firePropertyChange(PropertyChangeEvent event) { String propertyName = event.getPropertyName(); Object oldValue = event.getOldValue(); Object newValue = event.getNewValue(); if (newValue != null && oldValue != null && newValue.equals(oldValue)) { return; } notifyEachListener: for (PropertyChangeListener p : listeners) { // unwrap listener proxies until we get a mismatched name or the real listener while (p instanceof PropertyChangeListenerProxy) { PropertyChangeListenerProxy proxy = (PropertyChangeListenerProxy) p; if (!Objects.equal(proxy.getPropertyName(), propertyName)) { continue notifyEachListener; } p = (PropertyChangeListener) proxy.getListener(); } p.propertyChange(event); } } }
PropertyChangeListener listener = (PropertyChangeListener) proxy.getListener(); if (listener instanceof Serializable) { PropertyChangeSupport list = map.get(proxy.getPropertyName()); if (list == null) { list = new PropertyChangeSupport(sourceBean); map.put(proxy.getPropertyName(), list);
String bName = bProxy.getPropertyName(); b = bProxy.getListener(); if (aName == null) { aName = aProxy.getPropertyName(); a = aProxy.getListener();
public boolean hasListeners(String propertyName) { for (PropertyChangeListener p : listeners) { if (!(p instanceof PropertyChangeListenerProxy) || Objects.equals( propertyName, ((PropertyChangeListenerProxy) p).getPropertyName())) { return true; } } return false; }
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) { List<PropertyChangeListener> result = new ArrayList<PropertyChangeListener>(); for (PropertyChangeListener p : listeners) { if (p instanceof PropertyChangeListenerProxy && Objects.equals( propertyName, ((PropertyChangeListenerProxy) p).getPropertyName())) { result.add(p); } } return result.toArray(new PropertyChangeListener[result.size()]); }
private void connectAllTo(PROPERTY_TYPE tgt) { for(PropertyChangeListener l:targetPCS.getPropertyChangeListeners()){ if(l instanceof PropertyChangeListenerProxy){ final PropertyChangeListenerProxy proxy = (PropertyChangeListenerProxy)l; try{tgt.getClass().getMethod("addPropertyChangeListener", String.class,PropertyChangeListener.class).invoke(tgt, proxy.getPropertyName(), proxy);} catch(Exception e){e.printStackTrace();}} else{try{tgt.getClass().getMethod("addPropertyChangeListener", PropertyChangeListener.class).invoke(tgt, l);} catch(Exception e){e.printStackTrace();}} }//end for(listener) } private void disconnectAllFrom(PROPERTY_TYPE tgt) {
/** * Returns the subscribers to be notified when {@code propertyName} changes. * This includes both listeners subscribed to all property changes and * listeners subscribed to the named property only. */ public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) { List<PropertyChangeListener> result = new ArrayList<PropertyChangeListener>(); for (PropertyChangeListener p : listeners) { if (p instanceof PropertyChangeListenerProxy && Objects.equal( propertyName, ((PropertyChangeListenerProxy) p).getPropertyName())) { result.add(p); } } return result.toArray(new PropertyChangeListener[result.size()]); }
/** * Returns the subscribers to be notified when {@code propertyName} changes. * This includes both listeners subscribed to all property changes and * listeners subscribed to the named property only. */ public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) { List<PropertyChangeListener> result = new ArrayList<PropertyChangeListener>(); for (PropertyChangeListener p : listeners) { if (p instanceof PropertyChangeListenerProxy && Objects.equal( propertyName, ((PropertyChangeListenerProxy) p).getPropertyName())) { result.add(p); } } return result.toArray(new PropertyChangeListener[result.size()]); }
/** * Returns the subscribers to be notified when {@code propertyName} changes. * This includes both listeners subscribed to all property changes and * listeners subscribed to the named property only. */ public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) { List<PropertyChangeListener> result = new ArrayList<PropertyChangeListener>(); for (PropertyChangeListener p : listeners) { if (p instanceof PropertyChangeListenerProxy && Objects.equal( propertyName, ((PropertyChangeListenerProxy) p).getPropertyName())) { result.add(p); } } return result.toArray(new PropertyChangeListener[result.size()]); }
/** * Returns the subscribers to be notified when {@code propertyName} changes. * This includes both listeners subscribed to all property changes and * listeners subscribed to the named property only. */ public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) { List<PropertyChangeListener> result = new ArrayList<PropertyChangeListener>(); for (PropertyChangeListener p : listeners) { if (p instanceof PropertyChangeListenerProxy && Objects.equal( propertyName, ((PropertyChangeListenerProxy) p).getPropertyName())) { result.add(p); } } return result.toArray(new PropertyChangeListener[result.size()]); }
/** * Returns the subscribers to be notified when {@code propertyName} changes. * This includes both listeners subscribed to all property changes and * listeners subscribed to the named property only. */ public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) { List<PropertyChangeListener> result = new ArrayList<PropertyChangeListener>(); for (PropertyChangeListener p : listeners) { if (p instanceof PropertyChangeListenerProxy && Objects.equal( propertyName, ((PropertyChangeListenerProxy) p).getPropertyName())) { result.add(p); } } return result.toArray(new PropertyChangeListener[result.size()]); }
private boolean equals(String aName, EventListener a, EventListener b) { while (b instanceof PropertyChangeListenerProxy) { PropertyChangeListenerProxy bProxy = (PropertyChangeListenerProxy) b; // unwrap b String bName = bProxy.getPropertyName(); b = bProxy.getListener(); if (aName == null) { if (!(a instanceof PropertyChangeListenerProxy)) return false; PropertyChangeListenerProxy aProxy = (PropertyChangeListenerProxy) a; // unwrap a aName = aProxy.getPropertyName(); a = aProxy.getListener(); } if (!Objects.equals(aName, bName)) return false; // not equal; a and b subscribe to different properties aName = null; } return aName == null && Objects.equals(a, b); }
/** * Returns the subscribers to be notified when {@code propertyName} changes. * This includes both listeners subscribed to all property changes and * listeners subscribed to the named property only. */ public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) { List<PropertyChangeListener> result = new ArrayList<PropertyChangeListener>(); for (PropertyChangeListener p : listeners) { if (p instanceof PropertyChangeListenerProxy && Objects.equal( propertyName, ((PropertyChangeListenerProxy) p).getPropertyName())) { result.add(p); } } return result.toArray(new PropertyChangeListener[result.size()]); }
public void firePropertyChange(PropertyChangeEvent event) { String propertyName = event.getPropertyName(); Object oldValue = event.getOldValue(); Object newValue = event.getNewValue(); if (newValue != null && oldValue != null && newValue.equals(oldValue)) return; notifyEachListener: for (PropertyChangeListener p : listeners) { // unwrap listener proxies until we get a mismatched name or the real listener while (p instanceof PropertyChangeListenerProxy) { PropertyChangeListenerProxy proxy = (PropertyChangeListenerProxy) p; if (!Objects.equals(proxy.getPropertyName(), propertyName)) continue notifyEachListener; p = (PropertyChangeListener) proxy.getListener(); } p.propertyChange(event); } } }
public void removePropertyChangeListener(PropertyChangeListener listener) { if (listener == null) { return; } if (listener instanceof PropertyChangeListenerProxy) { PropertyChangeListenerProxy proxy = (PropertyChangeListenerProxy) listener; // Call two argument remove method. removePropertyChangeListener(proxy.getPropertyName(), (PropertyChangeListener) proxy.getListener()); } else { if (listeners == null) { return; } listeners.remove(listener); } }
public void removePropertyChangeListener(PropertyChangeListener listener) { if (listener instanceof PropertyChangeListenerProxy) { PropertyChangeListenerProxy proxy = (PropertyChangeListenerProxy) listener; // Call two argument remove method. removePropertyChangeListener(proxy.getPropertyName(), (PropertyChangeListener) proxy.getListener()); } else { synchronized (m_listenerLock) { removeFromListNoLock(m_listeners, listener); if (m_childListeners != null) { for (List childList : m_childListeners.values()) { removeFromListNoLock(childList, listener); } } } } }
public void removePropertyChangeListener(PropertyChangeListener listener) { if (listener instanceof PropertyChangeListenerProxy) { PropertyChangeListenerProxy proxy = (PropertyChangeListenerProxy) listener; // Call two argument remove method. removePropertyChangeListener(proxy.getPropertyName(), proxy.getListener()); } else { synchronized (m_listenerLock) { removeFromListNoLock(m_listeners, listener); if (m_childListeners != null) { for (List<Object> childList : m_childListeners.values()) { removeFromListNoLock(childList, listener); } } } } }
public void addPropertyChangeListener(PropertyChangeListener listener) { if (listener == null) { return; } if (listener instanceof PropertyChangeListenerProxy) { PropertyChangeListenerProxy proxy = (PropertyChangeListenerProxy) listener; // Call two argument add method. addPropertyChangeListener(proxy.getPropertyName(), (PropertyChangeListener) proxy.getListener()); } else { if (listeners == null) listeners = new EventListenerAggregate(PropertyChangeListener.class); listeners.add(listener); } }