c42b2d6956600bccb3b5f2fbbabe8a9e0824eb5b
[jalviewjs.git] / site / j2s / javax / swing / text / TableView.js
1 Clazz.declarePackage ("javax.swing.text");\r
2 Clazz.load (["javax.swing.text.BoxView", "java.util.BitSet"], "javax.swing.text.TableView", ["java.util.Vector", "java.awt.Rectangle", "javax.swing.SizeRequirements"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.columnSpans = null;\r
5 this.columnOffsets = null;\r
6 this.columnRequirements = null;\r
7 this.rows = null;\r
8 this.gridValid = false;\r
9 if (!Clazz.isClassDefined ("javax.swing.text.TableView.TableRow")) {\r
10 javax.swing.text.TableView.$TableView$TableRow$ ();\r
11 }\r
12 if (!Clazz.isClassDefined ("javax.swing.text.TableView.TableCell")) {\r
13 javax.swing.text.TableView.$TableView$TableCell$ ();\r
14 }\r
15 Clazz.instantialize (this, arguments);\r
16 }, javax.swing.text, "TableView", javax.swing.text.BoxView);\r
17 Clazz.makeConstructor (c$, \r
18 function (elem) {\r
19 Clazz.superConstructor (this, javax.swing.text.TableView, [elem, 1]);\r
20 this.rows =  new java.util.Vector ();\r
21 this.gridValid = false;\r
22 }, "javax.swing.text.Element");\r
23 Clazz.defineMethod (c$, "createTableRow", \r
24 function (elem) {\r
25 return Clazz.innerTypeInstance (javax.swing.text.TableView.TableRow, this, null, elem);\r
26 }, "javax.swing.text.Element");\r
27 Clazz.defineMethod (c$, "createTableCell", \r
28 function (elem) {\r
29 return Clazz.innerTypeInstance (javax.swing.text.TableView.TableCell, this, null, elem);\r
30 }, "javax.swing.text.Element");\r
31 Clazz.defineMethod (c$, "getColumnCount", \r
32 function () {\r
33 return this.columnSpans.length;\r
34 });\r
35 Clazz.defineMethod (c$, "getColumnSpan", \r
36 function (col) {\r
37 return this.columnSpans[col];\r
38 }, "~N");\r
39 Clazz.defineMethod (c$, "getRowCount", \r
40 function () {\r
41 return this.rows.size ();\r
42 });\r
43 Clazz.defineMethod (c$, "getRowSpan", \r
44 function (row) {\r
45 var rv = this.getRow (row);\r
46 if (rv != null) {\r
47 return Clazz.floatToInt (rv.getPreferredSpan (1));\r
48 }return 0;\r
49 }, "~N");\r
50 Clazz.defineMethod (c$, "getRow", \r
51 function (row) {\r
52 if (row < this.rows.size ()) {\r
53 return this.rows.elementAt (row);\r
54 }return null;\r
55 }, "~N");\r
56 Clazz.defineMethod (c$, "getColumnsOccupied", \r
57 function (v) {\r
58 return 1;\r
59 }, "javax.swing.text.View");\r
60 Clazz.defineMethod (c$, "getRowsOccupied", \r
61 function (v) {\r
62 return 1;\r
63 }, "javax.swing.text.View");\r
64 Clazz.defineMethod (c$, "invalidateGrid", \r
65 function () {\r
66 this.gridValid = false;\r
67 });\r
68 Clazz.defineMethod (c$, "forwardUpdate", \r
69 function (ec, e, a, f) {\r
70 Clazz.superCall (this, javax.swing.text.TableView, "forwardUpdate", [ec, e, a, f]);\r
71 if (a != null) {\r
72 var c = this.getContainer ();\r
73 if (c != null) {\r
74 var alloc = (Clazz.instanceOf (a, java.awt.Rectangle)) ? a : a.getBounds ();\r
75 c.repaint (alloc.x, alloc.y, alloc.width, alloc.height);\r
76 }}}, "javax.swing.event.DocumentEvent.ElementChange,javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");\r
77 Clazz.defineMethod (c$, "replace", \r
78 function (offset, length, views) {\r
79 Clazz.superCall (this, javax.swing.text.TableView, "replace", [offset, length, views]);\r
80 this.invalidateGrid ();\r
81 }, "~N,~N,~A");\r
82 Clazz.defineMethod (c$, "updateGrid", \r
83 function () {\r
84 if (!this.gridValid) {\r
85 this.rows.removeAllElements ();\r
86 var n = this.getViewCount ();\r
87 for (var i = 0; i < n; i++) {\r
88 var v = this.getView (i);\r
89 if (Clazz.instanceOf (v, javax.swing.text.TableView.TableRow)) {\r
90 this.rows.addElement (v);\r
91 var rv = v;\r
92 rv.clearFilledColumns ();\r
93 rv.setRow (i);\r
94 }}\r
95 var maxColumns = 0;\r
96 var nrows = this.rows.size ();\r
97 for (var row = 0; row < nrows; row++) {\r
98 var rv = this.getRow (row);\r
99 var col = 0;\r
100 for (var cell = 0; cell < rv.getViewCount (); cell++, col++) {\r
101 var cv = rv.getView (cell);\r
102 for (; rv.isFilled (col); col++) ;\r
103 var rowSpan = this.getRowsOccupied (cv);\r
104 var colSpan = this.getColumnsOccupied (cv);\r
105 if ((colSpan > 1) || (rowSpan > 1)) {\r
106 var rowLimit = row + rowSpan;\r
107 var colLimit = col + colSpan;\r
108 for (var i = row; i < rowLimit; i++) {\r
109 for (var j = col; j < colLimit; j++) {\r
110 if (i != row || j != col) {\r
111 this.addFill (i, j);\r
112 }}\r
113 }\r
114 if (colSpan > 1) {\r
115 col += colSpan - 1;\r
116 }}}\r
117 maxColumns = Math.max (maxColumns, col);\r
118 }\r
119 this.columnSpans =  Clazz.newIntArray (maxColumns, 0);\r
120 this.columnOffsets =  Clazz.newIntArray (maxColumns, 0);\r
121 this.columnRequirements =  new Array (maxColumns);\r
122 for (var i = 0; i < maxColumns; i++) {\r
123 this.columnRequirements[i] =  new javax.swing.SizeRequirements ();\r
124 }\r
125 this.gridValid = true;\r
126 }});\r
127 Clazz.defineMethod (c$, "addFill", \r
128 function (row, col) {\r
129 var rv = this.getRow (row);\r
130 if (rv != null) {\r
131 rv.fillColumn (col);\r
132 }}, "~N,~N");\r
133 Clazz.defineMethod (c$, "layoutColumns", \r
134 function (targetSpan, offsets, spans, reqs) {\r
135 javax.swing.SizeRequirements.calculateTiledPositions (targetSpan, null, reqs, offsets, spans);\r
136 }, "~N,~A,~A,~A");\r
137 Clazz.defineMethod (c$, "layoutMinorAxis", \r
138 function (targetSpan, axis, offsets, spans) {\r
139 this.updateGrid ();\r
140 var n = this.getRowCount ();\r
141 for (var i = 0; i < n; i++) {\r
142 var row = this.getRow (i);\r
143 row.layoutChanged (axis);\r
144 }\r
145 this.layoutColumns (targetSpan, this.columnOffsets, this.columnSpans, this.columnRequirements);\r
146 Clazz.superCall (this, javax.swing.text.TableView, "layoutMinorAxis", [targetSpan, axis, offsets, spans]);\r
147 }, "~N,~N,~A,~A");\r
148 Clazz.overrideMethod (c$, "calculateMinorAxisRequirements", \r
149 function (axis, r) {\r
150 this.updateGrid ();\r
151 this.calculateColumnRequirements (axis);\r
152 if (r == null) {\r
153 r =  new javax.swing.SizeRequirements ();\r
154 }var min = 0;\r
155 var pref = 0;\r
156 var max = 0;\r
157 for (var i = 0; i < this.columnRequirements.length; i++) {\r
158 var req = this.columnRequirements[i];\r
159 min += req.minimum;\r
160 pref += req.preferred;\r
161 max += req.maximum;\r
162 }\r
163 r.minimum = min;\r
164 r.preferred = pref;\r
165 r.maximum = max;\r
166 r.alignment = 0;\r
167 return r;\r
168 }, "~N,javax.swing.SizeRequirements");\r
169 Clazz.defineMethod (c$, "calculateColumnRequirements", \r
170 function (axis) {\r
171 var hasMultiColumn = false;\r
172 var nrows = this.getRowCount ();\r
173 for (var i = 0; i < nrows; i++) {\r
174 var row = this.getRow (i);\r
175 var col = 0;\r
176 var ncells = row.getViewCount ();\r
177 for (var cell = 0; cell < ncells; cell++, col++) {\r
178 var cv = row.getView (cell);\r
179 for (; row.isFilled (col); col++) ;\r
180 var colSpan = this.getColumnsOccupied (cv);\r
181 if (colSpan == 1) {\r
182 this.checkSingleColumnCell (axis, col, cv);\r
183 } else {\r
184 hasMultiColumn = true;\r
185 col += colSpan - 1;\r
186 }}\r
187 }\r
188 if (hasMultiColumn) {\r
189 for (var i = 0; i < nrows; i++) {\r
190 var row = this.getRow (i);\r
191 var col = 0;\r
192 var ncells = row.getViewCount ();\r
193 for (var cell = 0; cell < ncells; cell++, col++) {\r
194 var cv = row.getView (cell);\r
195 for (; row.isFilled (col); col++) ;\r
196 var colSpan = this.getColumnsOccupied (cv);\r
197 if (colSpan > 1) {\r
198 this.checkMultiColumnCell (axis, col, colSpan, cv);\r
199 col += colSpan - 1;\r
200 }}\r
201 }\r
202 }}, "~N");\r
203 Clazz.defineMethod (c$, "checkSingleColumnCell", \r
204 function (axis, col, v) {\r
205 var req = this.columnRequirements[col];\r
206 req.minimum = Math.max (Clazz.floatToInt (v.getMinimumSpan (axis)), req.minimum);\r
207 req.preferred = Math.max (Clazz.floatToInt (v.getPreferredSpan (axis)), req.preferred);\r
208 req.maximum = Math.max (Clazz.floatToInt (v.getMaximumSpan (axis)), req.maximum);\r
209 }, "~N,~N,javax.swing.text.View");\r
210 Clazz.defineMethod (c$, "checkMultiColumnCell", \r
211 function (axis, col, ncols, v) {\r
212 var min = 0;\r
213 var pref = 0;\r
214 for (var i = 0; i < ncols; i++) {\r
215 var req = this.columnRequirements[col + i];\r
216 min += req.minimum;\r
217 pref += req.preferred;\r
218 }\r
219 var cmin = Clazz.floatToInt (v.getMinimumSpan (axis));\r
220 if (cmin > min) {\r
221 var reqs =  new Array (ncols);\r
222 for (var i = 0; i < ncols; i++) {\r
223 var r = reqs[i] = this.columnRequirements[col + i];\r
224 r.maximum = Math.max (r.maximum, Clazz.floatToInt (v.getMaximumSpan (axis)));\r
225 }\r
226 var spans =  Clazz.newIntArray (ncols, 0);\r
227 var offsets =  Clazz.newIntArray (ncols, 0);\r
228 javax.swing.SizeRequirements.calculateTiledPositions (cmin, null, reqs, offsets, spans);\r
229 for (var i = 0; i < ncols; i++) {\r
230 var req = reqs[i];\r
231 req.minimum = Math.max (spans[i], req.minimum);\r
232 req.preferred = Math.max (req.minimum, req.preferred);\r
233 req.maximum = Math.max (req.preferred, req.maximum);\r
234 }\r
235 }var cpref = Clazz.floatToInt (v.getPreferredSpan (axis));\r
236 if (cpref > pref) {\r
237 var reqs =  new Array (ncols);\r
238 for (var i = 0; i < ncols; i++) {\r
239 reqs[i] = this.columnRequirements[col + i];\r
240 }\r
241 var spans =  Clazz.newIntArray (ncols, 0);\r
242 var offsets =  Clazz.newIntArray (ncols, 0);\r
243 javax.swing.SizeRequirements.calculateTiledPositions (cpref, null, reqs, offsets, spans);\r
244 for (var i = 0; i < ncols; i++) {\r
245 var req = reqs[i];\r
246 req.preferred = Math.max (spans[i], req.preferred);\r
247 req.maximum = Math.max (req.preferred, req.maximum);\r
248 }\r
249 }}, "~N,~N,~N,javax.swing.text.View");\r
250 Clazz.overrideMethod (c$, "getViewAtPosition", \r
251 function (pos, a) {\r
252 var n = this.getViewCount ();\r
253 for (var i = 0; i < n; i++) {\r
254 var v = this.getView (i);\r
255 var p0 = v.getStartOffset ();\r
256 var p1 = v.getEndOffset ();\r
257 if ((pos >= p0) && (pos < p1)) {\r
258 if (a != null) {\r
259 this.childAllocation (i, a);\r
260 }return v;\r
261 }}\r
262 if (pos == this.getEndOffset ()) {\r
263 var v = this.getView (n - 1);\r
264 if (a != null) {\r
265 this.childAllocation (n - 1, a);\r
266 }return v;\r
267 }return null;\r
268 }, "~N,java.awt.Rectangle");\r
269 c$.$TableView$TableRow$ = function () {\r
270 Clazz.pu$h(self.c$);\r
271 c$ = Clazz.decorateAsClass (function () {\r
272 Clazz.prepareCallback (this, arguments);\r
273 this.fillColumns = null;\r
274 this.row = 0;\r
275 Clazz.instantialize (this, arguments);\r
276 }, javax.swing.text.TableView, "TableRow", javax.swing.text.BoxView);\r
277 Clazz.makeConstructor (c$, \r
278 function (a) {\r
279 Clazz.superConstructor (this, javax.swing.text.TableView.TableRow, [a, 0]);\r
280 this.fillColumns =  new java.util.BitSet ();\r
281 }, "javax.swing.text.Element");\r
282 Clazz.defineMethod (c$, "clearFilledColumns", \r
283 function () {\r
284 this.fillColumns.and (javax.swing.text.TableView.EMPTY);\r
285 });\r
286 Clazz.defineMethod (c$, "fillColumn", \r
287 function (a) {\r
288 this.fillColumns.set (a);\r
289 }, "~N");\r
290 Clazz.defineMethod (c$, "isFilled", \r
291 function (a) {\r
292 return this.fillColumns.get (a);\r
293 }, "~N");\r
294 Clazz.defineMethod (c$, "getRow", \r
295 function () {\r
296 return this.row;\r
297 });\r
298 Clazz.defineMethod (c$, "setRow", \r
299 function (a) {\r
300 this.row = a;\r
301 }, "~N");\r
302 Clazz.defineMethod (c$, "getColumnCount", \r
303 function () {\r
304 var a = 0;\r
305 var b = this.fillColumns.size ();\r
306 for (var c = 0; c < b; c++) {\r
307 if (this.fillColumns.get (c)) {\r
308 a++;\r
309 }}\r
310 return this.getViewCount () + a;\r
311 });\r
312 Clazz.defineMethod (c$, "replace", \r
313 function (a, b, c) {\r
314 Clazz.superCall (this, javax.swing.text.TableView.TableRow, "replace", [a, b, c]);\r
315 this.b$["javax.swing.text.TableView"].invalidateGrid ();\r
316 }, "~N,~N,~A");\r
317 Clazz.overrideMethod (c$, "layoutMajorAxis", \r
318 function (a, b, c, d) {\r
319 var e = 0;\r
320 var f = this.getViewCount ();\r
321 for (var g = 0; g < f; g++, e++) {\r
322 var h = this.getView (g);\r
323 for (; this.isFilled (e); e++) ;\r
324 var i = this.b$["javax.swing.text.TableView"].getColumnsOccupied (h);\r
325 d[g] = this.b$["javax.swing.text.TableView"].columnSpans[e];\r
326 c[g] = this.b$["javax.swing.text.TableView"].columnOffsets[e];\r
327 if (i > 1) {\r
328 var j = this.b$["javax.swing.text.TableView"].columnSpans.length;\r
329 for (var k = 1; k < i; k++) {\r
330 if ((e + k) < j) {\r
331 d[g] += this.b$["javax.swing.text.TableView"].columnSpans[e + k];\r
332 }}\r
333 e += i - 1;\r
334 }}\r
335 }, "~N,~N,~A,~A");\r
336 Clazz.defineMethod (c$, "layoutMinorAxis", \r
337 function (a, b, c, d) {\r
338 Clazz.superCall (this, javax.swing.text.TableView.TableRow, "layoutMinorAxis", [a, b, c, d]);\r
339 var e = 0;\r
340 var f = this.getViewCount ();\r
341 for (var g = 0; g < f; g++, e++) {\r
342 var h = this.getView (g);\r
343 for (; this.isFilled (e); e++) ;\r
344 var i = this.b$["javax.swing.text.TableView"].getColumnsOccupied (h);\r
345 var j = this.b$["javax.swing.text.TableView"].getRowsOccupied (h);\r
346 if (j > 1) {\r
347 for (var k = 1; k < j; k++) {\r
348 var l = this.getRow () + k;\r
349 if (l < this.b$["javax.swing.text.TableView"].getViewCount ()) {\r
350 var m = this.b$["javax.swing.text.TableView"].getSpan (1, this.getRow () + k);\r
351 d[g] += m;\r
352 }}\r
353 }if (i > 1) {\r
354 e += i - 1;\r
355 }}\r
356 }, "~N,~N,~A,~A");\r
357 Clazz.overrideMethod (c$, "getResizeWeight", \r
358 function (a) {\r
359 return 1;\r
360 }, "~N");\r
361 Clazz.overrideMethod (c$, "getViewAtPosition", \r
362 function (a, b) {\r
363 var c = this.getViewCount ();\r
364 for (var d = 0; d < c; d++) {\r
365 var e = this.getView (d);\r
366 var f = e.getStartOffset ();\r
367 var g = e.getEndOffset ();\r
368 if ((a >= f) && (a < g)) {\r
369 if (b != null) {\r
370 this.childAllocation (d, b);\r
371 }return e;\r
372 }}\r
373 if (a == this.getEndOffset ()) {\r
374 var e = this.getView (c - 1);\r
375 if (b != null) {\r
376 this.childAllocation (c - 1, b);\r
377 }return e;\r
378 }return null;\r
379 }, "~N,java.awt.Rectangle");\r
380 c$ = Clazz.p0p ();\r
381 };\r
382 c$.$TableView$TableCell$ = function () {\r
383 Clazz.pu$h(self.c$);\r
384 c$ = Clazz.decorateAsClass (function () {\r
385 Clazz.prepareCallback (this, arguments);\r
386 this.row = 0;\r
387 this.col = 0;\r
388 Clazz.instantialize (this, arguments);\r
389 }, javax.swing.text.TableView, "TableCell", javax.swing.text.BoxView, javax.swing.text.TableView.GridCell);\r
390 Clazz.makeConstructor (c$, \r
391 function (a) {\r
392 Clazz.superConstructor (this, javax.swing.text.TableView.TableCell, [a, 1]);\r
393 }, "javax.swing.text.Element");\r
394 Clazz.overrideMethod (c$, "getColumnCount", \r
395 function () {\r
396 return 1;\r
397 });\r
398 Clazz.overrideMethod (c$, "getRowCount", \r
399 function () {\r
400 return 1;\r
401 });\r
402 Clazz.overrideMethod (c$, "setGridLocation", \r
403 function (a, b) {\r
404 this.row = a;\r
405 this.col = b;\r
406 }, "~N,~N");\r
407 Clazz.overrideMethod (c$, "getGridRow", \r
408 function () {\r
409 return this.row;\r
410 });\r
411 Clazz.overrideMethod (c$, "getGridColumn", \r
412 function () {\r
413 return this.col;\r
414 });\r
415 c$ = Clazz.p0p ();\r
416 };\r
417 Clazz.declareInterface (javax.swing.text.TableView, "GridCell");\r
418 c$.EMPTY = c$.prototype.EMPTY =  new java.util.BitSet ();\r
419 });\r