f4f66f12768bb847b956e6d2ea171c441a579304
[jalviewjs.git] / site / swingjs / j2s / javax / swing / text / StringContent.js
1 Clazz.declarePackage ("javax.swing.text");\r
2 Clazz.load (["javax.swing.text.AbstractDocument", "$.Position", "javax.swing.undo.AbstractUndoableEdit"], "javax.swing.text.StringContent", ["java.util.Vector", "javax.swing.text.BadLocationException", "javax.swing.undo.CannotRedoException", "$.CannotUndoException"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.data = null;\r
5 this.count = 0;\r
6 this.marks = null;\r
7 if (!Clazz.isClassDefined ("javax.swing.text.StringContent.PosRec")) {\r
8 javax.swing.text.StringContent.$StringContent$PosRec$ ();\r
9 }\r
10 if (!Clazz.isClassDefined ("javax.swing.text.StringContent.StickyPosition")) {\r
11 javax.swing.text.StringContent.$StringContent$StickyPosition$ ();\r
12 }\r
13 if (!Clazz.isClassDefined ("javax.swing.text.StringContent.UndoPosRef")) {\r
14 javax.swing.text.StringContent.$StringContent$UndoPosRef$ ();\r
15 }\r
16 if (!Clazz.isClassDefined ("javax.swing.text.StringContent.InsertUndo")) {\r
17 javax.swing.text.StringContent.$StringContent$InsertUndo$ ();\r
18 }\r
19 if (!Clazz.isClassDefined ("javax.swing.text.StringContent.RemoveUndo")) {\r
20 javax.swing.text.StringContent.$StringContent$RemoveUndo$ ();\r
21 }\r
22 Clazz.instantialize (this, arguments);\r
23 }, javax.swing.text, "StringContent", null, javax.swing.text.AbstractDocument.Content);\r
24 Clazz.makeConstructor (c$, \r
25 function () {\r
26 this.construct (10);\r
27 });\r
28 Clazz.makeConstructor (c$, \r
29 function (initialLength) {\r
30 if (initialLength < 1) {\r
31 initialLength = 1;\r
32 }this.data =  Clazz.newCharArray (initialLength, '\0');\r
33 this.data[0] = '\n';\r
34 this.count = 1;\r
35 }, "~N");\r
36 Clazz.overrideMethod (c$, "length", \r
37 function () {\r
38 return this.count;\r
39 });\r
40 Clazz.overrideMethod (c$, "insertString", \r
41 function (where, str) {\r
42 if (where >= this.count || where < 0) {\r
43 throw  new javax.swing.text.BadLocationException ("Invalid location", this.count);\r
44 }var chars = str.toCharArray ();\r
45 this.replace (where, 0, chars, 0, chars.length);\r
46 if (this.marks != null) {\r
47 this.updateMarksForInsert (where, str.length);\r
48 }return Clazz.innerTypeInstance (javax.swing.text.StringContent.InsertUndo, this, null, where, str.length);\r
49 }, "~N,~S");\r
50 Clazz.overrideMethod (c$, "remove", \r
51 function (where, nitems) {\r
52 if (where + nitems >= this.count) {\r
53 throw  new javax.swing.text.BadLocationException ("Invalid range", this.count);\r
54 }var removedString = this.getString (where, nitems);\r
55 var edit = Clazz.innerTypeInstance (javax.swing.text.StringContent.RemoveUndo, this, null, where, removedString);\r
56 this.replace (where, nitems, javax.swing.text.StringContent.empty, 0, 0);\r
57 if (this.marks != null) {\r
58 this.updateMarksForRemove (where, nitems);\r
59 }return edit;\r
60 }, "~N,~N");\r
61 Clazz.overrideMethod (c$, "getString", \r
62 function (where, len) {\r
63 if (where + len > this.count) {\r
64 throw  new javax.swing.text.BadLocationException ("Invalid range", this.count);\r
65 }return  String.instantialize (this.data, where, len);\r
66 }, "~N,~N");\r
67 Clazz.overrideMethod (c$, "getChars", \r
68 function (where, len, chars) {\r
69 if (where + len > this.count) {\r
70 throw  new javax.swing.text.BadLocationException ("Invalid location", this.count);\r
71 }chars.array = this.data;\r
72 chars.offset = where;\r
73 chars.count = len;\r
74 }, "~N,~N,javax.swing.text.Segment");\r
75 Clazz.overrideMethod (c$, "createPosition", \r
76 function (offset) {\r
77 if (this.marks == null) {\r
78 this.marks =  new java.util.Vector ();\r
79 }return Clazz.innerTypeInstance (javax.swing.text.StringContent.StickyPosition, this, null, offset);\r
80 }, "~N");\r
81 Clazz.defineMethod (c$, "replace", \r
82 function (offset, length, replArray, replOffset, replLength) {\r
83 var delta = replLength - length;\r
84 var src = offset + length;\r
85 var nmove = this.count - src;\r
86 var dest = src + delta;\r
87 if ((this.count + delta) >= this.data.length) {\r
88 var newLength = Math.max (2 * this.data.length, this.count + delta);\r
89 var newData =  Clazz.newCharArray (newLength, '\0');\r
90 System.arraycopy (this.data, 0, newData, 0, offset);\r
91 System.arraycopy (replArray, replOffset, newData, offset, replLength);\r
92 System.arraycopy (this.data, src, newData, dest, nmove);\r
93 this.data = newData;\r
94 } else {\r
95 System.arraycopy (this.data, src, this.data, dest, nmove);\r
96 System.arraycopy (replArray, replOffset, this.data, offset, replLength);\r
97 }this.count = this.count + delta;\r
98 }, "~N,~N,~A,~N,~N");\r
99 Clazz.defineMethod (c$, "resize", \r
100 function (ncount) {\r
101 var ndata =  Clazz.newCharArray (ncount, '\0');\r
102 System.arraycopy (this.data, 0, ndata, 0, Math.min (ncount, this.count));\r
103 this.data = ndata;\r
104 }, "~N");\r
105 Clazz.defineMethod (c$, "updateMarksForInsert", \r
106 function (offset, length) {\r
107 if (offset == 0) {\r
108 offset = 1;\r
109 }var n = this.marks.size ();\r
110 for (var i = 0; i < n; i++) {\r
111 var mark = this.marks.elementAt (i);\r
112 if (mark.unused) {\r
113 this.marks.removeElementAt (i);\r
114 i -= 1;\r
115 n -= 1;\r
116 } else if (mark.offset >= offset) {\r
117 mark.offset += length;\r
118 }}\r
119 }, "~N,~N");\r
120 Clazz.defineMethod (c$, "updateMarksForRemove", \r
121 function (offset, length) {\r
122 var n = this.marks.size ();\r
123 for (var i = 0; i < n; i++) {\r
124 var mark = this.marks.elementAt (i);\r
125 if (mark.unused) {\r
126 this.marks.removeElementAt (i);\r
127 i -= 1;\r
128 n -= 1;\r
129 } else if (mark.offset >= (offset + length)) {\r
130 mark.offset -= length;\r
131 } else if (mark.offset >= offset) {\r
132 mark.offset = offset;\r
133 }}\r
134 }, "~N,~N");\r
135 Clazz.defineMethod (c$, "getPositionsInRange", \r
136 function (v, offset, length) {\r
137 var n = this.marks.size ();\r
138 var end = offset + length;\r
139 var placeIn = (v == null) ?  new java.util.Vector () : v;\r
140 for (var i = 0; i < n; i++) {\r
141 var mark = this.marks.elementAt (i);\r
142 if (mark.unused) {\r
143 this.marks.removeElementAt (i);\r
144 i -= 1;\r
145 n -= 1;\r
146 } else if (mark.offset >= offset && mark.offset <= end) placeIn.addElement (Clazz.innerTypeInstance (javax.swing.text.StringContent.UndoPosRef, this, null, mark));\r
147 }\r
148 return placeIn;\r
149 }, "java.util.Vector,~N,~N");\r
150 Clazz.defineMethod (c$, "updateUndoPositions", \r
151 function (positions) {\r
152 for (var counter = positions.size () - 1; counter >= 0; counter--) {\r
153 var ref = positions.elementAt (counter);\r
154 if (ref.rec.unused) {\r
155 positions.removeElementAt (counter);\r
156 } else ref.resetLocation ();\r
157 }\r
158 }, "java.util.Vector");\r
159 c$.$StringContent$PosRec$ = function () {\r
160 Clazz.pu$h(self.c$);\r
161 c$ = Clazz.decorateAsClass (function () {\r
162 Clazz.prepareCallback (this, arguments);\r
163 this.offset = 0;\r
164 this.unused = false;\r
165 Clazz.instantialize (this, arguments);\r
166 }, javax.swing.text.StringContent, "PosRec");\r
167 Clazz.makeConstructor (c$, \r
168 function (a) {\r
169 this.offset = a;\r
170 }, "~N");\r
171 c$ = Clazz.p0p ();\r
172 };\r
173 c$.$StringContent$StickyPosition$ = function () {\r
174 Clazz.pu$h(self.c$);\r
175 c$ = Clazz.decorateAsClass (function () {\r
176 Clazz.prepareCallback (this, arguments);\r
177 this.rec = null;\r
178 Clazz.instantialize (this, arguments);\r
179 }, javax.swing.text.StringContent, "StickyPosition", null, javax.swing.text.Position);\r
180 Clazz.makeConstructor (c$, \r
181 function (a) {\r
182 this.rec = Clazz.innerTypeInstance (javax.swing.text.StringContent.PosRec, this, null, a);\r
183 this.b$["javax.swing.text.StringContent"].marks.addElement (this.rec);\r
184 }, "~N");\r
185 Clazz.overrideMethod (c$, "getOffset", \r
186 function () {\r
187 return this.rec.offset;\r
188 });\r
189 Clazz.overrideMethod (c$, "finalize", \r
190 function () {\r
191 this.rec.unused = true;\r
192 });\r
193 Clazz.overrideMethod (c$, "toString", \r
194 function () {\r
195 return Integer.toString (this.getOffset ());\r
196 });\r
197 c$ = Clazz.p0p ();\r
198 };\r
199 c$.$StringContent$UndoPosRef$ = function () {\r
200 Clazz.pu$h(self.c$);\r
201 c$ = Clazz.decorateAsClass (function () {\r
202 Clazz.prepareCallback (this, arguments);\r
203 this.undoLocation = 0;\r
204 this.rec = null;\r
205 Clazz.instantialize (this, arguments);\r
206 }, javax.swing.text.StringContent, "UndoPosRef");\r
207 Clazz.makeConstructor (c$, \r
208 function (a) {\r
209 this.rec = a;\r
210 this.undoLocation = a.offset;\r
211 }, "javax.swing.text.StringContent.PosRec");\r
212 Clazz.defineMethod (c$, "resetLocation", \r
213 function () {\r
214 this.rec.offset = this.undoLocation;\r
215 });\r
216 c$ = Clazz.p0p ();\r
217 };\r
218 c$.$StringContent$InsertUndo$ = function () {\r
219 Clazz.pu$h(self.c$);\r
220 c$ = Clazz.decorateAsClass (function () {\r
221 Clazz.prepareCallback (this, arguments);\r
222 this.offset = 0;\r
223 this.length = 0;\r
224 this.string = null;\r
225 this.posRefs = null;\r
226 Clazz.instantialize (this, arguments);\r
227 }, javax.swing.text.StringContent, "InsertUndo", javax.swing.undo.AbstractUndoableEdit);\r
228 Clazz.makeConstructor (c$, \r
229 function (a, b) {\r
230 Clazz.superConstructor (this, javax.swing.text.StringContent.InsertUndo);\r
231 this.offset = a;\r
232 this.length = b;\r
233 }, "~N,~N");\r
234 Clazz.defineMethod (c$, "undo", \r
235 function () {\r
236 Clazz.superCall (this, javax.swing.text.StringContent.InsertUndo, "undo", []);\r
237 try {\r
238 {\r
239 if (this.b$["javax.swing.text.StringContent"].marks != null) this.posRefs = this.b$["javax.swing.text.StringContent"].getPositionsInRange (null, this.offset, this.length);\r
240 this.string = this.b$["javax.swing.text.StringContent"].getString (this.offset, this.length);\r
241 this.b$["javax.swing.text.StringContent"].remove (this.offset, this.length);\r
242 }} catch (bl) {\r
243 if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
244 throw  new javax.swing.undo.CannotUndoException ();\r
245 } else {\r
246 throw bl;\r
247 }\r
248 }\r
249 });\r
250 Clazz.defineMethod (c$, "redo", \r
251 function () {\r
252 Clazz.superCall (this, javax.swing.text.StringContent.InsertUndo, "redo", []);\r
253 try {\r
254 {\r
255 this.b$["javax.swing.text.StringContent"].insertString (this.offset, this.string);\r
256 this.string = null;\r
257 if (this.posRefs != null) {\r
258 this.b$["javax.swing.text.StringContent"].updateUndoPositions (this.posRefs);\r
259 this.posRefs = null;\r
260 }}} catch (bl) {\r
261 if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
262 throw  new javax.swing.undo.CannotRedoException ();\r
263 } else {\r
264 throw bl;\r
265 }\r
266 }\r
267 });\r
268 c$ = Clazz.p0p ();\r
269 };\r
270 c$.$StringContent$RemoveUndo$ = function () {\r
271 Clazz.pu$h(self.c$);\r
272 c$ = Clazz.decorateAsClass (function () {\r
273 Clazz.prepareCallback (this, arguments);\r
274 this.offset = 0;\r
275 this.length = 0;\r
276 this.string = null;\r
277 this.posRefs = null;\r
278 Clazz.instantialize (this, arguments);\r
279 }, javax.swing.text.StringContent, "RemoveUndo", javax.swing.undo.AbstractUndoableEdit);\r
280 Clazz.makeConstructor (c$, \r
281 function (a, b) {\r
282 Clazz.superConstructor (this, javax.swing.text.StringContent.RemoveUndo);\r
283 this.offset = a;\r
284 this.string = b;\r
285 this.length = b.length;\r
286 if (this.b$["javax.swing.text.StringContent"].marks != null) this.posRefs = this.b$["javax.swing.text.StringContent"].getPositionsInRange (null, a, this.length);\r
287 }, "~N,~S");\r
288 Clazz.defineMethod (c$, "undo", \r
289 function () {\r
290 Clazz.superCall (this, javax.swing.text.StringContent.RemoveUndo, "undo", []);\r
291 try {\r
292 {\r
293 this.b$["javax.swing.text.StringContent"].insertString (this.offset, this.string);\r
294 if (this.posRefs != null) {\r
295 this.b$["javax.swing.text.StringContent"].updateUndoPositions (this.posRefs);\r
296 this.posRefs = null;\r
297 }this.string = null;\r
298 }} catch (bl) {\r
299 if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
300 throw  new javax.swing.undo.CannotUndoException ();\r
301 } else {\r
302 throw bl;\r
303 }\r
304 }\r
305 });\r
306 Clazz.defineMethod (c$, "redo", \r
307 function () {\r
308 Clazz.superCall (this, javax.swing.text.StringContent.RemoveUndo, "redo", []);\r
309 try {\r
310 {\r
311 this.string = this.b$["javax.swing.text.StringContent"].getString (this.offset, this.length);\r
312 if (this.b$["javax.swing.text.StringContent"].marks != null) this.posRefs = this.b$["javax.swing.text.StringContent"].getPositionsInRange (null, this.offset, this.length);\r
313 this.b$["javax.swing.text.StringContent"].remove (this.offset, this.length);\r
314 }} catch (bl) {\r
315 if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {\r
316 throw  new javax.swing.undo.CannotRedoException ();\r
317 } else {\r
318 throw bl;\r
319 }\r
320 }\r
321 });\r
322 c$ = Clazz.p0p ();\r
323 };\r
324 Clazz.defineStatics (c$,\r
325 "empty",  Clazz.newCharArray (0, '\0'));\r
326 });\r