home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.event;
-
- import java.beans.PropertyChangeEvent;
- import java.beans.PropertyChangeListener;
- import java.beans.PropertyChangeSupport;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.util.Hashtable;
- import java.util.Vector;
-
- public final class SwingPropertyChangeSupport extends PropertyChangeSupport {
- private transient Vector listeners;
- private Hashtable children;
- private Object source;
- static final long serialVersionUID = 7162625831330845068L;
-
- public SwingPropertyChangeSupport(Object var1) {
- super(var1);
- this.source = var1;
- }
-
- public synchronized void addPropertyChangeListener(PropertyChangeListener var1) {
- if (this.listeners == null) {
- this.listeners = new Vector();
- }
-
- this.listeners.addElement(var1);
- }
-
- public synchronized void addPropertyChangeListener(String var1, PropertyChangeListener var2) {
- if (this.children == null) {
- this.children = new Hashtable();
- }
-
- SwingPropertyChangeSupport var3 = (SwingPropertyChangeSupport)this.children.get(var1);
- if (var3 == null) {
- var3 = new SwingPropertyChangeSupport(this.source);
- this.children.put(var1, var3);
- }
-
- var3.addPropertyChangeListener(var2);
- }
-
- public void firePropertyChange(PropertyChangeEvent var1) {
- Object var2 = var1.getOldValue();
- Object var3 = var1.getNewValue();
- String var4 = var1.getPropertyName();
- if (var2 == null || var3 == null || !var2.equals(var3)) {
- SwingPropertyChangeSupport var5 = null;
- synchronized(this){}
-
- try {
- if (this.children != null && var4 != null) {
- var5 = (SwingPropertyChangeSupport)this.children.get(var4);
- }
- } catch (Throwable var9) {
- throw var9;
- }
-
- if (this.listeners != null) {
- for(int var6 = 0; var6 < this.listeners.size(); ++var6) {
- PropertyChangeListener var7 = (PropertyChangeListener)this.listeners.elementAt(var6);
- var7.propertyChange(var1);
- }
- }
-
- if (var5 != null) {
- var5.firePropertyChange(var1);
- }
-
- }
- }
-
- public void firePropertyChange(String var1, Object var2, Object var3) {
- if (var2 == null || var3 == null || !var2.equals(var3)) {
- SwingPropertyChangeSupport var4 = null;
- synchronized(this){}
-
- try {
- if (this.children != null && var1 != null) {
- var4 = (SwingPropertyChangeSupport)this.children.get(var1);
- }
- } catch (Throwable var9) {
- throw var9;
- }
-
- if (this.listeners != null || var4 != null) {
- PropertyChangeEvent var5 = new PropertyChangeEvent(this.source, var1, var2, var3);
- if (this.listeners != null) {
- for(int var6 = 0; var6 < this.listeners.size(); ++var6) {
- PropertyChangeListener var7 = (PropertyChangeListener)this.listeners.elementAt(var6);
- var7.propertyChange(var5);
- }
- }
-
- if (var4 != null) {
- var4.firePropertyChange(var5);
- }
- }
-
- }
- }
-
- public synchronized boolean hasListeners(String var1) {
- if (this.listeners != null && !this.listeners.isEmpty()) {
- return true;
- } else {
- if (this.children != null) {
- SwingPropertyChangeSupport var2 = (SwingPropertyChangeSupport)this.children.get(var1);
- if (var2 != null) {
- return var2.listeners.isEmpty() ^ true;
- }
- }
-
- return false;
- }
- }
-
- private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
- var1.defaultReadObject();
-
- Object var2;
- while((var2 = var1.readObject()) != null) {
- this.addPropertyChangeListener((PropertyChangeListener)var2);
- }
-
- }
-
- public synchronized void removePropertyChangeListener(PropertyChangeListener var1) {
- if (this.listeners != null) {
- this.listeners.removeElement(var1);
- }
- }
-
- public synchronized void removePropertyChangeListener(String var1, PropertyChangeListener var2) {
- if (this.children != null) {
- SwingPropertyChangeSupport var3 = (SwingPropertyChangeSupport)this.children.get(var1);
- if (var3 != null) {
- var3.removePropertyChangeListener(var2);
- }
- }
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- var1.defaultWriteObject();
- Vector var2 = null;
- synchronized(this){}
-
- try {
- if (this.listeners != null) {
- var2 = (Vector)this.listeners.clone();
- }
- } catch (Throwable var6) {
- throw var6;
- }
-
- if (var2 != null) {
- for(int var3 = 0; var3 < var2.size(); ++var3) {
- PropertyChangeListener var4 = (PropertyChangeListener)var2.elementAt(var3);
- if (var4 instanceof Serializable) {
- var1.writeObject(var4);
- }
- }
- }
-
- var1.writeObject((Object)null);
- }
- }
-