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 / InputMap.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.4 KB  |  148 lines

  1. package javax.swing;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6. import java.io.Serializable;
  7. import java.util.HashMap;
  8.  
  9. public class InputMap implements Serializable {
  10.    private transient AbstractAction.ArrayTable arrayTable;
  11.    private InputMap parent;
  12.  
  13.    public void setParent(InputMap var1) {
  14.       this.parent = var1;
  15.    }
  16.  
  17.    public InputMap getParent() {
  18.       return this.parent;
  19.    }
  20.  
  21.    public void put(KeyStroke var1, Object var2) {
  22.       if (var1 != null) {
  23.          if (var2 == null) {
  24.             this.remove(var1);
  25.          } else {
  26.             if (this.arrayTable == null) {
  27.                this.arrayTable = new AbstractAction.ArrayTable();
  28.             }
  29.  
  30.             this.arrayTable.put(var1, var2);
  31.          }
  32.  
  33.       }
  34.    }
  35.  
  36.    public Object get(KeyStroke var1) {
  37.       if (this.arrayTable == null) {
  38.          InputMap var4 = this.getParent();
  39.          return var4 != null ? var4.get(var1) : null;
  40.       } else {
  41.          Object var2 = this.arrayTable.get(var1);
  42.          if (var2 == null) {
  43.             InputMap var3 = this.getParent();
  44.             if (var3 != null) {
  45.                return var3.get(var1);
  46.             }
  47.          }
  48.  
  49.          return var2;
  50.       }
  51.    }
  52.  
  53.    public void remove(KeyStroke var1) {
  54.       if (this.arrayTable != null) {
  55.          this.arrayTable.remove(var1);
  56.       }
  57.  
  58.    }
  59.  
  60.    public void clear() {
  61.       if (this.arrayTable != null) {
  62.          this.arrayTable.clear();
  63.       }
  64.  
  65.    }
  66.  
  67.    public KeyStroke[] keys() {
  68.       if (this.arrayTable == null) {
  69.          return null;
  70.       } else {
  71.          KeyStroke[] var1 = new KeyStroke[this.arrayTable.size()];
  72.          this.arrayTable.getKeys(var1);
  73.          return var1;
  74.       }
  75.    }
  76.  
  77.    public int size() {
  78.       return this.arrayTable == null ? 0 : this.arrayTable.size();
  79.    }
  80.  
  81.    public KeyStroke[] allKeys() {
  82.       int var1 = this.size();
  83.       InputMap var2 = this.getParent();
  84.       if (var1 == 0) {
  85.          return var2 != null ? var2.allKeys() : this.keys();
  86.       } else if (var2 == null) {
  87.          return this.keys();
  88.       } else {
  89.          KeyStroke[] var3 = this.keys();
  90.          KeyStroke[] var4 = var2.allKeys();
  91.          if (var4 == null) {
  92.             return var3;
  93.          } else if (var3 == null) {
  94.             return var4;
  95.          } else {
  96.             HashMap var5 = new HashMap();
  97.  
  98.             for(int var6 = var3.length - 1; var6 >= 0; --var6) {
  99.                var5.put(var3[var6], var3[var6]);
  100.             }
  101.  
  102.             for(int var8 = var4.length - 1; var8 >= 0; --var8) {
  103.                var5.put(var4[var8], var4[var8]);
  104.             }
  105.  
  106.             KeyStroke[] var7 = new KeyStroke[var5.size()];
  107.             return (KeyStroke[])var5.keySet().toArray(var7);
  108.          }
  109.       }
  110.    }
  111.  
  112.    private void writeObject(ObjectOutputStream var1) throws IOException {
  113.       var1.defaultWriteObject();
  114.       KeyStroke[] var2 = this.keys();
  115.       int var3 = 0;
  116.       if (var2 != null) {
  117.          for(int var4 = 0; var4 < var2.length; ++var4) {
  118.             Object var5 = this.get(var2[var4]);
  119.             if (var5 instanceof Serializable) {
  120.                ++var3;
  121.             } else {
  122.                var2[var4] = null;
  123.             }
  124.          }
  125.       }
  126.  
  127.       var1.writeInt(var3);
  128.  
  129.       for(int var6 = 0; var3 > 0; ++var6) {
  130.          if (var2[var6] != null) {
  131.             var1.writeObject(var2[var6]);
  132.             var1.writeObject(this.get(var2[var6]));
  133.             --var3;
  134.          }
  135.       }
  136.  
  137.    }
  138.  
  139.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  140.       var1.defaultReadObject();
  141.  
  142.       for(int var2 = var1.readInt() - 1; var2 >= 0; --var2) {
  143.          this.put((KeyStroke)var1.readObject(), var1.readObject());
  144.       }
  145.  
  146.    }
  147. }
  148.