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
7 this.editValid = false;
\r
8 this.focusLostBehavior = 0;
\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
16 if (!Clazz.isClassDefined ("javax.swing.JFormattedTextField.DocumentHandler")) {
\r
17 javax.swing.JFormattedTextField.$JFormattedTextField$DocumentHandler$ ();
\r
19 Clazz.instantialize (this, arguments);
\r
20 }, javax.swing, "JFormattedTextField", javax.swing.JTextField);
\r
21 Clazz.makeConstructor (c$,
\r
23 Clazz.superConstructor (this, javax.swing.JFormattedTextField);
\r
24 this.enableEvents (4);
\r
25 this.setFocusLostBehavior (1);
\r
27 Clazz.makeConstructor (c$,
\r
30 this.setValue (value);
\r
32 Clazz.makeConstructor (c$,
\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
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
57 Clazz.defineMethod (c$, "getFocusLostBehavior",
\r
59 return this.focusLostBehavior;
\r
61 Clazz.defineMethod (c$, "setFormatterFactory",
\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
69 return this.factory;
\r
71 Clazz.defineMethod (c$, "setFormatter",
\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
87 Clazz.defineMethod (c$, "setValue",
\r
89 if (value != null && this.getFormatterFactory () == null) {
\r
90 this.setFormatterFactory (this.getDefaultFormatterFactory (value));
\r
91 }this.setValue (value, true, true);
\r
93 Clazz.defineMethod (c$, "getValue",
\r
97 Clazz.defineMethod (c$, "commitEdit",
\r
99 var format = this.getFormatter ();
\r
100 if (format != null) {
\r
101 this.setValue (format.stringToValue (this.getText ()), false, true);
\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
109 Clazz.defineMethod (c$, "isEditValid",
\r
111 return this.editValid;
\r
113 Clazz.defineMethod (c$, "invalidEdit",
\r
116 Clazz.defineMethod (c$, "processFocusEvent",
\r
118 Clazz.superCall (this, javax.swing.JFormattedTextField, "processFocusEvent", [e]);
\r
119 if (e.isTemporary ()) {
\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
130 return javax.swing.text.TextAction.augmentList (Clazz.superCall (this, javax.swing.JFormattedTextField, "getActions", []), javax.swing.JFormattedTextField.$defaultActions);
\r
132 Clazz.overrideMethod (c$, "getUIClassID",
\r
134 return "FormattedTextFieldUI";
\r
136 Clazz.defineMethod (c$, "setDocument",
\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
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
162 }for (var counter = actions.length - 1; counter >= 0; counter--) {
\r
163 var key = actions[counter].getValue ("Name");
\r
165 this.textFormatterActionMap.put (key, actions[counter]);
\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
175 if (factory != null) {
\r
176 atf = factory.getFormatter (this);
\r
179 }this.setFormatter (atf);
\r
181 this.setEditValid (true);
\r
182 }this.setEdited (false);
\r
184 this.firePropertyChangeObject ("value", oldValue, value);
\r
186 Clazz.defineMethod (c$, "setEdited",
\r
187 function (edited) {
\r
188 this.edited = edited;
\r
190 Clazz.defineMethod (c$, "isEdited",
\r
192 return this.edited;
\r
194 Clazz.defineMethod (c$, "getDefaultFormatterFactory",
\r
196 if (Clazz.instanceOf (type, java.text.DateFormat)) {
\r
197 swingjs.JSToolkit.notImplemented (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
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
221 var a = this.b$["javax.swing.JFormattedTextField"].getFocusLostBehavior ();
\r
222 if (a == 0 || a == 1) {
\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
227 if (Clazz.exceptionOf (pe, java.text.ParseException)) {
\r
229 this.b$["javax.swing.JFormattedTextField"].setValue (this.b$["javax.swing.JFormattedTextField"].getValue (), true, true);
\r
234 } else if (a == 2) {
\r
235 this.b$["javax.swing.JFormattedTextField"].setValue (this.b$["javax.swing.JFormattedTextField"].getValue (), true, true);
\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
247 this.b$["javax.swing.JFormattedTextField"].setEdited (true);
\r
248 }, "javax.swing.event.DocumentEvent");
\r
249 Clazz.overrideMethod (c$, "removeUpdate",
\r
251 this.b$["javax.swing.JFormattedTextField"].setEdited (true);
\r
252 }, "javax.swing.event.DocumentEvent");
\r
253 Clazz.overrideMethod (c$, "changedUpdate",
\r
255 }, "javax.swing.event.DocumentEvent");
\r
258 Clazz.pu$h(self.c$);
\r
259 c$ = Clazz.declareType (javax.swing.JFormattedTextField, "AbstractFormatterFactory");
\r
261 Clazz.pu$h(self.c$);
\r
262 c$ = Clazz.decorateAsClass (function () {
\r
264 Clazz.instantialize (this, arguments);
\r
265 }, javax.swing.JFormattedTextField, "AbstractFormatter");
\r
266 Clazz.defineMethod (c$, "install",
\r
268 if (this.ftf != null) {
\r
273 a.setText (this.valueToString (a.getValue ()));
\r
275 if (Clazz.exceptionOf (pe, java.text.ParseException)) {
\r
277 this.setEditValid (false);
\r
282 this.installDocumentFilter (this.getDocumentFilter ());
\r
283 a.setFormatterActions (this.getActions ());
\r
284 }}, "javax.swing.JFormattedTextField");
\r
285 Clazz.defineMethod (c$, "uninstall",
\r
287 if (this.ftf != null) {
\r
288 this.installDocumentFilter (null);
\r
289 this.ftf.setFormatterActions (null);
\r
291 Clazz.defineMethod (c$, "getFormattedTextField",
\r
295 Clazz.defineMethod (c$, "invalidEdit",
\r
297 var a = this.getFormattedTextField ();
\r
301 Clazz.defineMethod (c$, "setEditValid",
\r
303 var b = this.getFormattedTextField ();
\r
305 b.setEditValid (a);
\r
307 Clazz.defineMethod (c$, "getActions",
\r
311 Clazz.defineMethod (c$, "getDocumentFilter",
\r
315 Clazz.defineMethod (c$, "getNavigationFilter",
\r
319 Clazz.defineMethod (c$, "clone",
\r
321 var a = Clazz.superCall (this, javax.swing.JFormattedTextField.AbstractFormatter, "clone", []);
\r
325 Clazz.defineMethod (c$, "installDocumentFilter",
\r
327 var b = this.getFormattedTextField ();
\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
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
339 var b = this.getFocusedComponent ();
\r
340 if (Clazz.instanceOf (b, javax.swing.JFormattedTextField)) {
\r
344 if (Clazz.exceptionOf (pe, java.text.ParseException)) {
\r
345 (b).invalidEdit ();
\r
351 }Clazz.superCall (this, javax.swing.JFormattedTextField.CommitAction, "actionPerformed", [a]);
\r
352 }, "java.awt.event.ActionEvent");
\r
353 Clazz.defineMethod (c$, "isEnabled",
\r
355 var a = this.getFocusedComponent ();
\r
356 if (Clazz.instanceOf (a, javax.swing.JFormattedTextField)) {
\r
358 if (!b.isEdited ()) {
\r
361 }return Clazz.superCall (this, javax.swing.JFormattedTextField.CommitAction, "isEnabled", []);
\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
368 Clazz.superConstructor (this, javax.swing.JFormattedTextField.CancelAction, ["reset-field-edit"]);
\r
370 Clazz.overrideMethod (c$, "actionPerformed",
\r
372 var b = this.getFocusedComponent ();
\r
373 if (Clazz.instanceOf (b, javax.swing.JFormattedTextField)) {
\r
375 c.setValue (c.getValue ());
\r
376 }}, "java.awt.event.ActionEvent");
\r
377 Clazz.defineMethod (c$, "isEnabled",
\r
379 var a = this.getFocusedComponent ();
\r
380 if (Clazz.instanceOf (a, javax.swing.JFormattedTextField)) {
\r
382 if (!b.isEdited ()) {
\r
385 }return Clazz.superCall (this, javax.swing.JFormattedTextField.CancelAction, "isEnabled", []);
\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
393 "COMMIT_OR_REVERT", 1,
\r