org.jdesktop.swingbinding.adapters.BeanAdapterBase Maven / Gradle / Ivy
The newest version!
/*
* Copyright (C) 2007 Sun Microsystems, Inc. All rights reserved. Use is
* subject to license terms.
*/
package org.jdesktop.swingbinding.adapters;
import java.beans.*;
/**
* @author Shannon Hickey
*/
public class BeanAdapterBase {
protected final String property;
private PropertyChangeSupport support;
protected BeanAdapterBase(String property) {
assert property != null;
this.property = property.intern();
}
protected void listeningStarted() {}
protected void listeningStopped() {}
protected final boolean isListening() {
return support == null ? false : support.getPropertyChangeListeners().length > 0;
}
public final void addPropertyChangeListener(PropertyChangeListener listener) {
if (listener == null) {
return;
}
boolean wasListening = isListening();
if (support == null) {
support = new PropertyChangeSupport(this);
}
support.addPropertyChangeListener(listener);
if (!wasListening) {
listeningStarted();
}
}
public final void removePropertyChangeListener(PropertyChangeListener listener) {
if (listener == null || support == null) {
return;
}
boolean wasListening = isListening();
support.removePropertyChangeListener(listener);
if (wasListening && !isListening()) {
listeningStopped();
}
}
public final PropertyChangeListener[] getPropertyChangeListeners() {
if (support == null) {
return new PropertyChangeListener[0];
}
return support.getPropertyChangeListeners();
}
public final void addPropertyChangeListener(String property, PropertyChangeListener listener) {
if (listener == null || property == null || property.intern() != this.property) {
return;
}
boolean wasListening = isListening();
if (support == null) {
support = new PropertyChangeSupport(this);
}
support.addPropertyChangeListener(property, listener);
if (!wasListening) {
listeningStarted();
}
}
public final void removePropertyChangeListener(String property, PropertyChangeListener listener) {
if (listener == null || support == null || property == null || property.intern() != this.property) {
return;
}
boolean wasListening = isListening();
support.removePropertyChangeListener(property, listener);
if (wasListening && !isListening()) {
listeningStopped();
}
}
public final PropertyChangeListener[] getPropertyChangeListeners(String property) {
if (support == null || property == null || property.intern() != this.property) {
return new PropertyChangeListener[0];
}
return support.getPropertyChangeListeners(property);
}
protected final void firePropertyChange(Object oldValue, Object newValue) {
if (support == null) {
return;
}
support.firePropertyChange(property, oldValue, newValue);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy