Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / javax / swing / text / DefaultFormatter.js
index 6f81c49..c300e3d 100644 (file)
-Clazz.declarePackage ("javax.swing.text");\r
-Clazz.load (["javax.swing.JFormattedTextField", "javax.swing.text.DocumentFilter", "$.NavigationFilter"], "javax.swing.text.DefaultFormatter", ["javax.swing.text.Position", "$.Utilities"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.allowsInvalid = false;\r
-this.overwriteMode = false;\r
-this.commitOnEdit = false;\r
-this.valueClass = null;\r
-this.navigationFilter = null;\r
-this.documentFilter = null;\r
-this.replaceHolder = null;\r
-if (!Clazz.isClassDefined ("javax.swing.text.DefaultFormatter.DefaultNavigationFilter")) {\r
-javax.swing.text.DefaultFormatter.$DefaultFormatter$DefaultNavigationFilter$ ();\r
-}\r
-if (!Clazz.isClassDefined ("javax.swing.text.DefaultFormatter.DefaultDocumentFilter")) {\r
-javax.swing.text.DefaultFormatter.$DefaultFormatter$DefaultDocumentFilter$ ();\r
-}\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text, "DefaultFormatter", javax.swing.JFormattedTextField.AbstractFormatter, Cloneable);\r
-Clazz.makeConstructor (c$, \r
-function () {\r
-Clazz.superConstructor (this, javax.swing.text.DefaultFormatter, []);\r
-this.overwriteMode = true;\r
-this.allowsInvalid = true;\r
-});\r
-Clazz.defineMethod (c$, "install", \r
-function (ftf) {\r
-Clazz.superCall (this, javax.swing.text.DefaultFormatter, "install", [ftf]);\r
-this.positionCursorAtInitialLocation ();\r
-}, "javax.swing.JFormattedTextField");\r
-Clazz.defineMethod (c$, "setCommitsOnValidEdit", \r
-function (commit) {\r
-this.commitOnEdit = commit;\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getCommitsOnValidEdit", \r
-function () {\r
-return this.commitOnEdit;\r
-});\r
-Clazz.defineMethod (c$, "setOverwriteMode", \r
-function (overwriteMode) {\r
-this.overwriteMode = overwriteMode;\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getOverwriteMode", \r
-function () {\r
-return this.overwriteMode;\r
-});\r
-Clazz.defineMethod (c$, "setAllowsInvalid", \r
-function (allowsInvalid) {\r
-this.allowsInvalid = allowsInvalid;\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getAllowsInvalid", \r
-function () {\r
-return this.allowsInvalid;\r
-});\r
-Clazz.defineMethod (c$, "setValueClass", \r
-function (valueClass) {\r
-this.valueClass = valueClass;\r
-}, "Class");\r
-Clazz.defineMethod (c$, "getValueClass", \r
-function () {\r
-return this.valueClass;\r
-});\r
-Clazz.overrideMethod (c$, "stringToValue", \r
-function (string) {\r
-var vc = this.getValueClass ();\r
-var ftf = this.getFormattedTextField ();\r
-if (vc == null && ftf != null) {\r
-var value = ftf.getValue ();\r
-if (value != null) {\r
-vc = value.getClass ();\r
-}}return string;\r
-}, "~S");\r
-Clazz.overrideMethod (c$, "valueToString", \r
-function (value) {\r
-if (value == null) {\r
-return "";\r
-}return value.toString ();\r
-}, "~O");\r
-Clazz.overrideMethod (c$, "getDocumentFilter", \r
-function () {\r
-if (this.documentFilter == null) {\r
-this.documentFilter = Clazz.innerTypeInstance (javax.swing.text.DefaultFormatter.DefaultDocumentFilter, this, null);\r
-}return this.documentFilter;\r
-});\r
-Clazz.overrideMethod (c$, "getNavigationFilter", \r
-function () {\r
-if (this.navigationFilter == null) {\r
-this.navigationFilter = Clazz.innerTypeInstance (javax.swing.text.DefaultFormatter.DefaultNavigationFilter, this, null);\r
-}return this.navigationFilter;\r
-});\r
-Clazz.defineMethod (c$, "clone", \r
-function () {\r
-var formatter = Clazz.superCall (this, javax.swing.text.DefaultFormatter, "clone", []);\r
-formatter.navigationFilter = null;\r
-formatter.documentFilter = null;\r
-formatter.replaceHolder = null;\r
-return formatter;\r
-});\r
-Clazz.defineMethod (c$, "positionCursorAtInitialLocation", \r
-function () {\r
-var ftf = this.getFormattedTextField ();\r
-if (ftf != null) {\r
-ftf.setCaretPosition (this.getInitialVisualPosition ());\r
-}});\r
-Clazz.defineMethod (c$, "getInitialVisualPosition", \r
-function () {\r
-return this.getNextNavigatableChar (0, 1);\r
-});\r
-Clazz.defineMethod (c$, "isNavigatable", \r
-function (offset) {\r
-return true;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "isLegalInsertText", \r
-function (text) {\r
-return true;\r
-}, "~S");\r
-Clazz.defineMethod (c$, "getNextNavigatableChar", \r
- function (offset, direction) {\r
-var max = this.getFormattedTextField ().getDocument ().getLength ();\r
-while (offset >= 0 && offset < max) {\r
-if (this.isNavigatable (offset)) {\r
-return offset;\r
-}offset += direction;\r
-}\r
-return offset;\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "getReplaceString", \r
-function (offset, deleteLength, replaceString) {\r
-var string = this.getFormattedTextField ().getText ();\r
-var result;\r
-result = string.substring (0, offset);\r
-if (replaceString != null) {\r
-result += replaceString;\r
-}if (offset + deleteLength < string.length) {\r
-result += string.substring (offset + deleteLength);\r
-}return result;\r
-}, "~N,~N,~S");\r
-Clazz.defineMethod (c$, "isValidEdit", \r
-function (rh) {\r
-if (!this.getAllowsInvalid ()) {\r
-var newString = this.getReplaceString (rh.offset, rh.length, rh.text);\r
-try {\r
-rh.value = this.stringToValue (newString);\r
-return true;\r
-} catch (pe) {\r
-if (Clazz.exceptionOf (pe, java.text.ParseException)) {\r
-return false;\r
-} else {\r
-throw pe;\r
-}\r
-}\r
-}return true;\r
-}, "javax.swing.text.DefaultFormatter.ReplaceHolder");\r
-Clazz.defineMethod (c$, "commitEdit", \r
-function () {\r
-var ftf = this.getFormattedTextField ();\r
-});\r
-Clazz.defineMethod (c$, "updateValue", \r
-function () {\r
-this.updateValue (null);\r
-});\r
-Clazz.defineMethod (c$, "updateValue", \r
-function (value) {\r
-try {\r
-if (value == null) {\r
-var string = this.getFormattedTextField ().getText ();\r
-value = this.stringToValue (string);\r
-}if (this.getCommitsOnValidEdit ()) {\r
-this.commitEdit ();\r
-}this.setEditValid (true);\r
-} catch (pe) {\r
-if (Clazz.exceptionOf (pe, java.text.ParseException)) {\r
-this.setEditValid (false);\r
-} else {\r
-throw pe;\r
-}\r
-}\r
-}, "~O");\r
-Clazz.defineMethod (c$, "getNextCursorPosition", \r
-function (offset, direction) {\r
-var newOffset = this.getNextNavigatableChar (offset, direction);\r
-var max = this.getFormattedTextField ().getDocument ().getLength ();\r
-if (!this.getAllowsInvalid ()) {\r
-if (direction == -1 && offset == newOffset) {\r
-newOffset = this.getNextNavigatableChar (newOffset, 1);\r
-if (newOffset >= max) {\r
-newOffset = offset;\r
-}} else if (direction == 1 && newOffset >= max) {\r
-newOffset = this.getNextNavigatableChar (max - 1, -1);\r
-if (newOffset < max) {\r
-newOffset++;\r
-}}}return newOffset;\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "repositionCursor", \r
-function (offset, direction) {\r
-this.getFormattedTextField ().getCaret ().setDot (this.getNextCursorPosition (offset, direction));\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "getNextVisualPositionFrom", \r
-function (text, pos, bias, direction, biasRet) {\r
-var value = text.getUI ().getNextVisualPositionFrom (text, pos, bias, direction, biasRet);\r
-if (value == -1) {\r
-return -1;\r
-}if (!this.getAllowsInvalid () && (direction == 3 || direction == 7)) {\r
-var last = -1;\r
-while (!this.isNavigatable (value) && value != last) {\r
-last = value;\r
-value = text.getUI ().getNextVisualPositionFrom (text, value, bias, direction, biasRet);\r
-}\r
-var max = this.getFormattedTextField ().getDocument ().getLength ();\r
-if (last == value || value == max) {\r
-if (value == 0) {\r
-biasRet[0] = javax.swing.text.Position.Bias.Forward;\r
-value = this.getInitialVisualPosition ();\r
-}if (value >= max && max > 0) {\r
-biasRet[0] = javax.swing.text.Position.Bias.Forward;\r
-value = this.getNextNavigatableChar (max - 1, -1) + 1;\r
-}}}return value;\r
-}, "javax.swing.text.JTextComponent,~N,javax.swing.text.Position.Bias,~N,~A");\r
-Clazz.defineMethod (c$, "canReplace", \r
-function (rh) {\r
-return this.isValidEdit (rh);\r
-}, "javax.swing.text.DefaultFormatter.ReplaceHolder");\r
-Clazz.defineMethod (c$, "replace", \r
-function (fb, offset, length, text, attrs) {\r
-var rh = this.getReplaceHolder (fb, offset, length, text, attrs);\r
-this.replace (rh);\r
-}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N,~S,javax.swing.text.AttributeSet");\r
-Clazz.defineMethod (c$, "replace", \r
-function (rh) {\r
-var valid = true;\r
-var direction = 1;\r
-if (rh.length > 0 && (rh.text == null || rh.text.length == 0) && (this.getFormattedTextField ().getSelectionStart () != rh.offset || rh.length > 1)) {\r
-direction = -1;\r
-}if (this.getOverwriteMode () && rh.text != null) {\r
-rh.length = Math.min (Math.max (rh.length, rh.text.length), rh.fb.getDocument ().getLength () - rh.offset);\r
-}if ((rh.text != null && !this.isLegalInsertText (rh.text)) || !this.canReplace (rh) || (rh.length == 0 && (rh.text == null || rh.text.length == 0))) {\r
-valid = false;\r
-}if (valid) {\r
-var cursor = rh.cursorPosition;\r
-rh.fb.replace (rh.offset, rh.length, rh.text, rh.attrs);\r
-if (cursor == -1) {\r
-cursor = rh.offset;\r
-if (direction == 1 && rh.text != null) {\r
-cursor = rh.offset + rh.text.length;\r
-}}this.updateValue (rh.value);\r
-this.repositionCursor (cursor, direction);\r
-return true;\r
-} else {\r
-this.invalidEdit ();\r
-}return false;\r
-}, "javax.swing.text.DefaultFormatter.ReplaceHolder");\r
-Clazz.defineMethod (c$, "setDot", \r
-function (fb, dot, bias) {\r
-fb.setDot (dot, bias);\r
-}, "javax.swing.text.NavigationFilter.FilterBypass,~N,javax.swing.text.Position.Bias");\r
-Clazz.defineMethod (c$, "moveDot", \r
-function (fb, dot, bias) {\r
-fb.moveDot (dot, bias);\r
-}, "javax.swing.text.NavigationFilter.FilterBypass,~N,javax.swing.text.Position.Bias");\r
-Clazz.defineMethod (c$, "getReplaceHolder", \r
-function (fb, offset, length, text, attrs) {\r
-if (this.replaceHolder == null) {\r
-this.replaceHolder =  new javax.swing.text.DefaultFormatter.ReplaceHolder ();\r
-}this.replaceHolder.reset (fb, offset, length, text, attrs);\r
-return this.replaceHolder;\r
-}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N,~S,javax.swing.text.AttributeSet");\r
-c$.$DefaultFormatter$DefaultNavigationFilter$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text.DefaultFormatter, "DefaultNavigationFilter", javax.swing.text.NavigationFilter);\r
-Clazz.overrideMethod (c$, "setDot", \r
-function (a, b, c) {\r
-var d = this.b$["javax.swing.text.DefaultFormatter"].getFormattedTextField ();\r
-if (d.composedTextExists ()) {\r
-a.setDot (b, c);\r
-} else {\r
-this.b$["javax.swing.text.DefaultFormatter"].setDot (a, b, c);\r
-}}, "javax.swing.text.NavigationFilter.FilterBypass,~N,javax.swing.text.Position.Bias");\r
-Clazz.overrideMethod (c$, "moveDot", \r
-function (a, b, c) {\r
-var d = this.b$["javax.swing.text.DefaultFormatter"].getFormattedTextField ();\r
-if (d.composedTextExists ()) {\r
-a.moveDot (b, c);\r
-} else {\r
-this.b$["javax.swing.text.DefaultFormatter"].moveDot (a, b, c);\r
-}}, "javax.swing.text.NavigationFilter.FilterBypass,~N,javax.swing.text.Position.Bias");\r
-Clazz.overrideMethod (c$, "getNextVisualPositionFrom", \r
-function (a, b, c, d, e) {\r
-if (a.composedTextExists ()) {\r
-return a.getUI ().getNextVisualPositionFrom (a, b, c, d, e);\r
-} else {\r
-return this.b$["javax.swing.text.DefaultFormatter"].getNextVisualPositionFrom (a, b, c, d, e);\r
-}}, "javax.swing.text.JTextComponent,~N,javax.swing.text.Position.Bias,~N,~A");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$DefaultFormatter$DefaultDocumentFilter$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text.DefaultFormatter, "DefaultDocumentFilter", javax.swing.text.DocumentFilter);\r
-Clazz.overrideMethod (c$, "remove", \r
-function (a, b, c) {\r
-var d = this.b$["javax.swing.text.DefaultFormatter"].getFormattedTextField ();\r
-if (d.composedTextExists ()) {\r
-a.remove (b, c);\r
-} else {\r
-this.b$["javax.swing.text.DefaultFormatter"].replace (a, b, c, null, null);\r
-}}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N");\r
-Clazz.overrideMethod (c$, "insertString", \r
-function (a, b, c, d) {\r
-var e = this.b$["javax.swing.text.DefaultFormatter"].getFormattedTextField ();\r
-if (e.composedTextExists () || javax.swing.text.Utilities.isComposedTextAttributeDefined (d)) {\r
-a.insertString (b, c, d);\r
-} else {\r
-this.b$["javax.swing.text.DefaultFormatter"].replace (a, b, 0, c, d);\r
-}}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~S,javax.swing.text.AttributeSet");\r
-Clazz.overrideMethod (c$, "replace", \r
-function (a, b, c, d, e) {\r
-var f = this.b$["javax.swing.text.DefaultFormatter"].getFormattedTextField ();\r
-if (f.composedTextExists () || javax.swing.text.Utilities.isComposedTextAttributeDefined (e)) {\r
-a.replace (b, c, d, e);\r
-} else {\r
-this.b$["javax.swing.text.DefaultFormatter"].replace (a, b, c, d, e);\r
-}}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N,~S,javax.swing.text.AttributeSet");\r
-c$ = Clazz.p0p ();\r
-};\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.fb = null;\r
-this.offset = 0;\r
-this.length = 0;\r
-this.text = null;\r
-this.attrs = null;\r
-this.value = null;\r
-this.cursorPosition = 0;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text.DefaultFormatter, "ReplaceHolder");\r
-Clazz.defineMethod (c$, "reset", \r
-function (a, b, c, d, e) {\r
-this.fb = a;\r
-this.offset = b;\r
-this.length = c;\r
-this.text = d;\r
-this.attrs = e;\r
-this.value = null;\r
-this.cursorPosition = -1;\r
-}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N,~S,javax.swing.text.AttributeSet");\r
-c$ = Clazz.p0p ();\r
-});\r
+Clazz.declarePackage ("javax.swing.text");
+Clazz.load (["javax.swing.JFormattedTextField", "javax.swing.text.DocumentFilter", "$.NavigationFilter"], "javax.swing.text.DefaultFormatter", ["javax.swing.text.Position", "$.Utilities"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.allowsInvalid = false;
+this.overwriteMode = false;
+this.commitOnEdit = false;
+this.valueClass = null;
+this.navigationFilter = null;
+this.documentFilter = null;
+this.replaceHolder = null;
+if (!Clazz.isClassDefined ("javax.swing.text.DefaultFormatter.DefaultNavigationFilter")) {
+javax.swing.text.DefaultFormatter.$DefaultFormatter$DefaultNavigationFilter$ ();
+}
+if (!Clazz.isClassDefined ("javax.swing.text.DefaultFormatter.DefaultDocumentFilter")) {
+javax.swing.text.DefaultFormatter.$DefaultFormatter$DefaultDocumentFilter$ ();
+}
+Clazz.instantialize (this, arguments);
+}, javax.swing.text, "DefaultFormatter", javax.swing.JFormattedTextField.AbstractFormatter, Cloneable);
+Clazz.makeConstructor (c$, 
+function () {
+Clazz.superConstructor (this, javax.swing.text.DefaultFormatter, []);
+this.overwriteMode = true;
+this.allowsInvalid = true;
+});
+Clazz.defineMethod (c$, "install", 
+function (ftf) {
+Clazz.superCall (this, javax.swing.text.DefaultFormatter, "install", [ftf]);
+this.positionCursorAtInitialLocation ();
+}, "javax.swing.JFormattedTextField");
+Clazz.defineMethod (c$, "setCommitsOnValidEdit", 
+function (commit) {
+this.commitOnEdit = commit;
+}, "~B");
+Clazz.defineMethod (c$, "getCommitsOnValidEdit", 
+function () {
+return this.commitOnEdit;
+});
+Clazz.defineMethod (c$, "setOverwriteMode", 
+function (overwriteMode) {
+this.overwriteMode = overwriteMode;
+}, "~B");
+Clazz.defineMethod (c$, "getOverwriteMode", 
+function () {
+return this.overwriteMode;
+});
+Clazz.defineMethod (c$, "setAllowsInvalid", 
+function (allowsInvalid) {
+this.allowsInvalid = allowsInvalid;
+}, "~B");
+Clazz.defineMethod (c$, "getAllowsInvalid", 
+function () {
+return this.allowsInvalid;
+});
+Clazz.defineMethod (c$, "setValueClass", 
+function (valueClass) {
+this.valueClass = valueClass;
+}, "Class");
+Clazz.defineMethod (c$, "getValueClass", 
+function () {
+return this.valueClass;
+});
+Clazz.overrideMethod (c$, "stringToValue", 
+function (string) {
+var vc = this.getValueClass ();
+var ftf = this.getFormattedTextField ();
+if (vc == null && ftf != null) {
+var value = ftf.getValue ();
+if (value != null) {
+vc = value.getClass ();
+}}return string;
+}, "~S");
+Clazz.overrideMethod (c$, "valueToString", 
+function (value) {
+if (value == null) {
+return "";
+}return value.toString ();
+}, "~O");
+Clazz.overrideMethod (c$, "getDocumentFilter", 
+function () {
+if (this.documentFilter == null) {
+this.documentFilter = Clazz.innerTypeInstance (javax.swing.text.DefaultFormatter.DefaultDocumentFilter, this, null);
+}return this.documentFilter;
+});
+Clazz.overrideMethod (c$, "getNavigationFilter", 
+function () {
+if (this.navigationFilter == null) {
+this.navigationFilter = Clazz.innerTypeInstance (javax.swing.text.DefaultFormatter.DefaultNavigationFilter, this, null);
+}return this.navigationFilter;
+});
+Clazz.defineMethod (c$, "clone", 
+function () {
+var formatter = Clazz.superCall (this, javax.swing.text.DefaultFormatter, "clone", []);
+formatter.navigationFilter = null;
+formatter.documentFilter = null;
+formatter.replaceHolder = null;
+return formatter;
+});
+Clazz.defineMethod (c$, "positionCursorAtInitialLocation", 
+function () {
+var ftf = this.getFormattedTextField ();
+if (ftf != null) {
+ftf.setCaretPosition (this.getInitialVisualPosition ());
+}});
+Clazz.defineMethod (c$, "getInitialVisualPosition", 
+function () {
+return this.getNextNavigatableChar (0, 1);
+});
+Clazz.defineMethod (c$, "isNavigatable", 
+function (offset) {
+return true;
+}, "~N");
+Clazz.defineMethod (c$, "isLegalInsertText", 
+function (text) {
+return true;
+}, "~S");
+Clazz.defineMethod (c$, "getNextNavigatableChar", 
+ function (offset, direction) {
+var max = this.getFormattedTextField ().getDocument ().getLength ();
+while (offset >= 0 && offset < max) {
+if (this.isNavigatable (offset)) {
+return offset;
+}offset += direction;
+}
+return offset;
+}, "~N,~N");
+Clazz.defineMethod (c$, "getReplaceString", 
+function (offset, deleteLength, replaceString) {
+var string = this.getFormattedTextField ().getText ();
+var result;
+result = string.substring (0, offset);
+if (replaceString != null) {
+result += replaceString;
+}if (offset + deleteLength < string.length) {
+result += string.substring (offset + deleteLength);
+}return result;
+}, "~N,~N,~S");
+Clazz.defineMethod (c$, "isValidEdit", 
+function (rh) {
+if (!this.getAllowsInvalid ()) {
+var newString = this.getReplaceString (rh.offset, rh.length, rh.text);
+try {
+rh.value = this.stringToValue (newString);
+return true;
+} catch (pe) {
+if (Clazz.exceptionOf (pe, java.text.ParseException)) {
+return false;
+} else {
+throw pe;
+}
+}
+}return true;
+}, "javax.swing.text.DefaultFormatter.ReplaceHolder");
+Clazz.defineMethod (c$, "commitEdit", 
+function () {
+var ftf = this.getFormattedTextField ();
+});
+Clazz.defineMethod (c$, "updateValue", 
+function () {
+this.updateValue (null);
+});
+Clazz.defineMethod (c$, "updateValue", 
+function (value) {
+try {
+if (value == null) {
+var string = this.getFormattedTextField ().getText ();
+value = this.stringToValue (string);
+}if (this.getCommitsOnValidEdit ()) {
+this.commitEdit ();
+}this.setEditValid (true);
+} catch (pe) {
+if (Clazz.exceptionOf (pe, java.text.ParseException)) {
+this.setEditValid (false);
+} else {
+throw pe;
+}
+}
+}, "~O");
+Clazz.defineMethod (c$, "getNextCursorPosition", 
+function (offset, direction) {
+var newOffset = this.getNextNavigatableChar (offset, direction);
+var max = this.getFormattedTextField ().getDocument ().getLength ();
+if (!this.getAllowsInvalid ()) {
+if (direction == -1 && offset == newOffset) {
+newOffset = this.getNextNavigatableChar (newOffset, 1);
+if (newOffset >= max) {
+newOffset = offset;
+}} else if (direction == 1 && newOffset >= max) {
+newOffset = this.getNextNavigatableChar (max - 1, -1);
+if (newOffset < max) {
+newOffset++;
+}}}return newOffset;
+}, "~N,~N");
+Clazz.defineMethod (c$, "repositionCursor", 
+function (offset, direction) {
+this.getFormattedTextField ().getCaret ().setDot (this.getNextCursorPosition (offset, direction));
+}, "~N,~N");
+Clazz.defineMethod (c$, "getNextVisualPositionFrom", 
+function (text, pos, bias, direction, biasRet) {
+var value = text.getUI ().getNextVisualPositionFrom (text, pos, bias, direction, biasRet);
+if (value == -1) {
+return -1;
+}if (!this.getAllowsInvalid () && (direction == 3 || direction == 7)) {
+var last = -1;
+while (!this.isNavigatable (value) && value != last) {
+last = value;
+value = text.getUI ().getNextVisualPositionFrom (text, value, bias, direction, biasRet);
+}
+var max = this.getFormattedTextField ().getDocument ().getLength ();
+if (last == value || value == max) {
+if (value == 0) {
+biasRet[0] = javax.swing.text.Position.Bias.Forward;
+value = this.getInitialVisualPosition ();
+}if (value >= max && max > 0) {
+biasRet[0] = javax.swing.text.Position.Bias.Forward;
+value = this.getNextNavigatableChar (max - 1, -1) + 1;
+}}}return value;
+}, "javax.swing.text.JTextComponent,~N,javax.swing.text.Position.Bias,~N,~A");
+Clazz.defineMethod (c$, "canReplace", 
+function (rh) {
+return this.isValidEdit (rh);
+}, "javax.swing.text.DefaultFormatter.ReplaceHolder");
+Clazz.defineMethod (c$, "replace", 
+function (fb, offset, length, text, attrs) {
+var rh = this.getReplaceHolder (fb, offset, length, text, attrs);
+this.replace (rh);
+}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N,~S,javax.swing.text.AttributeSet");
+Clazz.defineMethod (c$, "replace", 
+function (rh) {
+var valid = true;
+var direction = 1;
+if (rh.length > 0 && (rh.text == null || rh.text.length == 0) && (this.getFormattedTextField ().getSelectionStart () != rh.offset || rh.length > 1)) {
+direction = -1;
+}if (this.getOverwriteMode () && rh.text != null) {
+rh.length = Math.min (Math.max (rh.length, rh.text.length), rh.fb.getDocument ().getLength () - rh.offset);
+}if ((rh.text != null && !this.isLegalInsertText (rh.text)) || !this.canReplace (rh) || (rh.length == 0 && (rh.text == null || rh.text.length == 0))) {
+valid = false;
+}if (valid) {
+var cursor = rh.cursorPosition;
+rh.fb.replace (rh.offset, rh.length, rh.text, rh.attrs);
+if (cursor == -1) {
+cursor = rh.offset;
+if (direction == 1 && rh.text != null) {
+cursor = rh.offset + rh.text.length;
+}}this.updateValue (rh.value);
+this.repositionCursor (cursor, direction);
+return true;
+} else {
+this.invalidEdit ();
+}return false;
+}, "javax.swing.text.DefaultFormatter.ReplaceHolder");
+Clazz.defineMethod (c$, "setDot", 
+function (fb, dot, bias) {
+fb.setDot (dot, bias);
+}, "javax.swing.text.NavigationFilter.FilterBypass,~N,javax.swing.text.Position.Bias");
+Clazz.defineMethod (c$, "moveDot", 
+function (fb, dot, bias) {
+fb.moveDot (dot, bias);
+}, "javax.swing.text.NavigationFilter.FilterBypass,~N,javax.swing.text.Position.Bias");
+Clazz.defineMethod (c$, "getReplaceHolder", 
+function (fb, offset, length, text, attrs) {
+if (this.replaceHolder == null) {
+this.replaceHolder =  new javax.swing.text.DefaultFormatter.ReplaceHolder ();
+}this.replaceHolder.reset (fb, offset, length, text, attrs);
+return this.replaceHolder;
+}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N,~S,javax.swing.text.AttributeSet");
+c$.$DefaultFormatter$DefaultNavigationFilter$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+Clazz.instantialize (this, arguments);
+}, javax.swing.text.DefaultFormatter, "DefaultNavigationFilter", javax.swing.text.NavigationFilter);
+Clazz.overrideMethod (c$, "setDot", 
+function (a, b, c) {
+var d = this.b$["javax.swing.text.DefaultFormatter"].getFormattedTextField ();
+if (d.composedTextExists ()) {
+a.setDot (b, c);
+} else {
+this.b$["javax.swing.text.DefaultFormatter"].setDot (a, b, c);
+}}, "javax.swing.text.NavigationFilter.FilterBypass,~N,javax.swing.text.Position.Bias");
+Clazz.overrideMethod (c$, "moveDot", 
+function (a, b, c) {
+var d = this.b$["javax.swing.text.DefaultFormatter"].getFormattedTextField ();
+if (d.composedTextExists ()) {
+a.moveDot (b, c);
+} else {
+this.b$["javax.swing.text.DefaultFormatter"].moveDot (a, b, c);
+}}, "javax.swing.text.NavigationFilter.FilterBypass,~N,javax.swing.text.Position.Bias");
+Clazz.overrideMethod (c$, "getNextVisualPositionFrom", 
+function (a, b, c, d, e) {
+if (a.composedTextExists ()) {
+return a.getUI ().getNextVisualPositionFrom (a, b, c, d, e);
+} else {
+return this.b$["javax.swing.text.DefaultFormatter"].getNextVisualPositionFrom (a, b, c, d, e);
+}}, "javax.swing.text.JTextComponent,~N,javax.swing.text.Position.Bias,~N,~A");
+c$ = Clazz.p0p ();
+};
+c$.$DefaultFormatter$DefaultDocumentFilter$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+Clazz.instantialize (this, arguments);
+}, javax.swing.text.DefaultFormatter, "DefaultDocumentFilter", javax.swing.text.DocumentFilter);
+Clazz.overrideMethod (c$, "remove", 
+function (a, b, c) {
+var d = this.b$["javax.swing.text.DefaultFormatter"].getFormattedTextField ();
+if (d.composedTextExists ()) {
+a.remove (b, c);
+} else {
+this.b$["javax.swing.text.DefaultFormatter"].replace (a, b, c, null, null);
+}}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N");
+Clazz.overrideMethod (c$, "insertString", 
+function (a, b, c, d) {
+var e = this.b$["javax.swing.text.DefaultFormatter"].getFormattedTextField ();
+if (e.composedTextExists () || javax.swing.text.Utilities.isComposedTextAttributeDefined (d)) {
+a.insertString (b, c, d);
+} else {
+this.b$["javax.swing.text.DefaultFormatter"].replace (a, b, 0, c, d);
+}}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~S,javax.swing.text.AttributeSet");
+Clazz.overrideMethod (c$, "replace", 
+function (a, b, c, d, e) {
+var f = this.b$["javax.swing.text.DefaultFormatter"].getFormattedTextField ();
+if (f.composedTextExists () || javax.swing.text.Utilities.isComposedTextAttributeDefined (e)) {
+a.replace (b, c, d, e);
+} else {
+this.b$["javax.swing.text.DefaultFormatter"].replace (a, b, c, d, e);
+}}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N,~S,javax.swing.text.AttributeSet");
+c$ = Clazz.p0p ();
+};
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+this.fb = null;
+this.offset = 0;
+this.length = 0;
+this.text = null;
+this.attrs = null;
+this.value = null;
+this.cursorPosition = 0;
+Clazz.instantialize (this, arguments);
+}, javax.swing.text.DefaultFormatter, "ReplaceHolder");
+Clazz.defineMethod (c$, "reset", 
+function (a, b, c, d, e) {
+this.fb = a;
+this.offset = b;
+this.length = c;
+this.text = d;
+this.attrs = e;
+this.value = null;
+this.cursorPosition = -1;
+}, "javax.swing.text.DocumentFilter.FilterBypass,~N,~N,~S,javax.swing.text.AttributeSet");
+c$ = Clazz.p0p ();
+});