Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / swingjs / j2s / javax / swing / text / GapContent.js
index b380d4f..ea222fa 100644 (file)
-Clazz.declarePackage ("javax.swing.text");\r
-Clazz.load (["javax.swing.text.AbstractDocument", "$.GapVector", "$.Position", "javax.swing.undo.AbstractUndoableEdit"], "javax.swing.text.GapContent", ["java.util.Vector", "javax.swing.text.BadLocationException", "$.Segment", "javax.swing.undo.CannotRedoException", "$.CannotUndoException"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-if (!Clazz.isClassDefined ("javax.swing.text.GapContent.MarkData")) {\r
-javax.swing.text.GapContent.$GapContent$MarkData$ ();\r
-}\r
-if (!Clazz.isClassDefined ("javax.swing.text.GapContent.StickyPosition")) {\r
-javax.swing.text.GapContent.$GapContent$StickyPosition$ ();\r
-}\r
-this.marks = null;\r
-this.search = null;\r
-if (!Clazz.isClassDefined ("javax.swing.text.GapContent.UndoPosRef")) {\r
-javax.swing.text.GapContent.$GapContent$UndoPosRef$ ();\r
-}\r
-if (!Clazz.isClassDefined ("javax.swing.text.GapContent.InsertUndo")) {\r
-javax.swing.text.GapContent.$GapContent$InsertUndo$ ();\r
-}\r
-if (!Clazz.isClassDefined ("javax.swing.text.GapContent.RemoveUndo")) {\r
-javax.swing.text.GapContent.$GapContent$RemoveUndo$ ();\r
-}\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text, "GapContent", javax.swing.text.GapVector, javax.swing.text.AbstractDocument.Content);\r
-Clazz.makeConstructor (c$, \r
-function () {\r
-this.construct (10);\r
-});\r
-Clazz.makeConstructor (c$, \r
-function (initialLength) {\r
-Clazz.superConstructor (this, javax.swing.text.GapContent, [Math.max (initialLength, 2)]);\r
-var implied =  Clazz.newCharArray (1, '\0');\r
-implied[0] = '\n';\r
-this.replace (0, 0, implied, implied.length);\r
-this.marks =  new javax.swing.text.GapContent.MarkVector ();\r
-this.search = Clazz.innerTypeInstance (javax.swing.text.GapContent.MarkData, this, null, 0);\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "allocateArray", \r
-function (len) {\r
-return  Clazz.newCharArray (len, '\0');\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "getArrayLength", \r
-function () {\r
-var carray = this.getArray ();\r
-return carray.length;\r
-});\r
-Clazz.overrideMethod (c$, "length", \r
-function () {\r
-var len = this.getArrayLength () - (this.getGapEnd () - this.getGapStart ());\r
-return len;\r
-});\r
-Clazz.overrideMethod (c$, "insertString", \r
-function (where, str) {\r
-if (where > this.length () || where < 0) {\r
-throw  new javax.swing.text.BadLocationException ("Invalid insert", this.length ());\r
-}var chars = str.toCharArray ();\r
-this.replace (where, 0, chars, chars.length);\r
-return Clazz.innerTypeInstance (javax.swing.text.GapContent.InsertUndo, this, null, where, str.length);\r
-}, "~N,~S");\r
-Clazz.overrideMethod (c$, "remove", \r
-function (where, nitems) {\r
-if (where + nitems >= this.length ()) {\r
-throw  new javax.swing.text.BadLocationException ("Invalid remove", this.length () + 1);\r
-}var removedString = this.getString (where, nitems);\r
-var edit = Clazz.innerTypeInstance (javax.swing.text.GapContent.RemoveUndo, this, null, where, removedString);\r
-this.replace (where, nitems, javax.swing.text.GapContent.empty, 0);\r
-return edit;\r
-}, "~N,~N");\r
-Clazz.overrideMethod (c$, "getString", \r
-function (where, len) {\r
-var s =  new javax.swing.text.Segment ();\r
-this.getChars (where, len, s);\r
-return  String.instantialize (s.array, s.offset, s.count);\r
-}, "~N,~N");\r
-Clazz.overrideMethod (c$, "getChars", \r
-function (where, len, chars) {\r
-var end = where + len;\r
-if (where < 0 || end < 0) {\r
-throw  new javax.swing.text.BadLocationException ("Invalid location", -1);\r
-}if (end > this.length () || where > this.length ()) {\r
-throw  new javax.swing.text.BadLocationException ("Invalid location", this.length () + 1);\r
-}var g0 = this.getGapStart ();\r
-var g1 = this.getGapEnd ();\r
-var array = this.getArray ();\r
-if ((where + len) <= g0) {\r
-chars.array = array;\r
-chars.offset = where;\r
-} else if (where >= g0) {\r
-chars.array = array;\r
-chars.offset = g1 + where - g0;\r
-} else {\r
-var before = g0 - where;\r
-if (chars.isPartialReturn ()) {\r
-chars.array = array;\r
-chars.offset = where;\r
-chars.count = before;\r
-return;\r
-}chars.array =  Clazz.newCharArray (len, '\0');\r
-chars.offset = 0;\r
-System.arraycopy (array, where, chars.array, 0, before);\r
-System.arraycopy (array, g1, chars.array, before, len - before);\r
-}chars.count = len;\r
-}, "~N,~N,javax.swing.text.Segment");\r
-Clazz.overrideMethod (c$, "createPosition", \r
-function (offset) {\r
-var g0 = this.getGapStart ();\r
-var g1 = this.getGapEnd ();\r
-var index = (offset < g0) ? offset : offset + (g1 - g0);\r
-this.search.index = index;\r
-var sortIndex = this.findSortIndex (this.search);\r
-var m;\r
-var position;\r
-if (sortIndex < this.marks.size () && (m = this.marks.elementAt (sortIndex)).index == index && (position = m.getPosition ()) != null) {\r
-} else {\r
-position = Clazz.innerTypeInstance (javax.swing.text.GapContent.StickyPosition, this, null);\r
-m = Clazz.innerTypeInstance (javax.swing.text.GapContent.MarkData, this, null, index, position);\r
-position.setMark (m);\r
-this.marks.insertElementAt (m, sortIndex);\r
-}return position;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "shiftEnd", \r
-function (newSize) {\r
-var oldGapEnd = this.getGapEnd ();\r
-Clazz.superCall (this, javax.swing.text.GapContent, "shiftEnd", [newSize]);\r
-var dg = this.getGapEnd () - oldGapEnd;\r
-var adjustIndex = this.findMarkAdjustIndex (oldGapEnd);\r
-var n = this.marks.size ();\r
-for (var i = adjustIndex; i < n; i++) {\r
-var mark = this.marks.elementAt (i);\r
-mark.index += dg;\r
-}\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getNewArraySize", \r
-function (reqSize) {\r
-if (reqSize < 524288) {\r
-return Clazz.superCall (this, javax.swing.text.GapContent, "getNewArraySize", [reqSize]);\r
-} else {\r
-return reqSize + 524288;\r
-}}, "~N");\r
-Clazz.defineMethod (c$, "shiftGap", \r
-function (newGapStart) {\r
-var oldGapStart = this.getGapStart ();\r
-var dg = newGapStart - oldGapStart;\r
-var oldGapEnd = this.getGapEnd ();\r
-var newGapEnd = oldGapEnd + dg;\r
-var gapSize = oldGapEnd - oldGapStart;\r
-Clazz.superCall (this, javax.swing.text.GapContent, "shiftGap", [newGapStart]);\r
-if (dg > 0) {\r
-var adjustIndex = this.findMarkAdjustIndex (oldGapStart);\r
-var n = this.marks.size ();\r
-for (var i = adjustIndex; i < n; i++) {\r
-var mark = this.marks.elementAt (i);\r
-if (mark.index >= newGapEnd) {\r
-break;\r
-}mark.index -= gapSize;\r
-}\r
-} else if (dg < 0) {\r
-var adjustIndex = this.findMarkAdjustIndex (newGapStart);\r
-var n = this.marks.size ();\r
-for (var i = adjustIndex; i < n; i++) {\r
-var mark = this.marks.elementAt (i);\r
-if (mark.index >= oldGapEnd) {\r
-break;\r
-}mark.index += gapSize;\r
-}\r
-}this.resetMarksAtZero ();\r
-}, "~N");\r
-Clazz.defineMethod (c$, "resetMarksAtZero", \r
-function () {\r
-if (this.marks != null && this.getGapStart () == 0) {\r
-var g1 = this.getGapEnd ();\r
-for (var counter = 0, maxCounter = this.marks.size (); counter < maxCounter; counter++) {\r
-var mark = this.marks.elementAt (counter);\r
-if (mark.index <= g1) {\r
-mark.index = 0;\r
-} else {\r
-break;\r
-}}\r
-}});\r
-Clazz.defineMethod (c$, "shiftGapStartDown", \r
-function (newGapStart) {\r
-var adjustIndex = this.findMarkAdjustIndex (newGapStart);\r
-var n = this.marks.size ();\r
-var g0 = this.getGapStart ();\r
-var g1 = this.getGapEnd ();\r
-for (var i = adjustIndex; i < n; i++) {\r
-var mark = this.marks.elementAt (i);\r
-if (mark.index > g0) {\r
-break;\r
-}mark.index = g1;\r
-}\r
-Clazz.superCall (this, javax.swing.text.GapContent, "shiftGapStartDown", [newGapStart]);\r
-this.resetMarksAtZero ();\r
-}, "~N");\r
-Clazz.defineMethod (c$, "shiftGapEndUp", \r
-function (newGapEnd) {\r
-var adjustIndex = this.findMarkAdjustIndex (this.getGapEnd ());\r
-var n = this.marks.size ();\r
-for (var i = adjustIndex; i < n; i++) {\r
-var mark = this.marks.elementAt (i);\r
-if (mark.index >= newGapEnd) {\r
-break;\r
-}mark.index = newGapEnd;\r
-}\r
-Clazz.superCall (this, javax.swing.text.GapContent, "shiftGapEndUp", [newGapEnd]);\r
-this.resetMarksAtZero ();\r
-}, "~N");\r
-Clazz.defineMethod (c$, "compare", \r
-function (o1, o2) {\r
-if (o1.index < o2.index) {\r
-return -1;\r
-} else if (o1.index > o2.index) {\r
-return 1;\r
-} else {\r
-return 0;\r
-}}, "javax.swing.text.GapContent.MarkData,javax.swing.text.GapContent.MarkData");\r
-Clazz.defineMethod (c$, "findMarkAdjustIndex", \r
-function (searchIndex) {\r
-this.search.index = Math.max (searchIndex, 1);\r
-var index = this.findSortIndex (this.search);\r
-for (var i = index - 1; i >= 0; i--) {\r
-var d = this.marks.elementAt (i);\r
-if (d.index != this.search.index) {\r
-break;\r
-}index -= 1;\r
-}\r
-return index;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "findSortIndex", \r
-function (o) {\r
-var lower = 0;\r
-var upper = this.marks.size () - 1;\r
-var mid = 0;\r
-if (upper == -1) {\r
-return 0;\r
-}var cmp = 0;\r
-var last = this.marks.elementAt (upper);\r
-cmp = this.compare (o, last);\r
-if (cmp > 0) return upper + 1;\r
-while (lower <= upper) {\r
-mid = lower + (Clazz.doubleToInt ((upper - lower) / 2));\r
-var entry = this.marks.elementAt (mid);\r
-cmp = this.compare (o, entry);\r
-if (cmp == 0) {\r
-return mid;\r
-} else if (cmp < 0) {\r
-upper = mid - 1;\r
-} else {\r
-lower = mid + 1;\r
-}}\r
-return (cmp < 0) ? mid : mid + 1;\r
-}, "javax.swing.text.GapContent.MarkData");\r
-Clazz.defineMethod (c$, "removeUnusedMarks", \r
-function () {\r
-var n = this.marks.size ();\r
-var cleaned =  new javax.swing.text.GapContent.MarkVector (n);\r
-for (var i = 0; i < n; i++) {\r
-var mark = this.marks.elementAt (i);\r
-if (mark != null) {\r
-cleaned.addElement (mark);\r
-}}\r
-this.marks = cleaned;\r
-});\r
-Clazz.defineMethod (c$, "getPositionsInRange", \r
-function (v, offset, length) {\r
-var endOffset = offset + length;\r
-var startIndex;\r
-var endIndex;\r
-var g0 = this.getGapStart ();\r
-var g1 = this.getGapEnd ();\r
-if (offset < g0) {\r
-if (offset == 0) {\r
-startIndex = 0;\r
-} else {\r
-startIndex = this.findMarkAdjustIndex (offset);\r
-}if (endOffset >= g0) {\r
-endIndex = this.findMarkAdjustIndex (endOffset + (g1 - g0) + 1);\r
-} else {\r
-endIndex = this.findMarkAdjustIndex (endOffset + 1);\r
-}} else {\r
-startIndex = this.findMarkAdjustIndex (offset + (g1 - g0));\r
-endIndex = this.findMarkAdjustIndex (endOffset + (g1 - g0) + 1);\r
-}var placeIn = (v == null) ?  new java.util.Vector (Math.max (1, endIndex - startIndex)) : v;\r
-for (var counter = startIndex; counter < endIndex; counter++) {\r
-placeIn.addElement (Clazz.innerTypeInstance (javax.swing.text.GapContent.UndoPosRef, this, null, this.marks.elementAt (counter)));\r
-}\r
-return placeIn;\r
-}, "java.util.Vector,~N,~N");\r
-Clazz.defineMethod (c$, "updateUndoPositions", \r
-function (positions, offset, length) {\r
-var endOffset = offset + length;\r
-var g1 = this.getGapEnd ();\r
-var startIndex;\r
-var endIndex = this.findMarkAdjustIndex (g1 + 1);\r
-if (offset != 0) {\r
-startIndex = this.findMarkAdjustIndex (g1);\r
-} else {\r
-startIndex = 0;\r
-}for (var counter = positions.size () - 1; counter >= 0; counter--) {\r
-var ref = positions.elementAt (counter);\r
-ref.resetLocation (endOffset, g1);\r
-}\r
-if (startIndex < endIndex) {\r
-var sorted =  new Array (endIndex - startIndex);\r
-var addIndex = 0;\r
-var counter;\r
-if (offset == 0) {\r
-for (counter = startIndex; counter < endIndex; counter++) {\r
-var mark = this.marks.elementAt (counter);\r
-if (mark.index == 0) {\r
-sorted[addIndex++] = mark;\r
-}}\r
-for (counter = startIndex; counter < endIndex; counter++) {\r
-var mark = this.marks.elementAt (counter);\r
-if (mark.index != 0) {\r
-sorted[addIndex++] = mark;\r
-}}\r
-} else {\r
-for (counter = startIndex; counter < endIndex; counter++) {\r
-var mark = this.marks.elementAt (counter);\r
-if (mark.index != g1) {\r
-sorted[addIndex++] = mark;\r
-}}\r
-for (counter = startIndex; counter < endIndex; counter++) {\r
-var mark = this.marks.elementAt (counter);\r
-if (mark.index == g1) {\r
-sorted[addIndex++] = mark;\r
-}}\r
-}this.marks.replaceRange (startIndex, endIndex, sorted);\r
-}}, "java.util.Vector,~N,~N");\r
-c$.$GapContent$MarkData$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-this.ref = null;\r
-this.index = 0;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text.GapContent, "MarkData");\r
-Clazz.makeConstructor (c$, \r
-function (a) {\r
-this.index = a;\r
-}, "~N");\r
-Clazz.makeConstructor (c$, \r
-function (a, b) {\r
-this.ref = b;\r
-this.index = a;\r
-}, "~N,javax.swing.text.GapContent.StickyPosition");\r
-Clazz.defineMethod (c$, "getOffset", \r
-function () {\r
-var a = this.b$["javax.swing.text.GapContent"].getGapStart ();\r
-var b = this.b$["javax.swing.text.GapContent"].getGapEnd ();\r
-var c = (this.index < a) ? this.index : this.index - (b - a);\r
-return Math.max (c, 0);\r
-});\r
-Clazz.defineMethod (c$, "getPosition", \r
-function () {\r
-return this.ref;\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$GapContent$StickyPosition$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-this.mark = null;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text.GapContent, "StickyPosition", null, javax.swing.text.Position);\r
-Clazz.makeConstructor (c$, \r
-function () {\r
-});\r
-Clazz.defineMethod (c$, "setMark", \r
-function (a) {\r
-this.mark = a;\r
-}, "javax.swing.text.GapContent.MarkData");\r
-Clazz.overrideMethod (c$, "getOffset", \r
-function () {\r
-return this.mark.getOffset ();\r
-});\r
-Clazz.overrideMethod (c$, "toString", \r
-function () {\r
-return Integer.toString (this.getOffset ());\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$GapContent$UndoPosRef$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-this.undoLocation = 0;\r
-this.rec = null;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text.GapContent, "UndoPosRef");\r
-Clazz.makeConstructor (c$, \r
-function (a) {\r
-this.rec = a;\r
-this.undoLocation = a.getOffset ();\r
-}, "javax.swing.text.GapContent.MarkData");\r
-Clazz.defineMethod (c$, "resetLocation", \r
-function (a, b) {\r
-if (this.undoLocation != a) {\r
-this.rec.index = this.undoLocation;\r
-} else {\r
-this.rec.index = b;\r
-}}, "~N,~N");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$GapContent$InsertUndo$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-this.offset = 0;\r
-this.length = 0;\r
-this.string = null;\r
-this.posRefs = null;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text.GapContent, "InsertUndo", javax.swing.undo.AbstractUndoableEdit);\r
-Clazz.makeConstructor (c$, \r
-function (a, b) {\r
-Clazz.superConstructor (this, javax.swing.text.GapContent.InsertUndo);\r
-this.offset = a;\r
-this.length = b;\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "undo", \r
-function () {\r
-Clazz.superCall (this, javax.swing.text.GapContent.InsertUndo, "undo", []);\r
-try {\r
-this.posRefs = this.b$["javax.swing.text.GapContent"].getPositionsInRange (null, this.offset, this.length);\r
-this.string = this.b$["javax.swing.text.GapContent"].getString (this.offset, this.length);\r
-this.b$["javax.swing.text.GapContent"].remove (this.offset, this.length);\r
-} catch (bl) {\r
-if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
-throw  new javax.swing.undo.CannotUndoException ();\r
-} else {\r
-throw bl;\r
-}\r
-}\r
-});\r
-Clazz.defineMethod (c$, "redo", \r
-function () {\r
-Clazz.superCall (this, javax.swing.text.GapContent.InsertUndo, "redo", []);\r
-try {\r
-this.b$["javax.swing.text.GapContent"].insertString (this.offset, this.string);\r
-this.string = null;\r
-if (this.posRefs != null) {\r
-this.b$["javax.swing.text.GapContent"].updateUndoPositions (this.posRefs, this.offset, this.length);\r
-this.posRefs = null;\r
-}} catch (bl) {\r
-if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
-throw  new javax.swing.undo.CannotRedoException ();\r
-} else {\r
-throw bl;\r
-}\r
-}\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$GapContent$RemoveUndo$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-this.offset = 0;\r
-this.length = 0;\r
-this.string = null;\r
-this.posRefs = null;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text.GapContent, "RemoveUndo", javax.swing.undo.AbstractUndoableEdit);\r
-Clazz.makeConstructor (c$, \r
-function (a, b) {\r
-Clazz.superConstructor (this, javax.swing.text.GapContent.RemoveUndo);\r
-this.offset = a;\r
-this.string = b;\r
-this.length = b.length;\r
-this.posRefs = this.b$["javax.swing.text.GapContent"].getPositionsInRange (null, a, this.length);\r
-}, "~N,~S");\r
-Clazz.defineMethod (c$, "undo", \r
-function () {\r
-Clazz.superCall (this, javax.swing.text.GapContent.RemoveUndo, "undo", []);\r
-try {\r
-this.b$["javax.swing.text.GapContent"].insertString (this.offset, this.string);\r
-if (this.posRefs != null) {\r
-this.b$["javax.swing.text.GapContent"].updateUndoPositions (this.posRefs, this.offset, this.length);\r
-this.posRefs = null;\r
-}this.string = null;\r
-} catch (bl) {\r
-if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
-throw  new javax.swing.undo.CannotUndoException ();\r
-} else {\r
-throw bl;\r
-}\r
-}\r
-});\r
-Clazz.defineMethod (c$, "redo", \r
-function () {\r
-Clazz.superCall (this, javax.swing.text.GapContent.RemoveUndo, "redo", []);\r
-try {\r
-this.string = this.b$["javax.swing.text.GapContent"].getString (this.offset, this.length);\r
-this.posRefs = this.b$["javax.swing.text.GapContent"].getPositionsInRange (null, this.offset, this.length);\r
-this.b$["javax.swing.text.GapContent"].remove (this.offset, this.length);\r
-} catch (bl) {\r
-if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
-throw  new javax.swing.undo.CannotRedoException ();\r
-} else {\r
-throw bl;\r
-}\r
-}\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.oneMark = null;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.text.GapContent, "MarkVector", javax.swing.text.GapVector);\r
-Clazz.prepareFields (c$, function () {\r
-this.oneMark =  new Array (1);\r
-});\r
-Clazz.overrideMethod (c$, "allocateArray", \r
-function (a) {\r
-return  new Array (a);\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "getArrayLength", \r
-function () {\r
-var a = this.getArray ();\r
-return a.length;\r
-});\r
-Clazz.defineMethod (c$, "size", \r
-function () {\r
-var a = this.getArrayLength () - (this.getGapEnd () - this.getGapStart ());\r
-return a;\r
-});\r
-Clazz.defineMethod (c$, "insertElementAt", \r
-function (a, b) {\r
-this.oneMark[0] = a;\r
-this.replace (b, 0, this.oneMark, 1);\r
-}, "javax.swing.text.GapContent.MarkData,~N");\r
-Clazz.defineMethod (c$, "addElement", \r
-function (a) {\r
-this.insertElementAt (a, this.size ());\r
-}, "javax.swing.text.GapContent.MarkData");\r
-Clazz.defineMethod (c$, "elementAt", \r
-function (a) {\r
-var b = this.getGapStart ();\r
-var c = this.getGapEnd ();\r
-var d = this.getArray ();\r
-if (a < b) {\r
-return d[a];\r
-} else {\r
-a += c - b;\r
-return d[a];\r
-}}, "~N");\r
-Clazz.defineMethod (c$, "replaceRange", \r
-function (a, b, c) {\r
-var d = this.getGapStart ();\r
-var e = this.getGapEnd ();\r
-var f = a;\r
-var g = 0;\r
-var h = this.getArray ();\r
-if (a >= d) {\r
-f += (e - d);\r
-b += (e - d);\r
-} else if (b >= d) {\r
-b += (e - d);\r
-while (f < d) {\r
-h[f++] = c[g++];\r
-}\r
-f = e;\r
-} else {\r
-while (f < b) {\r
-h[f++] = c[g++];\r
-}\r
-}while (f < b) {\r
-h[f++] = c[g++];\r
-}\r
-}, "~N,~N,~A");\r
-c$ = Clazz.p0p ();\r
-Clazz.defineStatics (c$,\r
-"empty",  Clazz.newCharArray (0, '\0'),\r
-"GROWTH_SIZE", 524288);\r
-});\r
+Clazz.declarePackage ("javax.swing.text");
+Clazz.load (["javax.swing.text.AbstractDocument", "$.GapVector", "$.Position", "javax.swing.undo.AbstractUndoableEdit"], "javax.swing.text.GapContent", ["java.util.Vector", "javax.swing.text.BadLocationException", "$.Segment", "javax.swing.undo.CannotRedoException", "$.CannotUndoException"], function () {
+c$ = Clazz.decorateAsClass (function () {
+if (!Clazz.isClassDefined ("javax.swing.text.GapContent.MarkData")) {
+javax.swing.text.GapContent.$GapContent$MarkData$ ();
+}
+if (!Clazz.isClassDefined ("javax.swing.text.GapContent.StickyPosition")) {
+javax.swing.text.GapContent.$GapContent$StickyPosition$ ();
+}
+this.marks = null;
+this.search = null;
+if (!Clazz.isClassDefined ("javax.swing.text.GapContent.UndoPosRef")) {
+javax.swing.text.GapContent.$GapContent$UndoPosRef$ ();
+}
+if (!Clazz.isClassDefined ("javax.swing.text.GapContent.InsertUndo")) {
+javax.swing.text.GapContent.$GapContent$InsertUndo$ ();
+}
+if (!Clazz.isClassDefined ("javax.swing.text.GapContent.RemoveUndo")) {
+javax.swing.text.GapContent.$GapContent$RemoveUndo$ ();
+}
+Clazz.instantialize (this, arguments);
+}, javax.swing.text, "GapContent", javax.swing.text.GapVector, javax.swing.text.AbstractDocument.Content);
+Clazz.makeConstructor (c$, 
+function () {
+this.construct (10);
+});
+Clazz.makeConstructor (c$, 
+function (initialLength) {
+Clazz.superConstructor (this, javax.swing.text.GapContent, [Math.max (initialLength, 2)]);
+var implied =  Clazz.newCharArray (1, '\0');
+implied[0] = '\n';
+this.replace (0, 0, implied, implied.length);
+this.marks =  new javax.swing.text.GapContent.MarkVector ();
+this.search = Clazz.innerTypeInstance (javax.swing.text.GapContent.MarkData, this, null, 0);
+}, "~N");
+Clazz.overrideMethod (c$, "allocateArray", 
+function (len) {
+return  Clazz.newCharArray (len, '\0');
+}, "~N");
+Clazz.overrideMethod (c$, "getArrayLength", 
+function () {
+var carray = this.getArray ();
+return carray.length;
+});
+Clazz.overrideMethod (c$, "length", 
+function () {
+var len = this.getArrayLength () - (this.getGapEnd () - this.getGapStart ());
+return len;
+});
+Clazz.overrideMethod (c$, "insertString", 
+function (where, str) {
+if (where > this.length () || where < 0) {
+throw  new javax.swing.text.BadLocationException ("Invalid insert", this.length ());
+}var chars = str.toCharArray ();
+this.replace (where, 0, chars, chars.length);
+return Clazz.innerTypeInstance (javax.swing.text.GapContent.InsertUndo, this, null, where, str.length);
+}, "~N,~S");
+Clazz.overrideMethod (c$, "remove", 
+function (where, nitems) {
+if (where + nitems >= this.length ()) {
+throw  new javax.swing.text.BadLocationException ("Invalid remove", this.length () + 1);
+}var removedString = this.getString (where, nitems);
+var edit = Clazz.innerTypeInstance (javax.swing.text.GapContent.RemoveUndo, this, null, where, removedString);
+this.replace (where, nitems, javax.swing.text.GapContent.empty, 0);
+return edit;
+}, "~N,~N");
+Clazz.overrideMethod (c$, "getString", 
+function (where, len) {
+var s =  new javax.swing.text.Segment ();
+this.getChars (where, len, s);
+return  String.instantialize (s.array, s.offset, s.count);
+}, "~N,~N");
+Clazz.overrideMethod (c$, "getChars", 
+function (where, len, chars) {
+var end = where + len;
+if (where < 0 || end < 0) {
+throw  new javax.swing.text.BadLocationException ("Invalid location", -1);
+}if (end > this.length () || where > this.length ()) {
+throw  new javax.swing.text.BadLocationException ("Invalid location", this.length () + 1);
+}var g0 = this.getGapStart ();
+var g1 = this.getGapEnd ();
+var array = this.getArray ();
+if ((where + len) <= g0) {
+chars.array = array;
+chars.offset = where;
+} else if (where >= g0) {
+chars.array = array;
+chars.offset = g1 + where - g0;
+} else {
+var before = g0 - where;
+if (chars.isPartialReturn ()) {
+chars.array = array;
+chars.offset = where;
+chars.count = before;
+return;
+}chars.array =  Clazz.newCharArray (len, '\0');
+chars.offset = 0;
+System.arraycopy (array, where, chars.array, 0, before);
+System.arraycopy (array, g1, chars.array, before, len - before);
+}chars.count = len;
+}, "~N,~N,javax.swing.text.Segment");
+Clazz.overrideMethod (c$, "createPosition", 
+function (offset) {
+var g0 = this.getGapStart ();
+var g1 = this.getGapEnd ();
+var index = (offset < g0) ? offset : offset + (g1 - g0);
+this.search.index = index;
+var sortIndex = this.findSortIndex (this.search);
+var m;
+var position;
+if (sortIndex < this.marks.size () && (m = this.marks.elementAt (sortIndex)).index == index && (position = m.getPosition ()) != null) {
+} else {
+position = Clazz.innerTypeInstance (javax.swing.text.GapContent.StickyPosition, this, null);
+m = Clazz.innerTypeInstance (javax.swing.text.GapContent.MarkData, this, null, index, position);
+position.setMark (m);
+this.marks.insertElementAt (m, sortIndex);
+}return position;
+}, "~N");
+Clazz.defineMethod (c$, "shiftEnd", 
+function (newSize) {
+var oldGapEnd = this.getGapEnd ();
+Clazz.superCall (this, javax.swing.text.GapContent, "shiftEnd", [newSize]);
+var dg = this.getGapEnd () - oldGapEnd;
+var adjustIndex = this.findMarkAdjustIndex (oldGapEnd);
+var n = this.marks.size ();
+for (var i = adjustIndex; i < n; i++) {
+var mark = this.marks.elementAt (i);
+mark.index += dg;
+}
+}, "~N");
+Clazz.defineMethod (c$, "getNewArraySize", 
+function (reqSize) {
+if (reqSize < 524288) {
+return Clazz.superCall (this, javax.swing.text.GapContent, "getNewArraySize", [reqSize]);
+} else {
+return reqSize + 524288;
+}}, "~N");
+Clazz.defineMethod (c$, "shiftGap", 
+function (newGapStart) {
+var oldGapStart = this.getGapStart ();
+var dg = newGapStart - oldGapStart;
+var oldGapEnd = this.getGapEnd ();
+var newGapEnd = oldGapEnd + dg;
+var gapSize = oldGapEnd - oldGapStart;
+Clazz.superCall (this, javax.swing.text.GapContent, "shiftGap", [newGapStart]);
+if (dg > 0) {
+var adjustIndex = this.findMarkAdjustIndex (oldGapStart);
+var n = this.marks.size ();
+for (var i = adjustIndex; i < n; i++) {
+var mark = this.marks.elementAt (i);
+if (mark.index >= newGapEnd) {
+break;
+}mark.index -= gapSize;
+}
+} else if (dg < 0) {
+var adjustIndex = this.findMarkAdjustIndex (newGapStart);
+var n = this.marks.size ();
+for (var i = adjustIndex; i < n; i++) {
+var mark = this.marks.elementAt (i);
+if (mark.index >= oldGapEnd) {
+break;
+}mark.index += gapSize;
+}
+}this.resetMarksAtZero ();
+}, "~N");
+Clazz.defineMethod (c$, "resetMarksAtZero", 
+function () {
+if (this.marks != null && this.getGapStart () == 0) {
+var g1 = this.getGapEnd ();
+for (var counter = 0, maxCounter = this.marks.size (); counter < maxCounter; counter++) {
+var mark = this.marks.elementAt (counter);
+if (mark.index <= g1) {
+mark.index = 0;
+} else {
+break;
+}}
+}});
+Clazz.defineMethod (c$, "shiftGapStartDown", 
+function (newGapStart) {
+var adjustIndex = this.findMarkAdjustIndex (newGapStart);
+var n = this.marks.size ();
+var g0 = this.getGapStart ();
+var g1 = this.getGapEnd ();
+for (var i = adjustIndex; i < n; i++) {
+var mark = this.marks.elementAt (i);
+if (mark.index > g0) {
+break;
+}mark.index = g1;
+}
+Clazz.superCall (this, javax.swing.text.GapContent, "shiftGapStartDown", [newGapStart]);
+this.resetMarksAtZero ();
+}, "~N");
+Clazz.defineMethod (c$, "shiftGapEndUp", 
+function (newGapEnd) {
+var adjustIndex = this.findMarkAdjustIndex (this.getGapEnd ());
+var n = this.marks.size ();
+for (var i = adjustIndex; i < n; i++) {
+var mark = this.marks.elementAt (i);
+if (mark.index >= newGapEnd) {
+break;
+}mark.index = newGapEnd;
+}
+Clazz.superCall (this, javax.swing.text.GapContent, "shiftGapEndUp", [newGapEnd]);
+this.resetMarksAtZero ();
+}, "~N");
+Clazz.defineMethod (c$, "compare", 
+function (o1, o2) {
+if (o1.index < o2.index) {
+return -1;
+} else if (o1.index > o2.index) {
+return 1;
+} else {
+return 0;
+}}, "javax.swing.text.GapContent.MarkData,javax.swing.text.GapContent.MarkData");
+Clazz.defineMethod (c$, "findMarkAdjustIndex", 
+function (searchIndex) {
+this.search.index = Math.max (searchIndex, 1);
+var index = this.findSortIndex (this.search);
+for (var i = index - 1; i >= 0; i--) {
+var d = this.marks.elementAt (i);
+if (d.index != this.search.index) {
+break;
+}index -= 1;
+}
+return index;
+}, "~N");
+Clazz.defineMethod (c$, "findSortIndex", 
+function (o) {
+var lower = 0;
+var upper = this.marks.size () - 1;
+var mid = 0;
+if (upper == -1) {
+return 0;
+}var cmp = 0;
+var last = this.marks.elementAt (upper);
+cmp = this.compare (o, last);
+if (cmp > 0) return upper + 1;
+while (lower <= upper) {
+mid = lower + (Clazz.doubleToInt ((upper - lower) / 2));
+var entry = this.marks.elementAt (mid);
+cmp = this.compare (o, entry);
+if (cmp == 0) {
+return mid;
+} else if (cmp < 0) {
+upper = mid - 1;
+} else {
+lower = mid + 1;
+}}
+return (cmp < 0) ? mid : mid + 1;
+}, "javax.swing.text.GapContent.MarkData");
+Clazz.defineMethod (c$, "removeUnusedMarks", 
+function () {
+var n = this.marks.size ();
+var cleaned =  new javax.swing.text.GapContent.MarkVector (n);
+for (var i = 0; i < n; i++) {
+var mark = this.marks.elementAt (i);
+if (mark != null) {
+cleaned.addElement (mark);
+}}
+this.marks = cleaned;
+});
+Clazz.defineMethod (c$, "getPositionsInRange", 
+function (v, offset, length) {
+var endOffset = offset + length;
+var startIndex;
+var endIndex;
+var g0 = this.getGapStart ();
+var g1 = this.getGapEnd ();
+if (offset < g0) {
+if (offset == 0) {
+startIndex = 0;
+} else {
+startIndex = this.findMarkAdjustIndex (offset);
+}if (endOffset >= g0) {
+endIndex = this.findMarkAdjustIndex (endOffset + (g1 - g0) + 1);
+} else {
+endIndex = this.findMarkAdjustIndex (endOffset + 1);
+}} else {
+startIndex = this.findMarkAdjustIndex (offset + (g1 - g0));
+endIndex = this.findMarkAdjustIndex (endOffset + (g1 - g0) + 1);
+}var placeIn = (v == null) ?  new java.util.Vector (Math.max (1, endIndex - startIndex)) : v;
+for (var counter = startIndex; counter < endIndex; counter++) {
+placeIn.addElement (Clazz.innerTypeInstance (javax.swing.text.GapContent.UndoPosRef, this, null, this.marks.elementAt (counter)));
+}
+return placeIn;
+}, "java.util.Vector,~N,~N");
+Clazz.defineMethod (c$, "updateUndoPositions", 
+function (positions, offset, length) {
+var endOffset = offset + length;
+var g1 = this.getGapEnd ();
+var startIndex;
+var endIndex = this.findMarkAdjustIndex (g1 + 1);
+if (offset != 0) {
+startIndex = this.findMarkAdjustIndex (g1);
+} else {
+startIndex = 0;
+}for (var counter = positions.size () - 1; counter >= 0; counter--) {
+var ref = positions.elementAt (counter);
+ref.resetLocation (endOffset, g1);
+}
+if (startIndex < endIndex) {
+var sorted =  new Array (endIndex - startIndex);
+var addIndex = 0;
+var counter;
+if (offset == 0) {
+for (counter = startIndex; counter < endIndex; counter++) {
+var mark = this.marks.elementAt (counter);
+if (mark.index == 0) {
+sorted[addIndex++] = mark;
+}}
+for (counter = startIndex; counter < endIndex; counter++) {
+var mark = this.marks.elementAt (counter);
+if (mark.index != 0) {
+sorted[addIndex++] = mark;
+}}
+} else {
+for (counter = startIndex; counter < endIndex; counter++) {
+var mark = this.marks.elementAt (counter);
+if (mark.index != g1) {
+sorted[addIndex++] = mark;
+}}
+for (counter = startIndex; counter < endIndex; counter++) {
+var mark = this.marks.elementAt (counter);
+if (mark.index == g1) {
+sorted[addIndex++] = mark;
+}}
+}this.marks.replaceRange (startIndex, endIndex, sorted);
+}}, "java.util.Vector,~N,~N");
+c$.$GapContent$MarkData$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+this.ref = null;
+this.index = 0;
+Clazz.instantialize (this, arguments);
+}, javax.swing.text.GapContent, "MarkData");
+Clazz.makeConstructor (c$, 
+function (a) {
+this.index = a;
+}, "~N");
+Clazz.makeConstructor (c$, 
+function (a, b) {
+this.ref = b;
+this.index = a;
+}, "~N,javax.swing.text.GapContent.StickyPosition");
+Clazz.defineMethod (c$, "getOffset", 
+function () {
+var a = this.b$["javax.swing.text.GapContent"].getGapStart ();
+var b = this.b$["javax.swing.text.GapContent"].getGapEnd ();
+var c = (this.index < a) ? this.index : this.index - (b - a);
+return Math.max (c, 0);
+});
+Clazz.defineMethod (c$, "getPosition", 
+function () {
+return this.ref;
+});
+c$ = Clazz.p0p ();
+};
+c$.$GapContent$StickyPosition$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+this.mark = null;
+Clazz.instantialize (this, arguments);
+}, javax.swing.text.GapContent, "StickyPosition", null, javax.swing.text.Position);
+Clazz.makeConstructor (c$, 
+function () {
+});
+Clazz.defineMethod (c$, "setMark", 
+function (a) {
+this.mark = a;
+}, "javax.swing.text.GapContent.MarkData");
+Clazz.overrideMethod (c$, "getOffset", 
+function () {
+return this.mark.getOffset ();
+});
+Clazz.overrideMethod (c$, "toString", 
+function () {
+return Integer.toString (this.getOffset ());
+});
+c$ = Clazz.p0p ();
+};
+c$.$GapContent$UndoPosRef$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+this.undoLocation = 0;
+this.rec = null;
+Clazz.instantialize (this, arguments);
+}, javax.swing.text.GapContent, "UndoPosRef");
+Clazz.makeConstructor (c$, 
+function (a) {
+this.rec = a;
+this.undoLocation = a.getOffset ();
+}, "javax.swing.text.GapContent.MarkData");
+Clazz.defineMethod (c$, "resetLocation", 
+function (a, b) {
+if (this.undoLocation != a) {
+this.rec.index = this.undoLocation;
+} else {
+this.rec.index = b;
+}}, "~N,~N");
+c$ = Clazz.p0p ();
+};
+c$.$GapContent$InsertUndo$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+this.offset = 0;
+this.length = 0;
+this.string = null;
+this.posRefs = null;
+Clazz.instantialize (this, arguments);
+}, javax.swing.text.GapContent, "InsertUndo", javax.swing.undo.AbstractUndoableEdit);
+Clazz.makeConstructor (c$, 
+function (a, b) {
+Clazz.superConstructor (this, javax.swing.text.GapContent.InsertUndo);
+this.offset = a;
+this.length = b;
+}, "~N,~N");
+Clazz.defineMethod (c$, "undo", 
+function () {
+Clazz.superCall (this, javax.swing.text.GapContent.InsertUndo, "undo", []);
+try {
+this.posRefs = this.b$["javax.swing.text.GapContent"].getPositionsInRange (null, this.offset, this.length);
+this.string = this.b$["javax.swing.text.GapContent"].getString (this.offset, this.length);
+this.b$["javax.swing.text.GapContent"].remove (this.offset, this.length);
+} catch (bl) {
+if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {
+throw  new javax.swing.undo.CannotUndoException ();
+} else {
+throw bl;
+}
+}
+});
+Clazz.defineMethod (c$, "redo", 
+function () {
+Clazz.superCall (this, javax.swing.text.GapContent.InsertUndo, "redo", []);
+try {
+this.b$["javax.swing.text.GapContent"].insertString (this.offset, this.string);
+this.string = null;
+if (this.posRefs != null) {
+this.b$["javax.swing.text.GapContent"].updateUndoPositions (this.posRefs, this.offset, this.length);
+this.posRefs = null;
+}} catch (bl) {
+if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {
+throw  new javax.swing.undo.CannotRedoException ();
+} else {
+throw bl;
+}
+}
+});
+c$ = Clazz.p0p ();
+};
+c$.$GapContent$RemoveUndo$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+this.offset = 0;
+this.length = 0;
+this.string = null;
+this.posRefs = null;
+Clazz.instantialize (this, arguments);
+}, javax.swing.text.GapContent, "RemoveUndo", javax.swing.undo.AbstractUndoableEdit);
+Clazz.makeConstructor (c$, 
+function (a, b) {
+Clazz.superConstructor (this, javax.swing.text.GapContent.RemoveUndo);
+this.offset = a;
+this.string = b;
+this.length = b.length;
+this.posRefs = this.b$["javax.swing.text.GapContent"].getPositionsInRange (null, a, this.length);
+}, "~N,~S");
+Clazz.defineMethod (c$, "undo", 
+function () {
+Clazz.superCall (this, javax.swing.text.GapContent.RemoveUndo, "undo", []);
+try {
+this.b$["javax.swing.text.GapContent"].insertString (this.offset, this.string);
+if (this.posRefs != null) {
+this.b$["javax.swing.text.GapContent"].updateUndoPositions (this.posRefs, this.offset, this.length);
+this.posRefs = null;
+}this.string = null;
+} catch (bl) {
+if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {
+throw  new javax.swing.undo.CannotUndoException ();
+} else {
+throw bl;
+}
+}
+});
+Clazz.defineMethod (c$, "redo", 
+function () {
+Clazz.superCall (this, javax.swing.text.GapContent.RemoveUndo, "redo", []);
+try {
+this.string = this.b$["javax.swing.text.GapContent"].getString (this.offset, this.length);
+this.posRefs = this.b$["javax.swing.text.GapContent"].getPositionsInRange (null, this.offset, this.length);
+this.b$["javax.swing.text.GapContent"].remove (this.offset, this.length);
+} catch (bl) {
+if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {
+throw  new javax.swing.undo.CannotRedoException ();
+} else {
+throw bl;
+}
+}
+});
+c$ = Clazz.p0p ();
+};
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+this.oneMark = null;
+Clazz.instantialize (this, arguments);
+}, javax.swing.text.GapContent, "MarkVector", javax.swing.text.GapVector);
+Clazz.prepareFields (c$, function () {
+this.oneMark =  new Array (1);
+});
+Clazz.overrideMethod (c$, "allocateArray", 
+function (a) {
+return  new Array (a);
+}, "~N");
+Clazz.overrideMethod (c$, "getArrayLength", 
+function () {
+var a = this.getArray ();
+return a.length;
+});
+Clazz.defineMethod (c$, "size", 
+function () {
+var a = this.getArrayLength () - (this.getGapEnd () - this.getGapStart ());
+return a;
+});
+Clazz.defineMethod (c$, "insertElementAt", 
+function (a, b) {
+this.oneMark[0] = a;
+this.replace (b, 0, this.oneMark, 1);
+}, "javax.swing.text.GapContent.MarkData,~N");
+Clazz.defineMethod (c$, "addElement", 
+function (a) {
+this.insertElementAt (a, this.size ());
+}, "javax.swing.text.GapContent.MarkData");
+Clazz.defineMethod (c$, "elementAt", 
+function (a) {
+var b = this.getGapStart ();
+var c = this.getGapEnd ();
+var d = this.getArray ();
+if (a < b) {
+return d[a];
+} else {
+a += c - b;
+return d[a];
+}}, "~N");
+Clazz.defineMethod (c$, "replaceRange", 
+function (a, b, c) {
+var d = this.getGapStart ();
+var e = this.getGapEnd ();
+var f = a;
+var g = 0;
+var h = this.getArray ();
+if (a >= d) {
+f += (e - d);
+b += (e - d);
+} else if (b >= d) {
+b += (e - d);
+while (f < d) {
+h[f++] = c[g++];
+}
+f = e;
+} else {
+while (f < b) {
+h[f++] = c[g++];
+}
+}while (f < b) {
+h[f++] = c[g++];
+}
+}, "~N,~N,~A");
+c$ = Clazz.p0p ();
+Clazz.defineStatics (c$,
+"empty",  Clazz.newCharArray (0, '\0'),
+"GROWTH_SIZE", 524288);
+});