JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / java / awt / AWTKeyStroke.js
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
5 this.keyCode = 0;\r
6 this.modifiers = 0;\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
11  function () {\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
16 }return clazz;\r
17 });\r
18 Clazz.makeConstructor (c$, \r
19 function () {\r
20 });\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
27 }, "~S,~N,~N,~B");\r
28 c$.registerSubclass = Clazz.defineMethod (c$, "registerSubclass", \r
29 function (subclass) {\r
30 }, "Class");\r
31 c$.getCachedStroke = Clazz.defineMethod (c$, "getCachedStroke", \r
32  function (keyChar, keyCode, modifiers, onKeyRelease) {\r
33 return null;\r
34 }, "~S,~N,~N,~B");\r
35 c$.getAWTKeyStroke = Clazz.defineMethod (c$, "getAWTKeyStroke", \r
36 function (keyChar) {\r
37 return java.awt.AWTKeyStroke.getCachedStroke (keyChar, 0, 0, false);\r
38 }, "~S");\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
44 }, "Character,~N");\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
48 }, "~N,~N,~B");\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
52 }, "~N,~N");\r
53 c$.getAWTKeyStrokeForEvent = Clazz.defineMethod (c$, "getAWTKeyStrokeForEvent", \r
54 function (anEvent) {\r
55 var id = anEvent.getID ();\r
56 switch (id) {\r
57 case 401:\r
58 case 402:\r
59 return java.awt.AWTKeyStroke.getCachedStroke ('\uffff', anEvent.getKeyCode (), anEvent.getModifiers (), (id == 402));\r
60 case 400:\r
61 return java.awt.AWTKeyStroke.getCachedStroke (anEvent.getKeyChar (), 0, anEvent.getModifiers (), false);\r
62 default:\r
63 return null;\r
64 }\r
65 }, "java.awt.event.KeyEvent");\r
66 c$.getAWTKeyStroke = Clazz.defineMethod (c$, "getAWTKeyStroke", \r
67 function (s) {\r
68 if (s == null) {\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
72 var mask = 0;\r
73 var released = false;\r
74 var typed = false;\r
75 var pressed = false;\r
76 {\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
92 if (typed) {\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
97 if (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
103 released = true;\r
104 continue;\r
105 }if (token.equals ("pressed")) {\r
106 pressed = true;\r
107 continue;\r
108 }if (token.equals ("typed")) {\r
109 typed = true;\r
110 continue;\r
111 }var tokenMask = java.awt.AWTKeyStroke.modifierKeywords.get (token);\r
112 if (tokenMask != null) {\r
113 mask |= tokenMask.intValue ();\r
114 } else {\r
115 throw  new IllegalArgumentException ("String formatted incorrectly");\r
116 }}\r
117 throw  new IllegalArgumentException ("String formatted incorrectly");\r
118 }, "~S");\r
119 c$.getVKCollection = Clazz.defineMethod (c$, "getVKCollection", \r
120  function () {\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
124 });\r
125 c$.getVKValue = Clazz.defineMethod (c$, "getVKValue", \r
126  function (key) {\r
127 var vkCollect = java.awt.AWTKeyStroke.getVKCollection ();\r
128 var value = vkCollect.findCode (key);\r
129 if (value == null) {\r
130 var keyCode = 0;\r
131 var errmsg = "String formatted incorrectly";\r
132 try {\r
133 keyCode = java.awt.event.KeyEvent.getField (key).getInt (java.awt.event.KeyEvent);\r
134 } catch (e$$) {\r
135 if (Clazz.exceptionOf (e$$, NoSuchFieldException)) {\r
136 var nsfe = e$$;\r
137 {\r
138 throw  new IllegalArgumentException ("String formatted incorrectly");\r
139 }\r
140 } else if (Clazz.exceptionOf (e$$, IllegalAccessException)) {\r
141 var iae = e$$;\r
142 {\r
143 throw  new IllegalArgumentException ("String formatted incorrectly");\r
144 }\r
145 } else {\r
146 throw e$$;\r
147 }\r
148 }\r
149 value = Integer.$valueOf (keyCode);\r
150 vkCollect.put (key, value);\r
151 }return value.intValue ();\r
152 }, "~S");\r
153 Clazz.defineMethod (c$, "getKeyChar", \r
154 function () {\r
155 return this.keyChar;\r
156 });\r
157 Clazz.defineMethod (c$, "getKeyCode", \r
158 function () {\r
159 return this.keyCode;\r
160 });\r
161 Clazz.defineMethod (c$, "getModifiers", \r
162 function () {\r
163 return this.modifiers;\r
164 });\r
165 Clazz.defineMethod (c$, "isOnKeyRelease", \r
166 function () {\r
167 return this.onKeyRelease;\r
168 });\r
169 Clazz.defineMethod (c$, "getKeyEventType", \r
170 function () {\r
171 if (this.keyCode == 0) {\r
172 return 400;\r
173 } else {\r
174 return (this.onKeyRelease) ? 402 : 401;\r
175 }});\r
176 Clazz.overrideMethod (c$, "hashCode", \r
177 function () {\r
178 return (((this.keyChar).charCodeAt (0)) + 1) * (2 * (this.keyCode + 1)) * (this.modifiers + 1) + (this.onKeyRelease ? 1 : 2);\r
179 });\r
180 Clazz.defineMethod (c$, "equals", \r
181 function (anObject) {\r
182 if (Clazz.instanceOf (anObject, java.awt.AWTKeyStroke)) {\r
183 var ks = anObject;\r
184 return (ks.keyChar == this.keyChar && ks.keyCode == this.keyCode && ks.onKeyRelease == this.onKeyRelease && ks.modifiers == this.modifiers);\r
185 }return false;\r
186 }, "~O");\r
187 Clazz.overrideMethod (c$, "toString", \r
188 function () {\r
189 if (this.keyCode == 0) {\r
190 return java.awt.AWTKeyStroke.getModifiersText (this.modifiers) + "typed " + this.keyChar;\r
191 } else {\r
192 return java.awt.AWTKeyStroke.getModifiersText (this.modifiers) + (this.onKeyRelease ? "released" : "pressed") + " " + java.awt.AWTKeyStroke.getVKText (this.keyCode);\r
193 }});\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
214 }, "~N");\r
215 c$.getVKText = Clazz.defineMethod (c$, "getVKText", \r
216 function (keyCode) {\r
217 return "UNKNOWN";\r
218 }, "~N");\r
219 Clazz.defineMethod (c$, "readResolve", \r
220 function () {\r
221 {\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
227 }});\r
228 Clazz.defineStatics (c$,\r
229 "modifierKeywords", null,\r
230 "vks", 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
237 function () {\r
238 this.code2name =  new java.util.HashMap ();\r
239 this.name2code =  new java.util.HashMap ();\r
240 });\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
245 }, "~S,Integer");\r
246 Clazz.defineMethod (c$, "findCode", \r
247 function (name) {\r
248 return this.name2code.get (name);\r
249 }, "~S");\r
250 Clazz.defineMethod (c$, "findName", \r
251 function (code) {\r
252 return this.code2name.get (code);\r
253 }, "Integer");\r
254 });\r