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