1 Clazz.declarePackage ("javax.swing.text");
\r
2 Clazz.load (["javax.swing.text.DefaultFormatter"], "javax.swing.text.MaskFormatter", ["java.lang.Character", "$.StringBuffer", "java.util.ArrayList", "java.text.ParseException"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
5 this.maskChars = null;
\r
6 this.validCharacters = null;
\r
7 this.invalidCharacters = null;
\r
8 this.placeholderString = null;
\r
9 this.placeholder = '\0';
\r
10 this.containsLiteralChars = false;
\r
11 if (!Clazz.isClassDefined ("javax.swing.text.MaskFormatter.MaskCharacter")) {
\r
12 javax.swing.text.MaskFormatter.$MaskFormatter$MaskCharacter$ ();
\r
14 if (!Clazz.isClassDefined ("javax.swing.text.MaskFormatter.LiteralCharacter")) {
\r
15 javax.swing.text.MaskFormatter.$MaskFormatter$LiteralCharacter$ ();
\r
17 if (!Clazz.isClassDefined ("javax.swing.text.MaskFormatter.DigitMaskCharacter")) {
\r
18 javax.swing.text.MaskFormatter.$MaskFormatter$DigitMaskCharacter$ ();
\r
20 if (!Clazz.isClassDefined ("javax.swing.text.MaskFormatter.UpperCaseCharacter")) {
\r
21 javax.swing.text.MaskFormatter.$MaskFormatter$UpperCaseCharacter$ ();
\r
23 if (!Clazz.isClassDefined ("javax.swing.text.MaskFormatter.LowerCaseCharacter")) {
\r
24 javax.swing.text.MaskFormatter.$MaskFormatter$LowerCaseCharacter$ ();
\r
26 if (!Clazz.isClassDefined ("javax.swing.text.MaskFormatter.AlphaNumericCharacter")) {
\r
27 javax.swing.text.MaskFormatter.$MaskFormatter$AlphaNumericCharacter$ ();
\r
29 if (!Clazz.isClassDefined ("javax.swing.text.MaskFormatter.CharCharacter")) {
\r
30 javax.swing.text.MaskFormatter.$MaskFormatter$CharCharacter$ ();
\r
32 if (!Clazz.isClassDefined ("javax.swing.text.MaskFormatter.HexCharacter")) {
\r
33 javax.swing.text.MaskFormatter.$MaskFormatter$HexCharacter$ ();
\r
35 Clazz.instantialize (this, arguments);
\r
36 }, javax.swing.text, "MaskFormatter", javax.swing.text.DefaultFormatter);
\r
37 Clazz.makeConstructor (c$,
\r
39 Clazz.superConstructor (this, javax.swing.text.MaskFormatter, []);
\r
40 this.setAllowsInvalid (false);
\r
41 this.containsLiteralChars = true;
\r
42 this.maskChars = javax.swing.text.MaskFormatter.EmptyMaskChars;
\r
43 this.placeholder = ' ';
\r
45 Clazz.makeConstructor (c$,
\r
48 this.setMask (mask);
\r
50 Clazz.defineMethod (c$, "setMask",
\r
53 this.updateInternalMask ();
\r
55 Clazz.defineMethod (c$, "getMask",
\r
59 Clazz.defineMethod (c$, "setValidCharacters",
\r
60 function (validCharacters) {
\r
61 this.validCharacters = validCharacters;
\r
63 Clazz.defineMethod (c$, "getValidCharacters",
\r
65 return this.validCharacters;
\r
67 Clazz.defineMethod (c$, "setInvalidCharacters",
\r
68 function (invalidCharacters) {
\r
69 this.invalidCharacters = invalidCharacters;
\r
71 Clazz.defineMethod (c$, "getInvalidCharacters",
\r
73 return this.invalidCharacters;
\r
75 Clazz.defineMethod (c$, "setPlaceholder",
\r
76 function (placeholder) {
\r
77 this.placeholderString = placeholder;
\r
79 Clazz.defineMethod (c$, "getPlaceholder",
\r
81 return this.placeholderString;
\r
83 Clazz.defineMethod (c$, "setPlaceholderCharacter",
\r
84 function (placeholder) {
\r
85 this.placeholder = placeholder;
\r
87 Clazz.defineMethod (c$, "getPlaceholderCharacter",
\r
89 return this.placeholder;
\r
91 Clazz.defineMethod (c$, "setValueContainsLiteralCharacters",
\r
92 function (containsLiteralChars) {
\r
93 this.containsLiteralChars = containsLiteralChars;
\r
95 Clazz.defineMethod (c$, "getValueContainsLiteralCharacters",
\r
97 return this.containsLiteralChars;
\r
99 Clazz.defineMethod (c$, "stringToValue",
\r
101 return this.stringToValue (value, true);
\r
103 Clazz.overrideMethod (c$, "valueToString",
\r
105 var sValue = (value == null) ? "" : value.toString ();
\r
106 var result = new StringBuffer ();
\r
107 var placeholder = this.getPlaceholder ();
\r
108 var valueCounter = Clazz.newIntArray (-1, [0]);
\r
109 this.append (result, sValue, valueCounter, placeholder, this.maskChars);
\r
110 return result.toString ();
\r
112 Clazz.defineMethod (c$, "install",
\r
114 Clazz.superCall (this, javax.swing.text.MaskFormatter, "install", [ftf]);
\r
116 var value = ftf.getValue ();
\r
118 this.stringToValue (this.valueToString (value));
\r
120 if (Clazz.exceptionOf (pe, java.text.ParseException)) {
\r
121 this.setEditValid (false);
\r
126 }}, "javax.swing.JFormattedTextField");
\r
127 Clazz.defineMethod (c$, "stringToValue",
\r
128 function (value, completeMatch) {
\r
129 var errorOffset = -1;
\r
130 if ((errorOffset = this.getInvalidOffset (value, completeMatch)) == -1) {
\r
131 if (!this.getValueContainsLiteralCharacters ()) {
\r
132 value = this.stripLiteralChars (value);
\r
133 }return Clazz.superCall (this, javax.swing.text.MaskFormatter, "stringToValue", [value]);
\r
134 }throw new java.text.ParseException ("stringToValue passed invalid value", errorOffset);
\r
136 Clazz.defineMethod (c$, "getInvalidOffset",
\r
137 function (string, completeMatch) {
\r
138 var iLength = string.length;
\r
139 if (iLength != this.getMaxLength ()) {
\r
141 }for (var counter = 0, max = string.length; counter < max; counter++) {
\r
142 var aChar = string.charAt (counter);
\r
143 if (!this.isValidCharacter (counter, aChar) && (completeMatch || !this.isPlaceholder (counter, aChar))) {
\r
148 Clazz.defineMethod (c$, "append",
\r
149 function (result, value, index, placeholder, mask) {
\r
150 for (var counter = 0, maxCounter = mask.length; counter < maxCounter; counter++) {
\r
151 mask[counter].append (result, value, index, placeholder);
\r
153 }, "StringBuffer,~S,~A,~S,~A");
\r
154 Clazz.defineMethod (c$, "updateInternalMask",
\r
156 var mask = this.getMask ();
\r
157 var fixed = new java.util.ArrayList ();
\r
159 if (mask != null) {
\r
160 for (var counter = 0, maxCounter = mask.length; counter < maxCounter; counter++) {
\r
161 var maskChar = mask.charAt (counter);
\r
162 switch (maskChar) {
\r
164 temp.add (Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.DigitMaskCharacter, this, null));
\r
167 if (++counter < maxCounter) {
\r
168 maskChar = mask.charAt (counter);
\r
169 temp.add (Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.LiteralCharacter, this, null, maskChar));
\r
172 temp.add (Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.UpperCaseCharacter, this, null));
\r
175 temp.add (Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.LowerCaseCharacter, this, null));
\r
178 temp.add (Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.AlphaNumericCharacter, this, null));
\r
181 temp.add (Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.CharCharacter, this, null));
\r
184 temp.add (Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.MaskCharacter, this, null));
\r
187 temp.add (Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.HexCharacter, this, null));
\r
190 temp.add (Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.LiteralCharacter, this, null, maskChar));
\r
194 }if (fixed.size () == 0) {
\r
195 this.maskChars = javax.swing.text.MaskFormatter.EmptyMaskChars;
\r
197 this.maskChars = new Array (fixed.size ());
\r
198 fixed.toArray (this.maskChars);
\r
200 Clazz.defineMethod (c$, "getMaskCharacter",
\r
202 if (index >= this.maskChars.length) {
\r
204 }return this.maskChars[index];
\r
206 Clazz.defineMethod (c$, "isPlaceholder",
\r
207 function (index, aChar) {
\r
208 return (this.getPlaceholderCharacter () == aChar);
\r
210 Clazz.defineMethod (c$, "isValidCharacter",
\r
211 function (index, aChar) {
\r
212 return this.getMaskCharacter (index).isValidCharacter (aChar);
\r
214 Clazz.defineMethod (c$, "isLiteral",
\r
216 return this.getMaskCharacter (index).isLiteral ();
\r
218 Clazz.defineMethod (c$, "getMaxLength",
\r
220 return this.maskChars.length;
\r
222 Clazz.defineMethod (c$, "getLiteral",
\r
224 return this.getMaskCharacter (index).getChar (String.fromCharCode (0));
\r
226 Clazz.defineMethod (c$, "getCharacter",
\r
227 function (index, aChar) {
\r
228 return this.getMaskCharacter (index).getChar (aChar);
\r
230 Clazz.defineMethod (c$, "stripLiteralChars",
\r
231 function (string) {
\r
234 for (var counter = 0, max = string.length; counter < max; counter++) {
\r
235 if (this.isLiteral (counter)) {
\r
237 sb = new StringBuffer ();
\r
239 sb.append (string.substring (0, counter));
\r
240 }last = counter + 1;
\r
241 } else if (last != counter) {
\r
242 sb.append (string.substring (last, counter));
\r
243 }last = counter + 1;
\r
247 } else if (last != string.length) {
\r
248 sb.append (string.substring (last));
\r
249 }return sb.toString ();
\r
251 Clazz.overrideMethod (c$, "isNavigatable",
\r
252 function (offset) {
\r
253 if (!this.getAllowsInvalid ()) {
\r
254 return (offset < this.getMaxLength () && !this.isLiteral (offset));
\r
257 Clazz.overrideMethod (c$, "isValidEdit",
\r
259 if (!this.getAllowsInvalid ()) {
\r
260 var newString = this.getReplaceString (rh.offset, rh.length, rh.text);
\r
262 rh.value = this.stringToValue (newString, false);
\r
265 if (Clazz.exceptionOf (pe, java.text.ParseException)) {
\r
272 }, "javax.swing.text.DefaultFormatter.ReplaceHolder");
\r
273 Clazz.defineMethod (c$, "canReplace",
\r
275 if (!this.getAllowsInvalid ()) {
\r
276 var replace = null;
\r
277 var text = rh.text;
\r
278 var tl = (text != null) ? text.length : 0;
\r
279 if (tl == 0 && rh.length == 1 && this.getFormattedTextField ().getSelectionStart () != rh.offset) {
\r
280 while (rh.offset > 0 && this.isLiteral (rh.offset)) {
\r
283 }var max = Math.min (this.getMaxLength () - rh.offset, Math.max (tl, rh.length));
\r
284 for (var counter = 0, textIndex = 0; counter < max; counter++) {
\r
285 if (textIndex < tl && this.isValidCharacter (rh.offset + counter, text.charAt (textIndex))) {
\r
286 var aChar = text.charAt (textIndex);
\r
287 if (aChar != this.getCharacter (rh.offset + counter, aChar)) {
\r
288 if (replace == null) {
\r
289 replace = new StringBuffer ();
\r
290 if (textIndex > 0) {
\r
291 replace.append (text.substring (0, textIndex));
\r
292 }}}if (replace != null) {
\r
293 replace.append (this.getCharacter (rh.offset + counter, aChar));
\r
295 } else if (this.isLiteral (rh.offset + counter)) {
\r
296 if (replace != null) {
\r
297 replace.append (this.getLiteral (rh.offset + counter));
\r
298 if (textIndex < tl) {
\r
299 max = Math.min (max + 1, this.getMaxLength () - rh.offset);
\r
300 }} else if (textIndex > 0) {
\r
301 replace = new StringBuffer (max);
\r
302 replace.append (text.substring (0, textIndex));
\r
303 replace.append (this.getLiteral (rh.offset + counter));
\r
304 if (textIndex < tl) {
\r
305 max = Math.min (max + 1, this.getMaxLength () - rh.offset);
\r
306 } else if (rh.cursorPosition == -1) {
\r
307 rh.cursorPosition = rh.offset + counter;
\r
313 }} else if (textIndex >= tl) {
\r
314 if (replace == null) {
\r
315 replace = new StringBuffer ();
\r
316 if (text != null) {
\r
317 replace.append (text);
\r
318 }}replace.append (this.getPlaceholderCharacter ());
\r
319 if (tl > 0 && rh.cursorPosition == -1) {
\r
320 rh.cursorPosition = rh.offset + counter;
\r
324 if (replace != null) {
\r
325 rh.text = replace.toString ();
\r
326 } else if (text != null && rh.offset + tl > this.getMaxLength ()) {
\r
327 rh.text = text.substring (0, this.getMaxLength () - rh.offset);
\r
328 }if (this.getOverwriteMode () && rh.text != null) {
\r
329 rh.length = rh.text.length;
\r
330 }}return Clazz.superCall (this, javax.swing.text.MaskFormatter, "canReplace", [rh]);
\r
331 }, "javax.swing.text.DefaultFormatter.ReplaceHolder");
\r
332 c$.$MaskFormatter$MaskCharacter$ = function () {
\r
333 Clazz.pu$h(self.c$);
\r
334 c$ = Clazz.decorateAsClass (function () {
\r
335 Clazz.prepareCallback (this, arguments);
\r
336 Clazz.instantialize (this, arguments);
\r
337 }, javax.swing.text.MaskFormatter, "MaskCharacter");
\r
338 Clazz.defineMethod (c$, "isLiteral",
\r
342 Clazz.defineMethod (c$, "isValidCharacter",
\r
344 if (this.isLiteral ()) {
\r
345 return (this.getChar (a) == a);
\r
346 }a = this.getChar (a);
\r
347 var b = this.b$["javax.swing.text.MaskFormatter"].getValidCharacters ();
\r
348 if (b != null && b.indexOf (a) == -1) {
\r
350 }b = this.b$["javax.swing.text.MaskFormatter"].getInvalidCharacters ();
\r
351 if (b != null && b.indexOf (a) != -1) {
\r
355 Clazz.defineMethod (c$, "getChar",
\r
359 Clazz.defineMethod (c$, "append",
\r
360 function (a, b, c, d) {
\r
361 var e = c[0] < b.length;
\r
362 var f = e ? b.charAt (c[0]) : 0;
\r
363 if (this.isLiteral ()) {
\r
364 a.append (this.getChar (f));
\r
365 if (this.b$["javax.swing.text.MaskFormatter"].getValueContainsLiteralCharacters ()) {
\r
366 if (e && f != this.getChar (f)) {
\r
367 throw new java.text.ParseException ("Invalid character: " + f, c[0]);
\r
369 }} else if (c[0] >= b.length) {
\r
370 if (d != null && c[0] < d.length) {
\r
371 a.append (d.charAt (c[0]));
\r
373 a.append (this.b$["javax.swing.text.MaskFormatter"].getPlaceholderCharacter ());
\r
375 } else if (this.isValidCharacter (f)) {
\r
376 a.append (this.getChar (f));
\r
379 throw new java.text.ParseException ("Invalid character: " + f, c[0]);
\r
380 }}, "StringBuffer,~S,~A,~S");
\r
383 c$.$MaskFormatter$LiteralCharacter$ = function () {
\r
384 Clazz.pu$h(self.c$);
\r
385 c$ = Clazz.decorateAsClass (function () {
\r
386 Clazz.prepareCallback (this, arguments);
\r
387 this.fixedChar = '\0';
\r
388 Clazz.instantialize (this, arguments);
\r
389 }, javax.swing.text.MaskFormatter, "LiteralCharacter", javax.swing.text.MaskFormatter.MaskCharacter, null, Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.MaskCharacter, this, null, Clazz.inheritArgs));
\r
390 Clazz.makeConstructor (c$,
\r
392 Clazz.superConstructor (this, javax.swing.text.MaskFormatter.LiteralCharacter, []);
\r
393 this.fixedChar = a;
\r
395 Clazz.overrideMethod (c$, "isLiteral",
\r
399 Clazz.overrideMethod (c$, "getChar",
\r
401 return this.fixedChar;
\r
405 c$.$MaskFormatter$DigitMaskCharacter$ = function () {
\r
406 Clazz.pu$h(self.c$);
\r
407 c$ = Clazz.decorateAsClass (function () {
\r
408 Clazz.prepareCallback (this, arguments);
\r
409 Clazz.instantialize (this, arguments);
\r
410 }, javax.swing.text.MaskFormatter, "DigitMaskCharacter", javax.swing.text.MaskFormatter.MaskCharacter, null, Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.MaskCharacter, this, null, Clazz.inheritArgs));
\r
411 Clazz.defineMethod (c$, "isValidCharacter",
\r
413 return (Character.isDigit (a) && Clazz.superCall (this, javax.swing.text.MaskFormatter.DigitMaskCharacter, "isValidCharacter", [a]));
\r
417 c$.$MaskFormatter$UpperCaseCharacter$ = function () {
\r
418 Clazz.pu$h(self.c$);
\r
419 c$ = Clazz.decorateAsClass (function () {
\r
420 Clazz.prepareCallback (this, arguments);
\r
421 Clazz.instantialize (this, arguments);
\r
422 }, javax.swing.text.MaskFormatter, "UpperCaseCharacter", javax.swing.text.MaskFormatter.MaskCharacter, null, Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.MaskCharacter, this, null, Clazz.inheritArgs));
\r
423 Clazz.defineMethod (c$, "isValidCharacter",
\r
425 return (Character.isLetter (a) && Clazz.superCall (this, javax.swing.text.MaskFormatter.UpperCaseCharacter, "isValidCharacter", [a]));
\r
427 Clazz.overrideMethod (c$, "getChar",
\r
429 return Character.toUpperCase (a);
\r
433 c$.$MaskFormatter$LowerCaseCharacter$ = function () {
\r
434 Clazz.pu$h(self.c$);
\r
435 c$ = Clazz.decorateAsClass (function () {
\r
436 Clazz.prepareCallback (this, arguments);
\r
437 Clazz.instantialize (this, arguments);
\r
438 }, javax.swing.text.MaskFormatter, "LowerCaseCharacter", javax.swing.text.MaskFormatter.MaskCharacter, null, Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.MaskCharacter, this, null, Clazz.inheritArgs));
\r
439 Clazz.defineMethod (c$, "isValidCharacter",
\r
441 return (Character.isLetter (a) && Clazz.superCall (this, javax.swing.text.MaskFormatter.LowerCaseCharacter, "isValidCharacter", [a]));
\r
443 Clazz.overrideMethod (c$, "getChar",
\r
445 return Character.toLowerCase (a);
\r
449 c$.$MaskFormatter$AlphaNumericCharacter$ = function () {
\r
450 Clazz.pu$h(self.c$);
\r
451 c$ = Clazz.decorateAsClass (function () {
\r
452 Clazz.prepareCallback (this, arguments);
\r
453 Clazz.instantialize (this, arguments);
\r
454 }, javax.swing.text.MaskFormatter, "AlphaNumericCharacter", javax.swing.text.MaskFormatter.MaskCharacter, null, Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.MaskCharacter, this, null, Clazz.inheritArgs));
\r
455 Clazz.defineMethod (c$, "isValidCharacter",
\r
457 return (Character.isLetterOrDigit (a) && Clazz.superCall (this, javax.swing.text.MaskFormatter.AlphaNumericCharacter, "isValidCharacter", [a]));
\r
461 c$.$MaskFormatter$CharCharacter$ = function () {
\r
462 Clazz.pu$h(self.c$);
\r
463 c$ = Clazz.decorateAsClass (function () {
\r
464 Clazz.prepareCallback (this, arguments);
\r
465 Clazz.instantialize (this, arguments);
\r
466 }, javax.swing.text.MaskFormatter, "CharCharacter", javax.swing.text.MaskFormatter.MaskCharacter, null, Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.MaskCharacter, this, null, Clazz.inheritArgs));
\r
467 Clazz.defineMethod (c$, "isValidCharacter",
\r
469 return (Character.isLetter (a) && Clazz.superCall (this, javax.swing.text.MaskFormatter.CharCharacter, "isValidCharacter", [a]));
\r
473 c$.$MaskFormatter$HexCharacter$ = function () {
\r
474 Clazz.pu$h(self.c$);
\r
475 c$ = Clazz.decorateAsClass (function () {
\r
476 Clazz.prepareCallback (this, arguments);
\r
477 Clazz.instantialize (this, arguments);
\r
478 }, javax.swing.text.MaskFormatter, "HexCharacter", javax.swing.text.MaskFormatter.MaskCharacter, null, Clazz.innerTypeInstance (javax.swing.text.MaskFormatter.MaskCharacter, this, null, Clazz.inheritArgs));
\r
479 Clazz.defineMethod (c$, "isValidCharacter",
\r
481 return ((a == '0' || a == '1' || a == '2' || a == '3' || a == '4' || a == '5' || a == '6' || a == '7' || a == '8' || a == '9' || a == 'a' || a == 'A' || a == 'b' || a == 'B' || a == 'c' || a == 'C' || a == 'd' || a == 'D' || a == 'e' || a == 'E' || a == 'f' || a == 'F') && Clazz.superCall (this, javax.swing.text.MaskFormatter.HexCharacter, "isValidCharacter", [a]));
\r
483 Clazz.overrideMethod (c$, "getChar",
\r
485 if (Character.isDigit (a)) {
\r
487 }return Character.toUpperCase (a);
\r
491 Clazz.defineStatics (c$,
\r
493 "LITERAL_KEY", '\'',
\r
494 "UPPERCASE_KEY", 'U',
\r
495 "LOWERCASE_KEY", 'L',
\r
496 "ALPHA_NUMERIC_KEY", 'A',
\r
497 "CHARACTER_KEY", '?',
\r
498 "ANYTHING_KEY", '*',
\r
500 c$.EmptyMaskChars = c$.prototype.EmptyMaskChars = new Array (0);
\r