home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / AbstractAction.class (.txt) next >
Encoding:
Java Class File  |  1979-12-31  |  2.7 KB  |  142 lines

  1. package javax.swing;
  2.  
  3. import java.awt.event.ActionEvent;
  4. import java.beans.PropertyChangeListener;
  5. import java.io.IOException;
  6. import java.io.ObjectInputStream;
  7. import java.io.ObjectOutputStream;
  8. import java.io.Serializable;
  9. import javax.swing.event.SwingPropertyChangeSupport;
  10.  
  11. public abstract class AbstractAction implements Action, Cloneable, Serializable {
  12.    protected boolean enabled;
  13.    private transient ArrayTable arrayTable;
  14.    protected SwingPropertyChangeSupport changeSupport;
  15.  
  16.    public AbstractAction() {
  17.       this.enabled = true;
  18.    }
  19.  
  20.    public AbstractAction(String var1) {
  21.       this.enabled = true;
  22.       this.putValue("Name", var1);
  23.    }
  24.  
  25.    public AbstractAction(String var1, Icon var2) {
  26.       this(var1);
  27.       this.putValue("SmallIcon", var2);
  28.    }
  29.  
  30.    public Object getValue(String var1) {
  31.       return this.arrayTable == null ? null : this.arrayTable.get(var1);
  32.    }
  33.  
  34.    public void putValue(String var1, Object var2) {
  35.       Object var3 = null;
  36.       if (this.arrayTable == null) {
  37.          this.arrayTable = new ArrayTable();
  38.       }
  39.  
  40.       if (this.arrayTable.containsKey(var1)) {
  41.          var3 = this.arrayTable.get(var1);
  42.       }
  43.  
  44.       if (var2 == null) {
  45.          this.arrayTable.remove(var1);
  46.       } else {
  47.          this.arrayTable.put(var1, var2);
  48.       }
  49.  
  50.       this.firePropertyChange(var1, var3, var2);
  51.    }
  52.  
  53.    public boolean isEnabled() {
  54.       return this.enabled;
  55.    }
  56.  
  57.    public void setEnabled(boolean var1) {
  58.       boolean var2 = this.enabled;
  59.       this.enabled = var1;
  60.       this.firePropertyChange("enabled", new Boolean(var2), new Boolean(var1));
  61.    }
  62.  
  63.    public Object[] getKeys() {
  64.       if (this.arrayTable == null) {
  65.          return null;
  66.       } else {
  67.          Object[] var1 = new Object[this.arrayTable.size()];
  68.          this.arrayTable.getKeys(var1);
  69.          return var1;
  70.       }
  71.    }
  72.  
  73.    protected void firePropertyChange(String var1, Object var2, Object var3) {
  74.       if (this.changeSupport != null) {
  75.          this.changeSupport.firePropertyChange(var1, var2, var3);
  76.       }
  77.    }
  78.  
  79.    public synchronized void addPropertyChangeListener(PropertyChangeListener var1) {
  80.       if (this.changeSupport == null) {
  81.          this.changeSupport = new SwingPropertyChangeSupport(this);
  82.       }
  83.  
  84.       this.changeSupport.addPropertyChangeListener(var1);
  85.    }
  86.  
  87.    public synchronized void removePropertyChangeListener(PropertyChangeListener var1) {
  88.       if (this.changeSupport != null) {
  89.          this.changeSupport.removePropertyChangeListener(var1);
  90.       }
  91.    }
  92.  
  93.    protected Object clone() throws CloneNotSupportedException {
  94.       AbstractAction var1 = (AbstractAction)super.clone();
  95.       synchronized(this) {
  96.          if (this.arrayTable != null) {
  97.             var1.arrayTable = (ArrayTable)this.arrayTable.clone();
  98.          }
  99.  
  100.          return var1;
  101.       }
  102.    }
  103.  
  104.    private void writeObject(ObjectOutputStream var1) throws IOException {
  105.       var1.defaultWriteObject();
  106.       Object[] var2 = this.getKeys();
  107.       int var3 = 0;
  108.       if (var2 != null) {
  109.          for(int var4 = 0; var4 < var2.length; ++var4) {
  110.             Object var5 = this.getValue((String)var2[var4]);
  111.             if (var5 instanceof Serializable) {
  112.                ++var3;
  113.             } else {
  114.                var2[var4] = null;
  115.             }
  116.          }
  117.       }
  118.  
  119.       var1.writeInt(var3);
  120.  
  121.       for(int var6 = 0; var3 > 0; ++var6) {
  122.          if (var2[var6] != null) {
  123.             var1.writeObject(var2[var6]);
  124.             var1.writeObject(this.getValue((String)var2[var6]));
  125.             --var3;
  126.          }
  127.       }
  128.  
  129.    }
  130.  
  131.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  132.       var1.defaultReadObject();
  133.  
  134.       for(int var2 = var1.readInt() - 1; var2 >= 0; --var2) {
  135.          this.putValue((String)var1.readObject(), var1.readObject());
  136.       }
  137.  
  138.    }
  139.  
  140.    public abstract void actionPerformed(ActionEvent var1);
  141. }
  142.