1 Clazz.declarePackage ("java.awt");
\r
2 Clazz.load (null, ["java.awt.AWTKeyStroke", "$.VKCollection"], ["java.io.ObjectStreamException", "java.lang.IllegalArgumentException", "$.StringBuilder", "java.util.Collections", "$.HashMap", "$.StringTokenizer", "java.awt.event.KeyEvent", "jssun.awt.AppContext"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.keyChar = '\uffff';
\r
7 this.onKeyRelease = false;
\r
8 Clazz.instantialize (this, arguments);
\r
9 }, java.awt, "AWTKeyStroke");
\r
10 c$.getAWTKeyStrokeClass = Clazz.defineMethod (c$, "getAWTKeyStrokeClass",
\r
12 var clazz = jssun.awt.AppContext.getAppContext ().get (java.awt.AWTKeyStroke);
\r
13 if (clazz == null) {
\r
14 clazz = java.awt.AWTKeyStroke;
\r
15 jssun.awt.AppContext.getAppContext ().put (java.awt.AWTKeyStroke, java.awt.AWTKeyStroke);
\r
18 Clazz.makeConstructor (c$,
\r
21 Clazz.makeConstructor (c$,
\r
22 function (keyChar, keyCode, modifiers, onKeyRelease) {
\r
23 this.keyChar = keyChar;
\r
24 this.keyCode = keyCode;
\r
25 this.modifiers = modifiers;
\r
26 this.onKeyRelease = onKeyRelease;
\r
28 c$.registerSubclass = Clazz.defineMethod (c$, "registerSubclass",
\r
29 function (subclass) {
\r
31 c$.getCachedStroke = Clazz.defineMethod (c$, "getCachedStroke",
\r
32 function (keyChar, keyCode, modifiers, onKeyRelease) {
\r
35 c$.getAWTKeyStroke = Clazz.defineMethod (c$, "getAWTKeyStroke",
\r
36 function (keyChar) {
\r
37 return java.awt.AWTKeyStroke.getCachedStroke (keyChar, 0, 0, false);
\r
39 c$.getAWTKeyStroke = Clazz.defineMethod (c$, "getAWTKeyStroke",
\r
40 function (keyChar, modifiers) {
\r
41 if (keyChar == null) {
\r
42 throw new IllegalArgumentException ("keyChar cannot be null");
\r
43 }return java.awt.AWTKeyStroke.getCachedStroke (keyChar.charValue (), 0, modifiers, false);
\r
45 c$.getAWTKeyStroke = Clazz.defineMethod (c$, "getAWTKeyStroke",
\r
46 function (keyCode, modifiers, onKeyRelease) {
\r
47 return java.awt.AWTKeyStroke.getCachedStroke ('\uffff', keyCode, modifiers, onKeyRelease);
\r
49 c$.getAWTKeyStroke = Clazz.defineMethod (c$, "getAWTKeyStroke",
\r
50 function (keyCode, modifiers) {
\r
51 return java.awt.AWTKeyStroke.getCachedStroke ('\uffff', keyCode, modifiers, false);
\r
53 c$.getAWTKeyStrokeForEvent = Clazz.defineMethod (c$, "getAWTKeyStrokeForEvent",
\r
54 function (anEvent) {
\r
55 var id = anEvent.getID ();
\r
59 return java.awt.AWTKeyStroke.getCachedStroke ('\uffff', anEvent.getKeyCode (), anEvent.getModifiers (), (id == 402));
\r
61 return java.awt.AWTKeyStroke.getCachedStroke (anEvent.getKeyChar (), 0, anEvent.getModifiers (), false);
\r
65 }, "java.awt.event.KeyEvent");
\r
66 c$.getAWTKeyStroke = Clazz.defineMethod (c$, "getAWTKeyStroke",
\r
69 throw new IllegalArgumentException ("String cannot be null");
\r
70 }var errmsg = "String formatted incorrectly";
\r
71 var st = new java.util.StringTokenizer (s, " ");
\r
73 var released = false;
\r
75 var pressed = false;
\r
77 if (java.awt.AWTKeyStroke.modifierKeywords == null) {
\r
78 var uninitializedMap = new java.util.HashMap (8, 1.0);
\r
79 uninitializedMap.put ("shift", Integer.$valueOf (65));
\r
80 uninitializedMap.put ("control", Integer.$valueOf (130));
\r
81 uninitializedMap.put ("ctrl", Integer.$valueOf (130));
\r
82 uninitializedMap.put ("meta", Integer.$valueOf (260));
\r
83 uninitializedMap.put ("alt", Integer.$valueOf (520));
\r
84 uninitializedMap.put ("altGraph", Integer.$valueOf (8224));
\r
85 uninitializedMap.put ("button1", Integer.$valueOf (1024));
\r
86 uninitializedMap.put ("button2", Integer.$valueOf (2048));
\r
87 uninitializedMap.put ("button3", Integer.$valueOf (4096));
\r
88 java.awt.AWTKeyStroke.modifierKeywords = java.util.Collections.synchronizedMap (uninitializedMap);
\r
89 }}var count = st.countTokens ();
\r
90 for (var i = 1; i <= count; i++) {
\r
91 var token = st.nextToken ();
\r
93 if (token.length != 1 || i != count) {
\r
94 throw new IllegalArgumentException ("String formatted incorrectly");
\r
95 }return java.awt.AWTKeyStroke.getCachedStroke (token.charAt (0), 0, mask, false);
\r
96 }if (pressed || released || i == count) {
\r
98 throw new IllegalArgumentException ("String formatted incorrectly");
\r
99 }var keyCodeName = "VK_" + token;
\r
100 var keyCode = java.awt.AWTKeyStroke.getVKValue (keyCodeName);
\r
101 return java.awt.AWTKeyStroke.getCachedStroke ('\uffff', keyCode, mask, released);
\r
102 }if (token.equals ("released")) {
\r
105 }if (token.equals ("pressed")) {
\r
108 }if (token.equals ("typed")) {
\r
111 }var tokenMask = java.awt.AWTKeyStroke.modifierKeywords.get (token);
\r
112 if (tokenMask != null) {
\r
113 mask |= tokenMask.intValue ();
\r
115 throw new IllegalArgumentException ("String formatted incorrectly");
\r
117 throw new IllegalArgumentException ("String formatted incorrectly");
\r
119 c$.getVKCollection = Clazz.defineMethod (c$, "getVKCollection",
\r
121 if (java.awt.AWTKeyStroke.vks == null) {
\r
122 java.awt.AWTKeyStroke.vks = new java.awt.VKCollection ();
\r
123 }return java.awt.AWTKeyStroke.vks;
\r
125 c$.getVKValue = Clazz.defineMethod (c$, "getVKValue",
\r
127 var vkCollect = java.awt.AWTKeyStroke.getVKCollection ();
\r
128 var value = vkCollect.findCode (key);
\r
129 if (value == null) {
\r
131 var errmsg = "String formatted incorrectly";
\r
133 keyCode = java.awt.event.KeyEvent.getField (key).getInt (java.awt.event.KeyEvent);
\r
135 if (Clazz.exceptionOf (e$$, NoSuchFieldException)) {
\r
138 throw new IllegalArgumentException ("String formatted incorrectly");
\r
140 } else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {
\r
143 throw new IllegalArgumentException ("String formatted incorrectly");
\r
149 value = Integer.$valueOf (keyCode);
\r
150 vkCollect.put (key, value);
\r
151 }return value.intValue ();
\r
153 Clazz.defineMethod (c$, "getKeyChar",
\r
155 return this.keyChar;
\r
157 Clazz.defineMethod (c$, "getKeyCode",
\r
159 return this.keyCode;
\r
161 Clazz.defineMethod (c$, "getModifiers",
\r
163 return this.modifiers;
\r
165 Clazz.defineMethod (c$, "isOnKeyRelease",
\r
167 return this.onKeyRelease;
\r
169 Clazz.defineMethod (c$, "getKeyEventType",
\r
171 if (this.keyCode == 0) {
\r
174 return (this.onKeyRelease) ? 402 : 401;
\r
176 Clazz.overrideMethod (c$, "hashCode",
\r
178 return (((this.keyChar).charCodeAt (0)) + 1) * (2 * (this.keyCode + 1)) * (this.modifiers + 1) + (this.onKeyRelease ? 1 : 2);
\r
180 Clazz.defineMethod (c$, "equals",
\r
181 function (anObject) {
\r
182 if (Clazz.instanceOf (anObject, java.awt.AWTKeyStroke)) {
\r
184 return (ks.keyChar == this.keyChar && ks.keyCode == this.keyCode && ks.onKeyRelease == this.onKeyRelease && ks.modifiers == this.modifiers);
\r
187 Clazz.overrideMethod (c$, "toString",
\r
189 if (this.keyCode == 0) {
\r
190 return java.awt.AWTKeyStroke.getModifiersText (this.modifiers) + "typed " + this.keyChar;
\r
192 return java.awt.AWTKeyStroke.getModifiersText (this.modifiers) + (this.onKeyRelease ? "released" : "pressed") + " " + java.awt.AWTKeyStroke.getVKText (this.keyCode);
\r
194 c$.getModifiersText = Clazz.defineMethod (c$, "getModifiersText",
\r
195 function (modifiers) {
\r
196 var buf = new StringBuilder ();
\r
197 if ((modifiers & 64) != 0) {
\r
198 buf.append ("shift ");
\r
199 }if ((modifiers & 128) != 0) {
\r
200 buf.append ("ctrl ");
\r
201 }if ((modifiers & 256) != 0) {
\r
202 buf.append ("meta ");
\r
203 }if ((modifiers & 512) != 0) {
\r
204 buf.append ("alt ");
\r
205 }if ((modifiers & 8192) != 0) {
\r
206 buf.append ("altGraph ");
\r
207 }if ((modifiers & 1024) != 0) {
\r
208 buf.append ("button1 ");
\r
209 }if ((modifiers & 2048) != 0) {
\r
210 buf.append ("button2 ");
\r
211 }if ((modifiers & 4096) != 0) {
\r
212 buf.append ("button3 ");
\r
213 }return buf.toString ();
\r
215 c$.getVKText = Clazz.defineMethod (c$, "getVKText",
\r
216 function (keyCode) {
\r
219 Clazz.defineMethod (c$, "readResolve",
\r
222 var newClass = this.getClass ();
\r
223 var awtKeyStrokeClass = java.awt.AWTKeyStroke.getAWTKeyStrokeClass ();
\r
224 if (!newClass.equals (awtKeyStrokeClass)) {
\r
225 java.awt.AWTKeyStroke.registerSubclass (newClass);
\r
226 }return java.awt.AWTKeyStroke.getCachedStroke (this.keyChar, this.keyCode, this.modifiers, this.onKeyRelease);
\r
228 Clazz.defineStatics (c$,
\r
229 "modifierKeywords", null,
\r
231 c$ = Clazz.decorateAsClass (function () {
\r
232 this.code2name = null;
\r
233 this.name2code = null;
\r
234 Clazz.instantialize (this, arguments);
\r
235 }, java.awt, "VKCollection");
\r
236 Clazz.makeConstructor (c$,
\r
238 this.code2name = new java.util.HashMap ();
\r
239 this.name2code = new java.util.HashMap ();
\r
241 Clazz.defineMethod (c$, "put",
\r
242 function (name, code) {
\r
243 this.code2name.put (code, name);
\r
244 this.name2code.put (name, code);
\r
246 Clazz.defineMethod (c$, "findCode",
\r
248 return this.name2code.get (name);
\r
250 Clazz.defineMethod (c$, "findName",
\r
252 return this.code2name.get (code);
\r