ba378dd1cc16a63945adf24828ac69888ec6a56a
[jalviewjs.git] / site / swingjs / j2s / javax / swing / JFormattedTextField.js
1 Clazz.declarePackage ("javax.swing");\r
2 Clazz.load (["javax.swing.JTextField", "javax.swing.event.DocumentListener", "javax.swing.text.TextAction"], "javax.swing.JFormattedTextField", ["java.lang.Boolean", "$.IllegalArgumentException", "$.Number", "java.util.Date", "java.text.DateFormat", "$.DecimalFormat", "$.Format", "$.NumberFormat", "javax.swing.ActionMap", "javax.swing.plaf.UIResource", "javax.swing.text.DateFormatter", "$.DefaultFormatter", "$.DefaultFormatterFactory", "$.DocumentFilter", "$.InternationalFormatter", "$.JSMinimalAbstractDocument", "$.NumberFormatter", "swingjs.JSToolkit"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.factory = null;\r
5 this.format = null;\r
6 this.value = null;\r
7 this.editValid = false;\r
8 this.focusLostBehavior = 0;\r
9 this.edited = false;\r
10 this.documentListener = null;\r
11 this.textFormatterActionMap = null;\r
12 this.focusLostHandler = null;\r
13 if (!Clazz.isClassDefined ("javax.swing.JFormattedTextField.FocusLostHandler")) {\r
14 javax.swing.JFormattedTextField.$JFormattedTextField$FocusLostHandler$ ();\r
15 }\r
16 if (!Clazz.isClassDefined ("javax.swing.JFormattedTextField.DocumentHandler")) {\r
17 javax.swing.JFormattedTextField.$JFormattedTextField$DocumentHandler$ ();\r
18 }\r
19 Clazz.instantialize (this, arguments);\r
20 }, javax.swing, "JFormattedTextField", javax.swing.JTextField);\r
21 Clazz.makeConstructor (c$, \r
22 function () {\r
23 Clazz.superConstructor (this, javax.swing.JFormattedTextField);\r
24 this.enableEvents (4);\r
25 this.setFocusLostBehavior (1);\r
26 });\r
27 Clazz.makeConstructor (c$, \r
28 function (value) {\r
29 this.construct ();\r
30 this.setValue (value);\r
31 }, "~O");\r
32 Clazz.makeConstructor (c$, \r
33 function (format) {\r
34 this.construct ();\r
35 this.setFormatterFactory (this.getDefaultFormatterFactory (format));\r
36 }, "java.text.Format");\r
37 Clazz.makeConstructor (c$, \r
38 function (formatter) {\r
39 this.construct ( new javax.swing.text.DefaultFormatterFactory (formatter));\r
40 }, "javax.swing.JFormattedTextField.AbstractFormatter");\r
41 Clazz.makeConstructor (c$, \r
42 function (factory) {\r
43 this.construct ();\r
44 this.setFormatterFactory (factory);\r
45 }, "javax.swing.JFormattedTextField.AbstractFormatterFactory");\r
46 Clazz.makeConstructor (c$, \r
47 function (factory, currentValue) {\r
48 this.construct (currentValue);\r
49 this.setFormatterFactory (factory);\r
50 }, "javax.swing.JFormattedTextField.AbstractFormatterFactory,~O");\r
51 Clazz.defineMethod (c$, "setFocusLostBehavior", \r
52 function (behavior) {\r
53 if (behavior != 0 && behavior != 1 && behavior != 3 && behavior != 2) {\r
54 throw  new IllegalArgumentException ("setFocusLostBehavior must be one of: JFormattedTextField.COMMIT, JFormattedTextField.COMMIT_OR_REVERT, JFormattedTextField.PERSIST or JFormattedTextField.REVERT");\r
55 }this.focusLostBehavior = behavior;\r
56 }, "~N");\r
57 Clazz.defineMethod (c$, "getFocusLostBehavior", \r
58 function () {\r
59 return this.focusLostBehavior;\r
60 });\r
61 Clazz.defineMethod (c$, "setFormatterFactory", \r
62 function (tf) {\r
63 var oldFactory = this.factory = tf;\r
64 this.firePropertyChangeObject ("formatterFactory", oldFactory, tf);\r
65 this.setValue (this.getValue (), true, false);\r
66 }, "javax.swing.JFormattedTextField.AbstractFormatterFactory");\r
67 Clazz.defineMethod (c$, "getFormatterFactory", \r
68 function () {\r
69 return this.factory;\r
70 });\r
71 Clazz.defineMethod (c$, "setFormatter", \r
72 function (format) {\r
73 var oldFormat = this.format;\r
74 if (oldFormat != null) {\r
75 oldFormat.uninstall ();\r
76 }this.setEditValid (true);\r
77 this.format = format;\r
78 if (format != null) {\r
79 format.install (this);\r
80 }this.setEdited (false);\r
81 this.firePropertyChangeObject ("textFormatter", oldFormat, format);\r
82 }, "javax.swing.JFormattedTextField.AbstractFormatter");\r
83 Clazz.defineMethod (c$, "getFormatter", \r
84 function () {\r
85 return this.format;\r
86 });\r
87 Clazz.defineMethod (c$, "setValue", \r
88 function (value) {\r
89 if (value != null && this.getFormatterFactory () == null) {\r
90 this.setFormatterFactory (this.getDefaultFormatterFactory (value));\r
91 }this.setValue (value, true, true);\r
92 }, "~O");\r
93 Clazz.defineMethod (c$, "getValue", \r
94 function () {\r
95 return this.value;\r
96 });\r
97 Clazz.defineMethod (c$, "commitEdit", \r
98 function () {\r
99 var format = this.getFormatter ();\r
100 if (format != null) {\r
101 this.setValue (format.stringToValue (this.getText ()), false, true);\r
102 }});\r
103 Clazz.defineMethod (c$, "setEditValid", \r
104  function (isValid) {\r
105 if (isValid != this.editValid) {\r
106 this.editValid = isValid;\r
107 this.firePropertyChangeObject ("editValid", Boolean.$valueOf (!isValid), Boolean.$valueOf (isValid));\r
108 }}, "~B");\r
109 Clazz.defineMethod (c$, "isEditValid", \r
110 function () {\r
111 return this.editValid;\r
112 });\r
113 Clazz.defineMethod (c$, "invalidEdit", \r
114 function () {\r
115 });\r
116 Clazz.defineMethod (c$, "processFocusEvent", \r
117 function (e) {\r
118 Clazz.superCall (this, javax.swing.JFormattedTextField, "processFocusEvent", [e]);\r
119 if (e.isTemporary ()) {\r
120 return;\r
121 }if (this.isEdited () && e.getID () == 1005) {\r
122 if (this.focusLostHandler == null) {\r
123 this.focusLostHandler = Clazz.innerTypeInstance (javax.swing.JFormattedTextField.FocusLostHandler, this, null);\r
124 }this.focusLostHandler.run ();\r
125 } else if (!this.isEdited ()) {\r
126 this.setValue (this.getValue (), true, true);\r
127 }}, "java.awt.event.FocusEvent");\r
128 Clazz.defineMethod (c$, "getActions", \r
129 function () {\r
130 return javax.swing.text.TextAction.augmentList (Clazz.superCall (this, javax.swing.JFormattedTextField, "getActions", []), javax.swing.JFormattedTextField.$defaultActions);\r
131 });\r
132 Clazz.overrideMethod (c$, "getUIClassID", \r
133 function () {\r
134 return "FormattedTextFieldUI";\r
135 });\r
136 Clazz.defineMethod (c$, "setDocument", \r
137 function (doc) {\r
138 if (this.documentListener != null && this.getDocument () != null) {\r
139 this.getDocument ().removeDocumentListener (this.documentListener);\r
140 }Clazz.superCall (this, javax.swing.JFormattedTextField, "setDocument", [doc]);\r
141 if (this.documentListener == null) {\r
142 this.documentListener = Clazz.innerTypeInstance (javax.swing.JFormattedTextField.DocumentHandler, this, null);\r
143 }doc.addDocumentListener (this.documentListener);\r
144 }, "javax.swing.text.Document");\r
145 Clazz.defineMethod (c$, "setFormatterActions", \r
146  function (actions) {\r
147 if (actions == null) {\r
148 if (this.textFormatterActionMap != null) {\r
149 this.textFormatterActionMap.clear ();\r
150 }} else {\r
151 if (this.textFormatterActionMap == null) {\r
152 var map = this.getActionMap ();\r
153 this.textFormatterActionMap =  new javax.swing.ActionMap ();\r
154 while (map != null) {\r
155 var parent = map.getParent ();\r
156 if (Clazz.instanceOf (parent, javax.swing.plaf.UIResource) || parent == null) {\r
157 map.setParent (this.textFormatterActionMap);\r
158 this.textFormatterActionMap.setParent (parent);\r
159 break;\r
160 }map = parent;\r
161 }\r
162 }for (var counter = actions.length - 1; counter >= 0; counter--) {\r
163 var key = actions[counter].getValue ("Name");\r
164 if (key != null) {\r
165 this.textFormatterActionMap.put (key, actions[counter]);\r
166 }}\r
167 }}, "~A");\r
168 Clazz.defineMethod (c$, "setValue", \r
169  function (value, createFormat, firePC) {\r
170 var oldValue = this.value;\r
171 this.value = value;\r
172 if (createFormat) {\r
173 var factory = this.getFormatterFactory ();\r
174 var atf;\r
175 if (factory != null) {\r
176 atf = factory.getFormatter (this);\r
177 } else {\r
178 atf = null;\r
179 }this.setFormatter (atf);\r
180 } else {\r
181 this.setEditValid (true);\r
182 }this.setEdited (false);\r
183 if (firePC) {\r
184 this.firePropertyChangeObject ("value", oldValue, value);\r
185 }}, "~O,~B,~B");\r
186 Clazz.defineMethod (c$, "setEdited", \r
187  function (edited) {\r
188 this.edited = edited;\r
189 }, "~B");\r
190 Clazz.defineMethod (c$, "isEdited", \r
191  function () {\r
192 return this.edited;\r
193 });\r
194 Clazz.defineMethod (c$, "getDefaultFormatterFactory", \r
195  function (type) {\r
196 if (Clazz.instanceOf (type, java.text.DateFormat)) {\r
197 swingjs.JSToolkit.notImplemented (null);\r
198 return null;\r
199 }if (Clazz.instanceOf (type, java.text.NumberFormat)) {\r
200 return  new javax.swing.text.DefaultFormatterFactory ( new javax.swing.text.NumberFormatter (type));\r
201 }if (Clazz.instanceOf (type, java.text.Format)) {\r
202 return  new javax.swing.text.DefaultFormatterFactory ( new javax.swing.text.InternationalFormatter (type));\r
203 }if (Clazz.instanceOf (type, java.util.Date)) {\r
204 return  new javax.swing.text.DefaultFormatterFactory ( new javax.swing.text.DateFormatter ());\r
205 }if (Clazz.instanceOf (type, Number)) {\r
206 var displayFormatter =  new javax.swing.text.NumberFormatter ();\r
207 (displayFormatter).setValueClass (type.getClass ());\r
208 var editFormatter =  new javax.swing.text.NumberFormatter ( new java.text.DecimalFormat ("#.#"));\r
209 (editFormatter).setValueClass (type.getClass ());\r
210 return  new javax.swing.text.DefaultFormatterFactory (displayFormatter, displayFormatter, editFormatter);\r
211 }return  new javax.swing.text.DefaultFormatterFactory ( new javax.swing.text.DefaultFormatter ());\r
212 }, "~O");\r
213 c$.$JFormattedTextField$FocusLostHandler$ = function () {\r
214 Clazz.pu$h(self.c$);\r
215 c$ = Clazz.decorateAsClass (function () {\r
216 Clazz.prepareCallback (this, arguments);\r
217 Clazz.instantialize (this, arguments);\r
218 }, javax.swing.JFormattedTextField, "FocusLostHandler", null, Runnable);\r
219 Clazz.overrideMethod (c$, "run", \r
220 function () {\r
221 var a = this.b$["javax.swing.JFormattedTextField"].getFocusLostBehavior ();\r
222 if (a == 0 || a == 1) {\r
223 try {\r
224 this.b$["javax.swing.JFormattedTextField"].commitEdit ();\r
225 this.b$["javax.swing.JFormattedTextField"].setValue (this.b$["javax.swing.JFormattedTextField"].getValue (), true, true);\r
226 } catch (pe) {\r
227 if (Clazz.exceptionOf (pe, java.text.ParseException)) {\r
228 if (a == 1) {\r
229 this.b$["javax.swing.JFormattedTextField"].setValue (this.b$["javax.swing.JFormattedTextField"].getValue (), true, true);\r
230 }} else {\r
231 throw pe;\r
232 }\r
233 }\r
234 } else if (a == 2) {\r
235 this.b$["javax.swing.JFormattedTextField"].setValue (this.b$["javax.swing.JFormattedTextField"].getValue (), true, true);\r
236 }});\r
237 c$ = Clazz.p0p ();\r
238 };\r
239 c$.$JFormattedTextField$DocumentHandler$ = function () {\r
240 Clazz.pu$h(self.c$);\r
241 c$ = Clazz.decorateAsClass (function () {\r
242 Clazz.prepareCallback (this, arguments);\r
243 Clazz.instantialize (this, arguments);\r
244 }, javax.swing.JFormattedTextField, "DocumentHandler", null, javax.swing.event.DocumentListener);\r
245 Clazz.overrideMethod (c$, "insertUpdate", \r
246 function (a) {\r
247 this.b$["javax.swing.JFormattedTextField"].setEdited (true);\r
248 }, "javax.swing.event.DocumentEvent");\r
249 Clazz.overrideMethod (c$, "removeUpdate", \r
250 function (a) {\r
251 this.b$["javax.swing.JFormattedTextField"].setEdited (true);\r
252 }, "javax.swing.event.DocumentEvent");\r
253 Clazz.overrideMethod (c$, "changedUpdate", \r
254 function (a) {\r
255 }, "javax.swing.event.DocumentEvent");\r
256 c$ = Clazz.p0p ();\r
257 };\r
258 Clazz.pu$h(self.c$);\r
259 c$ = Clazz.declareType (javax.swing.JFormattedTextField, "AbstractFormatterFactory");\r
260 c$ = Clazz.p0p ();\r
261 Clazz.pu$h(self.c$);\r
262 c$ = Clazz.decorateAsClass (function () {\r
263 this.ftf = null;\r
264 Clazz.instantialize (this, arguments);\r
265 }, javax.swing.JFormattedTextField, "AbstractFormatter");\r
266 Clazz.defineMethod (c$, "install", \r
267 function (a) {\r
268 if (this.ftf != null) {\r
269 this.uninstall ();\r
270 }this.ftf = a;\r
271 if (a != null) {\r
272 try {\r
273 a.setText (this.valueToString (a.getValue ()));\r
274 } catch (pe) {\r
275 if (Clazz.exceptionOf (pe, java.text.ParseException)) {\r
276 a.setText ("");\r
277 this.setEditValid (false);\r
278 } else {\r
279 throw pe;\r
280 }\r
281 }\r
282 this.installDocumentFilter (this.getDocumentFilter ());\r
283 a.setFormatterActions (this.getActions ());\r
284 }}, "javax.swing.JFormattedTextField");\r
285 Clazz.defineMethod (c$, "uninstall", \r
286 function () {\r
287 if (this.ftf != null) {\r
288 this.installDocumentFilter (null);\r
289 this.ftf.setFormatterActions (null);\r
290 }});\r
291 Clazz.defineMethod (c$, "getFormattedTextField", \r
292 function () {\r
293 return this.ftf;\r
294 });\r
295 Clazz.defineMethod (c$, "invalidEdit", \r
296 function () {\r
297 var a = this.getFormattedTextField ();\r
298 if (a != null) {\r
299 a.invalidEdit ();\r
300 }});\r
301 Clazz.defineMethod (c$, "setEditValid", \r
302 function (a) {\r
303 var b = this.getFormattedTextField ();\r
304 if (b != null) {\r
305 b.setEditValid (a);\r
306 }}, "~B");\r
307 Clazz.defineMethod (c$, "getActions", \r
308 function () {\r
309 return null;\r
310 });\r
311 Clazz.defineMethod (c$, "getDocumentFilter", \r
312 function () {\r
313 return null;\r
314 });\r
315 Clazz.defineMethod (c$, "getNavigationFilter", \r
316 function () {\r
317 return null;\r
318 });\r
319 Clazz.defineMethod (c$, "clone", \r
320 function () {\r
321 var a = Clazz.superCall (this, javax.swing.JFormattedTextField.AbstractFormatter, "clone", []);\r
322 a.ftf = null;\r
323 return a;\r
324 });\r
325 Clazz.defineMethod (c$, "installDocumentFilter", \r
326  function (a) {\r
327 var b = this.getFormattedTextField ();\r
328 if (b != null) {\r
329 var c = b.getDocument ();\r
330 if (Clazz.instanceOf (c, javax.swing.text.JSMinimalAbstractDocument)) {\r
331 (c).setDocumentFilter (a);\r
332 }c.putProperty (javax.swing.text.DocumentFilter, null);\r
333 }}, "javax.swing.text.DocumentFilter");\r
334 c$ = Clazz.p0p ();\r
335 Clazz.pu$h(self.c$);\r
336 c$ = Clazz.declareType (javax.swing.JFormattedTextField, "CommitAction", javax.swing.JTextField.NotifyAction);\r
337 Clazz.defineMethod (c$, "actionPerformed", \r
338 function (a) {\r
339 var b = this.getFocusedComponent ();\r
340 if (Clazz.instanceOf (b, javax.swing.JFormattedTextField)) {\r
341 try {\r
342 (b).commitEdit ();\r
343 } catch (pe) {\r
344 if (Clazz.exceptionOf (pe, java.text.ParseException)) {\r
345 (b).invalidEdit ();\r
346 return;\r
347 } else {\r
348 throw pe;\r
349 }\r
350 }\r
351 }Clazz.superCall (this, javax.swing.JFormattedTextField.CommitAction, "actionPerformed", [a]);\r
352 }, "java.awt.event.ActionEvent");\r
353 Clazz.defineMethod (c$, "isEnabled", \r
354 function () {\r
355 var a = this.getFocusedComponent ();\r
356 if (Clazz.instanceOf (a, javax.swing.JFormattedTextField)) {\r
357 var b = a;\r
358 if (!b.isEdited ()) {\r
359 return false;\r
360 }return true;\r
361 }return Clazz.superCall (this, javax.swing.JFormattedTextField.CommitAction, "isEnabled", []);\r
362 });\r
363 c$ = Clazz.p0p ();\r
364 Clazz.pu$h(self.c$);\r
365 c$ = Clazz.declareType (javax.swing.JFormattedTextField, "CancelAction", javax.swing.text.TextAction);\r
366 Clazz.makeConstructor (c$, \r
367 function () {\r
368 Clazz.superConstructor (this, javax.swing.JFormattedTextField.CancelAction, ["reset-field-edit"]);\r
369 });\r
370 Clazz.overrideMethod (c$, "actionPerformed", \r
371 function (a) {\r
372 var b = this.getFocusedComponent ();\r
373 if (Clazz.instanceOf (b, javax.swing.JFormattedTextField)) {\r
374 var c = b;\r
375 c.setValue (c.getValue ());\r
376 }}, "java.awt.event.ActionEvent");\r
377 Clazz.defineMethod (c$, "isEnabled", \r
378 function () {\r
379 var a = this.getFocusedComponent ();\r
380 if (Clazz.instanceOf (a, javax.swing.JFormattedTextField)) {\r
381 var b = a;\r
382 if (!b.isEdited ()) {\r
383 return false;\r
384 }return true;\r
385 }return Clazz.superCall (this, javax.swing.JFormattedTextField.CancelAction, "isEnabled", []);\r
386 });\r
387 c$ = Clazz.p0p ();\r
388 Clazz.defineStatics (c$,\r
389 "$$uiClassID", "FormattedTextFieldUI");\r
390 c$.$defaultActions = c$.prototype.$defaultActions =  Clazz.newArray (-1, [ new javax.swing.JFormattedTextField.CommitAction (),  new javax.swing.JFormattedTextField.CancelAction ()]);\r
391 Clazz.defineStatics (c$,\r
392 "COMMIT", 0,\r
393 "COMMIT_OR_REVERT", 1,\r
394 "REVERT", 2,\r
395 "PERSIST", 3);\r
396 });\r