b380d4f734d95b98fdf508284f307f8eb6e209a3
[jalviewjs.git] / site / swingjs / j2s / javax / swing / text / GapContent.js
1 Clazz.declarePackage ("javax.swing.text");\r
2 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
3 c$ = Clazz.decorateAsClass (function () {\r
4 if (!Clazz.isClassDefined ("javax.swing.text.GapContent.MarkData")) {\r
5 javax.swing.text.GapContent.$GapContent$MarkData$ ();\r
6 }\r
7 if (!Clazz.isClassDefined ("javax.swing.text.GapContent.StickyPosition")) {\r
8 javax.swing.text.GapContent.$GapContent$StickyPosition$ ();\r
9 }\r
10 this.marks = null;\r
11 this.search = null;\r
12 if (!Clazz.isClassDefined ("javax.swing.text.GapContent.UndoPosRef")) {\r
13 javax.swing.text.GapContent.$GapContent$UndoPosRef$ ();\r
14 }\r
15 if (!Clazz.isClassDefined ("javax.swing.text.GapContent.InsertUndo")) {\r
16 javax.swing.text.GapContent.$GapContent$InsertUndo$ ();\r
17 }\r
18 if (!Clazz.isClassDefined ("javax.swing.text.GapContent.RemoveUndo")) {\r
19 javax.swing.text.GapContent.$GapContent$RemoveUndo$ ();\r
20 }\r
21 Clazz.instantialize (this, arguments);\r
22 }, javax.swing.text, "GapContent", javax.swing.text.GapVector, javax.swing.text.AbstractDocument.Content);\r
23 Clazz.makeConstructor (c$, \r
24 function () {\r
25 this.construct (10);\r
26 });\r
27 Clazz.makeConstructor (c$, \r
28 function (initialLength) {\r
29 Clazz.superConstructor (this, javax.swing.text.GapContent, [Math.max (initialLength, 2)]);\r
30 var implied =  Clazz.newCharArray (1, '\0');\r
31 implied[0] = '\n';\r
32 this.replace (0, 0, implied, implied.length);\r
33 this.marks =  new javax.swing.text.GapContent.MarkVector ();\r
34 this.search = Clazz.innerTypeInstance (javax.swing.text.GapContent.MarkData, this, null, 0);\r
35 }, "~N");\r
36 Clazz.overrideMethod (c$, "allocateArray", \r
37 function (len) {\r
38 return  Clazz.newCharArray (len, '\0');\r
39 }, "~N");\r
40 Clazz.overrideMethod (c$, "getArrayLength", \r
41 function () {\r
42 var carray = this.getArray ();\r
43 return carray.length;\r
44 });\r
45 Clazz.overrideMethod (c$, "length", \r
46 function () {\r
47 var len = this.getArrayLength () - (this.getGapEnd () - this.getGapStart ());\r
48 return len;\r
49 });\r
50 Clazz.overrideMethod (c$, "insertString", \r
51 function (where, str) {\r
52 if (where > this.length () || where < 0) {\r
53 throw  new javax.swing.text.BadLocationException ("Invalid insert", this.length ());\r
54 }var chars = str.toCharArray ();\r
55 this.replace (where, 0, chars, chars.length);\r
56 return Clazz.innerTypeInstance (javax.swing.text.GapContent.InsertUndo, this, null, where, str.length);\r
57 }, "~N,~S");\r
58 Clazz.overrideMethod (c$, "remove", \r
59 function (where, nitems) {\r
60 if (where + nitems >= this.length ()) {\r
61 throw  new javax.swing.text.BadLocationException ("Invalid remove", this.length () + 1);\r
62 }var removedString = this.getString (where, nitems);\r
63 var edit = Clazz.innerTypeInstance (javax.swing.text.GapContent.RemoveUndo, this, null, where, removedString);\r
64 this.replace (where, nitems, javax.swing.text.GapContent.empty, 0);\r
65 return edit;\r
66 }, "~N,~N");\r
67 Clazz.overrideMethod (c$, "getString", \r
68 function (where, len) {\r
69 var s =  new javax.swing.text.Segment ();\r
70 this.getChars (where, len, s);\r
71 return  String.instantialize (s.array, s.offset, s.count);\r
72 }, "~N,~N");\r
73 Clazz.overrideMethod (c$, "getChars", \r
74 function (where, len, chars) {\r
75 var end = where + len;\r
76 if (where < 0 || end < 0) {\r
77 throw  new javax.swing.text.BadLocationException ("Invalid location", -1);\r
78 }if (end > this.length () || where > this.length ()) {\r
79 throw  new javax.swing.text.BadLocationException ("Invalid location", this.length () + 1);\r
80 }var g0 = this.getGapStart ();\r
81 var g1 = this.getGapEnd ();\r
82 var array = this.getArray ();\r
83 if ((where + len) <= g0) {\r
84 chars.array = array;\r
85 chars.offset = where;\r
86 } else if (where >= g0) {\r
87 chars.array = array;\r
88 chars.offset = g1 + where - g0;\r
89 } else {\r
90 var before = g0 - where;\r
91 if (chars.isPartialReturn ()) {\r
92 chars.array = array;\r
93 chars.offset = where;\r
94 chars.count = before;\r
95 return;\r
96 }chars.array =  Clazz.newCharArray (len, '\0');\r
97 chars.offset = 0;\r
98 System.arraycopy (array, where, chars.array, 0, before);\r
99 System.arraycopy (array, g1, chars.array, before, len - before);\r
100 }chars.count = len;\r
101 }, "~N,~N,javax.swing.text.Segment");\r
102 Clazz.overrideMethod (c$, "createPosition", \r
103 function (offset) {\r
104 var g0 = this.getGapStart ();\r
105 var g1 = this.getGapEnd ();\r
106 var index = (offset < g0) ? offset : offset + (g1 - g0);\r
107 this.search.index = index;\r
108 var sortIndex = this.findSortIndex (this.search);\r
109 var m;\r
110 var position;\r
111 if (sortIndex < this.marks.size () && (m = this.marks.elementAt (sortIndex)).index == index && (position = m.getPosition ()) != null) {\r
112 } else {\r
113 position = Clazz.innerTypeInstance (javax.swing.text.GapContent.StickyPosition, this, null);\r
114 m = Clazz.innerTypeInstance (javax.swing.text.GapContent.MarkData, this, null, index, position);\r
115 position.setMark (m);\r
116 this.marks.insertElementAt (m, sortIndex);\r
117 }return position;\r
118 }, "~N");\r
119 Clazz.defineMethod (c$, "shiftEnd", \r
120 function (newSize) {\r
121 var oldGapEnd = this.getGapEnd ();\r
122 Clazz.superCall (this, javax.swing.text.GapContent, "shiftEnd", [newSize]);\r
123 var dg = this.getGapEnd () - oldGapEnd;\r
124 var adjustIndex = this.findMarkAdjustIndex (oldGapEnd);\r
125 var n = this.marks.size ();\r
126 for (var i = adjustIndex; i < n; i++) {\r
127 var mark = this.marks.elementAt (i);\r
128 mark.index += dg;\r
129 }\r
130 }, "~N");\r
131 Clazz.defineMethod (c$, "getNewArraySize", \r
132 function (reqSize) {\r
133 if (reqSize < 524288) {\r
134 return Clazz.superCall (this, javax.swing.text.GapContent, "getNewArraySize", [reqSize]);\r
135 } else {\r
136 return reqSize + 524288;\r
137 }}, "~N");\r
138 Clazz.defineMethod (c$, "shiftGap", \r
139 function (newGapStart) {\r
140 var oldGapStart = this.getGapStart ();\r
141 var dg = newGapStart - oldGapStart;\r
142 var oldGapEnd = this.getGapEnd ();\r
143 var newGapEnd = oldGapEnd + dg;\r
144 var gapSize = oldGapEnd - oldGapStart;\r
145 Clazz.superCall (this, javax.swing.text.GapContent, "shiftGap", [newGapStart]);\r
146 if (dg > 0) {\r
147 var adjustIndex = this.findMarkAdjustIndex (oldGapStart);\r
148 var n = this.marks.size ();\r
149 for (var i = adjustIndex; i < n; i++) {\r
150 var mark = this.marks.elementAt (i);\r
151 if (mark.index >= newGapEnd) {\r
152 break;\r
153 }mark.index -= gapSize;\r
154 }\r
155 } else if (dg < 0) {\r
156 var adjustIndex = this.findMarkAdjustIndex (newGapStart);\r
157 var n = this.marks.size ();\r
158 for (var i = adjustIndex; i < n; i++) {\r
159 var mark = this.marks.elementAt (i);\r
160 if (mark.index >= oldGapEnd) {\r
161 break;\r
162 }mark.index += gapSize;\r
163 }\r
164 }this.resetMarksAtZero ();\r
165 }, "~N");\r
166 Clazz.defineMethod (c$, "resetMarksAtZero", \r
167 function () {\r
168 if (this.marks != null && this.getGapStart () == 0) {\r
169 var g1 = this.getGapEnd ();\r
170 for (var counter = 0, maxCounter = this.marks.size (); counter < maxCounter; counter++) {\r
171 var mark = this.marks.elementAt (counter);\r
172 if (mark.index <= g1) {\r
173 mark.index = 0;\r
174 } else {\r
175 break;\r
176 }}\r
177 }});\r
178 Clazz.defineMethod (c$, "shiftGapStartDown", \r
179 function (newGapStart) {\r
180 var adjustIndex = this.findMarkAdjustIndex (newGapStart);\r
181 var n = this.marks.size ();\r
182 var g0 = this.getGapStart ();\r
183 var g1 = this.getGapEnd ();\r
184 for (var i = adjustIndex; i < n; i++) {\r
185 var mark = this.marks.elementAt (i);\r
186 if (mark.index > g0) {\r
187 break;\r
188 }mark.index = g1;\r
189 }\r
190 Clazz.superCall (this, javax.swing.text.GapContent, "shiftGapStartDown", [newGapStart]);\r
191 this.resetMarksAtZero ();\r
192 }, "~N");\r
193 Clazz.defineMethod (c$, "shiftGapEndUp", \r
194 function (newGapEnd) {\r
195 var adjustIndex = this.findMarkAdjustIndex (this.getGapEnd ());\r
196 var n = this.marks.size ();\r
197 for (var i = adjustIndex; i < n; i++) {\r
198 var mark = this.marks.elementAt (i);\r
199 if (mark.index >= newGapEnd) {\r
200 break;\r
201 }mark.index = newGapEnd;\r
202 }\r
203 Clazz.superCall (this, javax.swing.text.GapContent, "shiftGapEndUp", [newGapEnd]);\r
204 this.resetMarksAtZero ();\r
205 }, "~N");\r
206 Clazz.defineMethod (c$, "compare", \r
207 function (o1, o2) {\r
208 if (o1.index < o2.index) {\r
209 return -1;\r
210 } else if (o1.index > o2.index) {\r
211 return 1;\r
212 } else {\r
213 return 0;\r
214 }}, "javax.swing.text.GapContent.MarkData,javax.swing.text.GapContent.MarkData");\r
215 Clazz.defineMethod (c$, "findMarkAdjustIndex", \r
216 function (searchIndex) {\r
217 this.search.index = Math.max (searchIndex, 1);\r
218 var index = this.findSortIndex (this.search);\r
219 for (var i = index - 1; i >= 0; i--) {\r
220 var d = this.marks.elementAt (i);\r
221 if (d.index != this.search.index) {\r
222 break;\r
223 }index -= 1;\r
224 }\r
225 return index;\r
226 }, "~N");\r
227 Clazz.defineMethod (c$, "findSortIndex", \r
228 function (o) {\r
229 var lower = 0;\r
230 var upper = this.marks.size () - 1;\r
231 var mid = 0;\r
232 if (upper == -1) {\r
233 return 0;\r
234 }var cmp = 0;\r
235 var last = this.marks.elementAt (upper);\r
236 cmp = this.compare (o, last);\r
237 if (cmp > 0) return upper + 1;\r
238 while (lower <= upper) {\r
239 mid = lower + (Clazz.doubleToInt ((upper - lower) / 2));\r
240 var entry = this.marks.elementAt (mid);\r
241 cmp = this.compare (o, entry);\r
242 if (cmp == 0) {\r
243 return mid;\r
244 } else if (cmp < 0) {\r
245 upper = mid - 1;\r
246 } else {\r
247 lower = mid + 1;\r
248 }}\r
249 return (cmp < 0) ? mid : mid + 1;\r
250 }, "javax.swing.text.GapContent.MarkData");\r
251 Clazz.defineMethod (c$, "removeUnusedMarks", \r
252 function () {\r
253 var n = this.marks.size ();\r
254 var cleaned =  new javax.swing.text.GapContent.MarkVector (n);\r
255 for (var i = 0; i < n; i++) {\r
256 var mark = this.marks.elementAt (i);\r
257 if (mark != null) {\r
258 cleaned.addElement (mark);\r
259 }}\r
260 this.marks = cleaned;\r
261 });\r
262 Clazz.defineMethod (c$, "getPositionsInRange", \r
263 function (v, offset, length) {\r
264 var endOffset = offset + length;\r
265 var startIndex;\r
266 var endIndex;\r
267 var g0 = this.getGapStart ();\r
268 var g1 = this.getGapEnd ();\r
269 if (offset < g0) {\r
270 if (offset == 0) {\r
271 startIndex = 0;\r
272 } else {\r
273 startIndex = this.findMarkAdjustIndex (offset);\r
274 }if (endOffset >= g0) {\r
275 endIndex = this.findMarkAdjustIndex (endOffset + (g1 - g0) + 1);\r
276 } else {\r
277 endIndex = this.findMarkAdjustIndex (endOffset + 1);\r
278 }} else {\r
279 startIndex = this.findMarkAdjustIndex (offset + (g1 - g0));\r
280 endIndex = this.findMarkAdjustIndex (endOffset + (g1 - g0) + 1);\r
281 }var placeIn = (v == null) ?  new java.util.Vector (Math.max (1, endIndex - startIndex)) : v;\r
282 for (var counter = startIndex; counter < endIndex; counter++) {\r
283 placeIn.addElement (Clazz.innerTypeInstance (javax.swing.text.GapContent.UndoPosRef, this, null, this.marks.elementAt (counter)));\r
284 }\r
285 return placeIn;\r
286 }, "java.util.Vector,~N,~N");\r
287 Clazz.defineMethod (c$, "updateUndoPositions", \r
288 function (positions, offset, length) {\r
289 var endOffset = offset + length;\r
290 var g1 = this.getGapEnd ();\r
291 var startIndex;\r
292 var endIndex = this.findMarkAdjustIndex (g1 + 1);\r
293 if (offset != 0) {\r
294 startIndex = this.findMarkAdjustIndex (g1);\r
295 } else {\r
296 startIndex = 0;\r
297 }for (var counter = positions.size () - 1; counter >= 0; counter--) {\r
298 var ref = positions.elementAt (counter);\r
299 ref.resetLocation (endOffset, g1);\r
300 }\r
301 if (startIndex < endIndex) {\r
302 var sorted =  new Array (endIndex - startIndex);\r
303 var addIndex = 0;\r
304 var counter;\r
305 if (offset == 0) {\r
306 for (counter = startIndex; counter < endIndex; counter++) {\r
307 var mark = this.marks.elementAt (counter);\r
308 if (mark.index == 0) {\r
309 sorted[addIndex++] = mark;\r
310 }}\r
311 for (counter = startIndex; counter < endIndex; counter++) {\r
312 var mark = this.marks.elementAt (counter);\r
313 if (mark.index != 0) {\r
314 sorted[addIndex++] = mark;\r
315 }}\r
316 } else {\r
317 for (counter = startIndex; counter < endIndex; counter++) {\r
318 var mark = this.marks.elementAt (counter);\r
319 if (mark.index != g1) {\r
320 sorted[addIndex++] = mark;\r
321 }}\r
322 for (counter = startIndex; counter < endIndex; counter++) {\r
323 var mark = this.marks.elementAt (counter);\r
324 if (mark.index == g1) {\r
325 sorted[addIndex++] = mark;\r
326 }}\r
327 }this.marks.replaceRange (startIndex, endIndex, sorted);\r
328 }}, "java.util.Vector,~N,~N");\r
329 c$.$GapContent$MarkData$ = function () {\r
330 Clazz.pu$h(self.c$);\r
331 c$ = Clazz.decorateAsClass (function () {\r
332 Clazz.prepareCallback (this, arguments);\r
333 this.ref = null;\r
334 this.index = 0;\r
335 Clazz.instantialize (this, arguments);\r
336 }, javax.swing.text.GapContent, "MarkData");\r
337 Clazz.makeConstructor (c$, \r
338 function (a) {\r
339 this.index = a;\r
340 }, "~N");\r
341 Clazz.makeConstructor (c$, \r
342 function (a, b) {\r
343 this.ref = b;\r
344 this.index = a;\r
345 }, "~N,javax.swing.text.GapContent.StickyPosition");\r
346 Clazz.defineMethod (c$, "getOffset", \r
347 function () {\r
348 var a = this.b$["javax.swing.text.GapContent"].getGapStart ();\r
349 var b = this.b$["javax.swing.text.GapContent"].getGapEnd ();\r
350 var c = (this.index < a) ? this.index : this.index - (b - a);\r
351 return Math.max (c, 0);\r
352 });\r
353 Clazz.defineMethod (c$, "getPosition", \r
354 function () {\r
355 return this.ref;\r
356 });\r
357 c$ = Clazz.p0p ();\r
358 };\r
359 c$.$GapContent$StickyPosition$ = function () {\r
360 Clazz.pu$h(self.c$);\r
361 c$ = Clazz.decorateAsClass (function () {\r
362 Clazz.prepareCallback (this, arguments);\r
363 this.mark = null;\r
364 Clazz.instantialize (this, arguments);\r
365 }, javax.swing.text.GapContent, "StickyPosition", null, javax.swing.text.Position);\r
366 Clazz.makeConstructor (c$, \r
367 function () {\r
368 });\r
369 Clazz.defineMethod (c$, "setMark", \r
370 function (a) {\r
371 this.mark = a;\r
372 }, "javax.swing.text.GapContent.MarkData");\r
373 Clazz.overrideMethod (c$, "getOffset", \r
374 function () {\r
375 return this.mark.getOffset ();\r
376 });\r
377 Clazz.overrideMethod (c$, "toString", \r
378 function () {\r
379 return Integer.toString (this.getOffset ());\r
380 });\r
381 c$ = Clazz.p0p ();\r
382 };\r
383 c$.$GapContent$UndoPosRef$ = function () {\r
384 Clazz.pu$h(self.c$);\r
385 c$ = Clazz.decorateAsClass (function () {\r
386 Clazz.prepareCallback (this, arguments);\r
387 this.undoLocation = 0;\r
388 this.rec = null;\r
389 Clazz.instantialize (this, arguments);\r
390 }, javax.swing.text.GapContent, "UndoPosRef");\r
391 Clazz.makeConstructor (c$, \r
392 function (a) {\r
393 this.rec = a;\r
394 this.undoLocation = a.getOffset ();\r
395 }, "javax.swing.text.GapContent.MarkData");\r
396 Clazz.defineMethod (c$, "resetLocation", \r
397 function (a, b) {\r
398 if (this.undoLocation != a) {\r
399 this.rec.index = this.undoLocation;\r
400 } else {\r
401 this.rec.index = b;\r
402 }}, "~N,~N");\r
403 c$ = Clazz.p0p ();\r
404 };\r
405 c$.$GapContent$InsertUndo$ = function () {\r
406 Clazz.pu$h(self.c$);\r
407 c$ = Clazz.decorateAsClass (function () {\r
408 Clazz.prepareCallback (this, arguments);\r
409 this.offset = 0;\r
410 this.length = 0;\r
411 this.string = null;\r
412 this.posRefs = null;\r
413 Clazz.instantialize (this, arguments);\r
414 }, javax.swing.text.GapContent, "InsertUndo", javax.swing.undo.AbstractUndoableEdit);\r
415 Clazz.makeConstructor (c$, \r
416 function (a, b) {\r
417 Clazz.superConstructor (this, javax.swing.text.GapContent.InsertUndo);\r
418 this.offset = a;\r
419 this.length = b;\r
420 }, "~N,~N");\r
421 Clazz.defineMethod (c$, "undo", \r
422 function () {\r
423 Clazz.superCall (this, javax.swing.text.GapContent.InsertUndo, "undo", []);\r
424 try {\r
425 this.posRefs = this.b$["javax.swing.text.GapContent"].getPositionsInRange (null, this.offset, this.length);\r
426 this.string = this.b$["javax.swing.text.GapContent"].getString (this.offset, this.length);\r
427 this.b$["javax.swing.text.GapContent"].remove (this.offset, this.length);\r
428 } catch (bl) {\r
429 if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
430 throw  new javax.swing.undo.CannotUndoException ();\r
431 } else {\r
432 throw bl;\r
433 }\r
434 }\r
435 });\r
436 Clazz.defineMethod (c$, "redo", \r
437 function () {\r
438 Clazz.superCall (this, javax.swing.text.GapContent.InsertUndo, "redo", []);\r
439 try {\r
440 this.b$["javax.swing.text.GapContent"].insertString (this.offset, this.string);\r
441 this.string = null;\r
442 if (this.posRefs != null) {\r
443 this.b$["javax.swing.text.GapContent"].updateUndoPositions (this.posRefs, this.offset, this.length);\r
444 this.posRefs = null;\r
445 }} catch (bl) {\r
446 if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
447 throw  new javax.swing.undo.CannotRedoException ();\r
448 } else {\r
449 throw bl;\r
450 }\r
451 }\r
452 });\r
453 c$ = Clazz.p0p ();\r
454 };\r
455 c$.$GapContent$RemoveUndo$ = function () {\r
456 Clazz.pu$h(self.c$);\r
457 c$ = Clazz.decorateAsClass (function () {\r
458 Clazz.prepareCallback (this, arguments);\r
459 this.offset = 0;\r
460 this.length = 0;\r
461 this.string = null;\r
462 this.posRefs = null;\r
463 Clazz.instantialize (this, arguments);\r
464 }, javax.swing.text.GapContent, "RemoveUndo", javax.swing.undo.AbstractUndoableEdit);\r
465 Clazz.makeConstructor (c$, \r
466 function (a, b) {\r
467 Clazz.superConstructor (this, javax.swing.text.GapContent.RemoveUndo);\r
468 this.offset = a;\r
469 this.string = b;\r
470 this.length = b.length;\r
471 this.posRefs = this.b$["javax.swing.text.GapContent"].getPositionsInRange (null, a, this.length);\r
472 }, "~N,~S");\r
473 Clazz.defineMethod (c$, "undo", \r
474 function () {\r
475 Clazz.superCall (this, javax.swing.text.GapContent.RemoveUndo, "undo", []);\r
476 try {\r
477 this.b$["javax.swing.text.GapContent"].insertString (this.offset, this.string);\r
478 if (this.posRefs != null) {\r
479 this.b$["javax.swing.text.GapContent"].updateUndoPositions (this.posRefs, this.offset, this.length);\r
480 this.posRefs = null;\r
481 }this.string = null;\r
482 } catch (bl) {\r
483 if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
484 throw  new javax.swing.undo.CannotUndoException ();\r
485 } else {\r
486 throw bl;\r
487 }\r
488 }\r
489 });\r
490 Clazz.defineMethod (c$, "redo", \r
491 function () {\r
492 Clazz.superCall (this, javax.swing.text.GapContent.RemoveUndo, "redo", []);\r
493 try {\r
494 this.string = this.b$["javax.swing.text.GapContent"].getString (this.offset, this.length);\r
495 this.posRefs = this.b$["javax.swing.text.GapContent"].getPositionsInRange (null, this.offset, this.length);\r
496 this.b$["javax.swing.text.GapContent"].remove (this.offset, this.length);\r
497 } catch (bl) {\r
498 if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
499 throw  new javax.swing.undo.CannotRedoException ();\r
500 } else {\r
501 throw bl;\r
502 }\r
503 }\r
504 });\r
505 c$ = Clazz.p0p ();\r
506 };\r
507 Clazz.pu$h(self.c$);\r
508 c$ = Clazz.decorateAsClass (function () {\r
509 this.oneMark = null;\r
510 Clazz.instantialize (this, arguments);\r
511 }, javax.swing.text.GapContent, "MarkVector", javax.swing.text.GapVector);\r
512 Clazz.prepareFields (c$, function () {\r
513 this.oneMark =  new Array (1);\r
514 });\r
515 Clazz.overrideMethod (c$, "allocateArray", \r
516 function (a) {\r
517 return  new Array (a);\r
518 }, "~N");\r
519 Clazz.overrideMethod (c$, "getArrayLength", \r
520 function () {\r
521 var a = this.getArray ();\r
522 return a.length;\r
523 });\r
524 Clazz.defineMethod (c$, "size", \r
525 function () {\r
526 var a = this.getArrayLength () - (this.getGapEnd () - this.getGapStart ());\r
527 return a;\r
528 });\r
529 Clazz.defineMethod (c$, "insertElementAt", \r
530 function (a, b) {\r
531 this.oneMark[0] = a;\r
532 this.replace (b, 0, this.oneMark, 1);\r
533 }, "javax.swing.text.GapContent.MarkData,~N");\r
534 Clazz.defineMethod (c$, "addElement", \r
535 function (a) {\r
536 this.insertElementAt (a, this.size ());\r
537 }, "javax.swing.text.GapContent.MarkData");\r
538 Clazz.defineMethod (c$, "elementAt", \r
539 function (a) {\r
540 var b = this.getGapStart ();\r
541 var c = this.getGapEnd ();\r
542 var d = this.getArray ();\r
543 if (a < b) {\r
544 return d[a];\r
545 } else {\r
546 a += c - b;\r
547 return d[a];\r
548 }}, "~N");\r
549 Clazz.defineMethod (c$, "replaceRange", \r
550 function (a, b, c) {\r
551 var d = this.getGapStart ();\r
552 var e = this.getGapEnd ();\r
553 var f = a;\r
554 var g = 0;\r
555 var h = this.getArray ();\r
556 if (a >= d) {\r
557 f += (e - d);\r
558 b += (e - d);\r
559 } else if (b >= d) {\r
560 b += (e - d);\r
561 while (f < d) {\r
562 h[f++] = c[g++];\r
563 }\r
564 f = e;\r
565 } else {\r
566 while (f < b) {\r
567 h[f++] = c[g++];\r
568 }\r
569 }while (f < b) {\r
570 h[f++] = c[g++];\r
571 }\r
572 }, "~N,~N,~A");\r
573 c$ = Clazz.p0p ();\r
574 Clazz.defineStatics (c$,\r
575 "empty",  Clazz.newCharArray (0, '\0'),\r
576 "GROWTH_SIZE", 524288);\r
577 });\r