home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / KeyStroke.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  4.8 KB  |  260 lines

  1. package javax.swing;
  2.  
  3. import java.awt.AWTEvent;
  4. import java.awt.event.InputEvent;
  5. import java.awt.event.KeyEvent;
  6. import java.io.Serializable;
  7.  
  8. public class KeyStroke implements Serializable {
  9.    private static final Object pressedCharCacheKey = new StringBuffer("KeyStroke.pressedCharCacheKey");
  10.    private static final Object releasedCharCacheKey = new StringBuffer("KeyStroke.releasedCharCacheKey");
  11.    private static final Object pressedCodeCacheKey = new StringBuffer("KeyStroke.pressedCodeCacheKey");
  12.    private static final Object releasedCodeCacheKey = new StringBuffer("KeyStroke.releasedCodeCacheKey");
  13.    char keyChar;
  14.    int keyCode;
  15.    int modifiers;
  16.    boolean onKeyRelease;
  17.    static final int MIN_ASCII_CACHE_INDEX = 10;
  18.    static final int MAX_ASCII_CACHE_INDEX = 127;
  19.    // $FF: synthetic field
  20.    static Class class$javax$swing$KeyStroke;
  21.  
  22.    private KeyStroke() {
  23.    }
  24.  
  25.    static void cacheKeyCharKeyStroke(KeyStroke var0, boolean var1) {
  26.       if (var0.keyChar >= '\n' && var0.keyChar < 127) {
  27.          Class var2 = class$javax$swing$KeyStroke != null ? class$javax$swing$KeyStroke : (class$javax$swing$KeyStroke = class$("javax.swing.KeyStroke"));
  28.          synchronized(var2){}
  29.  
  30.          try {
  31.             if (var1) {
  32.                KeyStroke[] var4 = (KeyStroke[])SwingUtilities.appContextGet(releasedCharCacheKey);
  33.                if (var4 == null) {
  34.                   var4 = new KeyStroke[117];
  35.                   SwingUtilities.appContextPut(releasedCharCacheKey, var4);
  36.                }
  37.  
  38.                var4[var0.keyChar - 10] = var0;
  39.             } else {
  40.                KeyStroke[] var7 = (KeyStroke[])SwingUtilities.appContextGet(pressedCharCacheKey);
  41.                if (var7 == null) {
  42.                   var7 = new KeyStroke[117];
  43.                   SwingUtilities.appContextPut(pressedCharCacheKey, var7);
  44.                }
  45.  
  46.                var7[var0.keyChar - 10] = var0;
  47.             }
  48.          } catch (Throwable var6) {
  49.             throw var6;
  50.          }
  51.       }
  52.  
  53.    }
  54.  
  55.    static void cacheKeyStroke(KeyStroke var0) {
  56.       int var1 = -1;
  57.       if (var0.keyCode >= 10 && var0.keyCode < 127 && (var1 = subIndexForModifier(var0.modifiers)) != -1) {
  58.          Class var2 = class$javax$swing$KeyStroke != null ? class$javax$swing$KeyStroke : (class$javax$swing$KeyStroke = class$("javax.swing.KeyStroke"));
  59.          synchronized(var2){}
  60.  
  61.          try {
  62.             Object var4 = null;
  63.             KeyStroke[][] var9;
  64.             if (var0.onKeyRelease) {
  65.                KeyStroke[][] var5 = (KeyStroke[][])SwingUtilities.appContextGet(pressedCodeCacheKey);
  66.                if (var5 == null) {
  67.                   var5 = new KeyStroke[4][117];
  68.                   SwingUtilities.appContextPut(pressedCodeCacheKey, var5);
  69.                }
  70.  
  71.                var9 = var5;
  72.             } else {
  73.                KeyStroke[][] var10 = (KeyStroke[][])SwingUtilities.appContextGet(releasedCodeCacheKey);
  74.                if (var10 == null) {
  75.                   var10 = new KeyStroke[4][117];
  76.                   SwingUtilities.appContextPut(releasedCodeCacheKey, var10);
  77.                }
  78.  
  79.                var9 = var10;
  80.             }
  81.  
  82.             var9[var1][var0.keyCode - 10] = var0;
  83.          } catch (Throwable var7) {
  84.             throw var7;
  85.          }
  86.       }
  87.  
  88.    }
  89.  
  90.    // $FF: synthetic method
  91.    static Class class$(String var0) {
  92.       try {
  93.          return Class.forName(var0);
  94.       } catch (ClassNotFoundException var2) {
  95.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  96.       }
  97.    }
  98.  
  99.    public boolean equals(Object var1) {
  100.       if (var1 instanceof KeyStroke) {
  101.          KeyStroke var2 = (KeyStroke)var1;
  102.          if (var2.keyChar == this.keyChar && var2.keyCode == this.keyCode && var2.onKeyRelease == this.onKeyRelease && var2.modifiers == this.modifiers) {
  103.             return true;
  104.          }
  105.       }
  106.  
  107.       return false;
  108.    }
  109.  
  110.    static KeyStroke getCachedKeyCharKeyStroke(char var0, boolean var1) {
  111.       KeyStroke var2 = null;
  112.       if (var0 >= '\n' && var0 < 127) {
  113.          Class var3 = class$javax$swing$KeyStroke != null ? class$javax$swing$KeyStroke : (class$javax$swing$KeyStroke = class$("javax.swing.KeyStroke"));
  114.          synchronized(var3){}
  115.  
  116.          try {
  117.             KeyStroke[] var5;
  118.             if (var1) {
  119.                var5 = (KeyStroke[])SwingUtilities.appContextGet(releasedCharCacheKey);
  120.             } else {
  121.                var5 = (KeyStroke[])SwingUtilities.appContextGet(pressedCharCacheKey);
  122.             }
  123.  
  124.             if (var5 != null) {
  125.                var2 = var5[var0 - 10];
  126.             }
  127.          } catch (Throwable var7) {
  128.             throw var7;
  129.          }
  130.       }
  131.  
  132.       return var2;
  133.    }
  134.  
  135.    static KeyStroke getCachedKeyStroke(int var0, int var1, boolean var2) {
  136.       KeyStroke var4 = null;
  137.       int var3;
  138.       if (var0 >= 10 && var0 < 127 && (var3 = subIndexForModifier(var1)) != -1) {
  139.          Class var5 = class$javax$swing$KeyStroke != null ? class$javax$swing$KeyStroke : (class$javax$swing$KeyStroke = class$("javax.swing.KeyStroke"));
  140.          synchronized(var5){}
  141.  
  142.          try {
  143.             KeyStroke[][] var7;
  144.             if (var2) {
  145.                var7 = (KeyStroke[][])SwingUtilities.appContextGet(pressedCodeCacheKey);
  146.             } else {
  147.                var7 = (KeyStroke[][])SwingUtilities.appContextGet(releasedCodeCacheKey);
  148.             }
  149.  
  150.             if (var7 != null) {
  151.                var4 = var7[var3][var0 - 10];
  152.             }
  153.          } catch (Throwable var9) {
  154.             throw var9;
  155.          }
  156.       }
  157.  
  158.       return var4;
  159.    }
  160.  
  161.    public char getKeyChar() {
  162.       return this.keyChar;
  163.    }
  164.  
  165.    public int getKeyCode() {
  166.       return this.keyCode;
  167.    }
  168.  
  169.    public static KeyStroke getKeyStroke(char var0) {
  170.       return getKeyStroke(var0, false);
  171.    }
  172.  
  173.    /** @deprecated */
  174.    public static KeyStroke getKeyStroke(char var0, boolean var1) {
  175.       KeyStroke var2 = getCachedKeyCharKeyStroke(var0, var1);
  176.       if (var2 == null) {
  177.          var2 = new KeyStroke();
  178.          var2.keyChar = var0;
  179.          var2.modifiers = 0;
  180.          var2.onKeyRelease = var1;
  181.          cacheKeyCharKeyStroke(var2, var1);
  182.       }
  183.  
  184.       return var2;
  185.    }
  186.  
  187.    public static KeyStroke getKeyStroke(int var0, int var1) {
  188.       return getKeyStroke(var0, var1, false);
  189.    }
  190.  
  191.    public static KeyStroke getKeyStroke(int var0, int var1, boolean var2) {
  192.       KeyStroke var3 = getCachedKeyStroke(var0, var1, var2);
  193.       if (var3 == null) {
  194.          var3 = new KeyStroke();
  195.          var3.keyCode = var0;
  196.          var3.modifiers = var1;
  197.          var3.onKeyRelease = var2;
  198.          cacheKeyStroke(var3);
  199.       }
  200.  
  201.       return var3;
  202.    }
  203.  
  204.    public static KeyStroke getKeyStroke(String var0) {
  205.       return null;
  206.    }
  207.  
  208.    public static KeyStroke getKeyStrokeForEvent(KeyEvent var0) {
  209.       KeyStroke var1 = null;
  210.       switch (((AWTEvent)var0).getID()) {
  211.          case 400:
  212.             var1 = getKeyStroke(var0.getKeyChar());
  213.             break;
  214.          case 401:
  215.             var1 = getKeyStroke(var0.getKeyCode(), ((InputEvent)var0).getModifiers(), false);
  216.             break;
  217.          case 402:
  218.             var1 = getKeyStroke(var0.getKeyCode(), ((InputEvent)var0).getModifiers(), true);
  219.       }
  220.  
  221.       return var1;
  222.    }
  223.  
  224.    public int getModifiers() {
  225.       return this.modifiers;
  226.    }
  227.  
  228.    private static String getStringRepresentation(char var0, int var1, boolean var2) {
  229.       return "keyChar " + KeyEvent.getKeyModifiersText(var1) + var0 + (var2 ? "-R" : "-P");
  230.    }
  231.  
  232.    private static String getStringRepresentation(int var0, int var1, boolean var2) {
  233.       return "keyCode " + KeyEvent.getKeyModifiersText(var1) + KeyEvent.getKeyText(var0) + (var2 ? "-R" : "-P");
  234.    }
  235.  
  236.    public int hashCode() {
  237.       return (this.keyChar + 1) * 2 * (this.keyCode + 1) * (this.modifiers + 1) + (this.onKeyRelease ? 1 : 2);
  238.    }
  239.  
  240.    public boolean isOnKeyRelease() {
  241.       return this.onKeyRelease;
  242.    }
  243.  
  244.    static int subIndexForModifier(int var0) {
  245.       if (var0 == 0) {
  246.          return 0;
  247.       } else if (var0 == 1) {
  248.          return 1;
  249.       } else if (var0 == 2) {
  250.          return 2;
  251.       } else {
  252.          return var0 == 8 ? 3 : -1;
  253.       }
  254.    }
  255.  
  256.    public String toString() {
  257.       return this.keyChar == 0 ? getStringRepresentation(this.keyCode, this.modifiers, this.onKeyRelease) : getStringRepresentation((char)this.keyChar, 0, this.onKeyRelease);
  258.    }
  259. }
  260.