/******************************************************************************* * This file is protected by Copyright. * Please refer to the COPYRIGHT file distributed with this source distribution. * * This file is part of REDHAWK IDE. * * All rights reserved. This program and the accompanying materials are made available under * the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *******************************************************************************/ package gov.redhawk.sca.util; import java.beans.PropertyChangeListener; /** * @since 3.4 * */ public class PropertyChangeSupport extends java.beans.PropertyChangeSupport { public PropertyChangeSupport(Object sourceBean) { super(sourceBean); } @Override public void addPropertyChangeListener(PropertyChangeListener listener) { if (listener == null) { return; } if (contains(null, listener)) { return; } super.addPropertyChangeListener(listener); } private boolean contains(String propertyName, PropertyChangeListener listener) { PropertyChangeListener[] listeners; if (propertyName == null) { listeners = getPropertyChangeListeners(); } else { listeners = getPropertyChangeListeners(propertyName); } for (PropertyChangeListener p : listeners) { if (p == listener) { return true; } } return false; } @Override public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { if (listener == null) { return; } if (contains(propertyName, listener)) { return; } super.addPropertyChangeListener(propertyName, listener); } }