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;
8 this.gridValid = false;
9 if (!Clazz.isClassDefined ("javax.swing.text.TableView.TableRow")) {
10 javax.swing.text.TableView.$TableView$TableRow$ ();
12 if (!Clazz.isClassDefined ("javax.swing.text.TableView.TableCell")) {
13 javax.swing.text.TableView.$TableView$TableCell$ ();
15 Clazz.instantialize (this, arguments);
16 }, javax.swing.text, "TableView", javax.swing.text.BoxView);
17 Clazz.makeConstructor (c$,
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",
25 return Clazz.innerTypeInstance (javax.swing.text.TableView.TableRow, this, null, elem);
26 }, "javax.swing.text.Element");
27 Clazz.defineMethod (c$, "createTableCell",
29 return Clazz.innerTypeInstance (javax.swing.text.TableView.TableCell, this, null, elem);
30 }, "javax.swing.text.Element");
31 Clazz.defineMethod (c$, "getColumnCount",
33 return this.columnSpans.length;
35 Clazz.defineMethod (c$, "getColumnSpan",
37 return this.columnSpans[col];
39 Clazz.defineMethod (c$, "getRowCount",
41 return this.rows.size ();
43 Clazz.defineMethod (c$, "getRowSpan",
45 var rv = this.getRow (row);
47 return Clazz.floatToInt (rv.getPreferredSpan (1));
50 Clazz.defineMethod (c$, "getRow",
52 if (row < this.rows.size ()) {
53 return this.rows.elementAt (row);
56 Clazz.defineMethod (c$, "getColumnsOccupied",
59 }, "javax.swing.text.View");
60 Clazz.defineMethod (c$, "getRowsOccupied",
63 }, "javax.swing.text.View");
64 Clazz.defineMethod (c$, "invalidateGrid",
66 this.gridValid = false;
68 Clazz.defineMethod (c$, "forwardUpdate",
69 function (ec, e, a, f) {
70 Clazz.superCall (this, javax.swing.text.TableView, "forwardUpdate", [ec, e, a, f]);
72 var c = this.getContainer ();
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 ();
82 Clazz.defineMethod (c$, "updateGrid",
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);
92 rv.clearFilledColumns ();
96 var nrows = this.rows.size ();
97 for (var row = 0; row < nrows; row++) {
98 var rv = this.getRow (row);
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) {
117 maxColumns = Math.max (maxColumns, col);
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 ();
125 this.gridValid = true;
127 Clazz.defineMethod (c$, "addFill",
128 function (row, col) {
129 var rv = this.getRow (row);
133 Clazz.defineMethod (c$, "layoutColumns",
134 function (targetSpan, offsets, spans, reqs) {
135 javax.swing.SizeRequirements.calculateTiledPositions (targetSpan, null, reqs, offsets, spans);
137 Clazz.defineMethod (c$, "layoutMinorAxis",
138 function (targetSpan, axis, offsets, spans) {
140 var n = this.getRowCount ();
141 for (var i = 0; i < n; i++) {
142 var row = this.getRow (i);
143 row.layoutChanged (axis);
145 this.layoutColumns (targetSpan, this.columnOffsets, this.columnSpans, this.columnRequirements);
146 Clazz.superCall (this, javax.swing.text.TableView, "layoutMinorAxis", [targetSpan, axis, offsets, spans]);
148 Clazz.overrideMethod (c$, "calculateMinorAxisRequirements",
151 this.calculateColumnRequirements (axis);
153 r = new javax.swing.SizeRequirements ();
157 for (var i = 0; i < this.columnRequirements.length; i++) {
158 var req = this.columnRequirements[i];
160 pref += req.preferred;
168 }, "~N,javax.swing.SizeRequirements");
169 Clazz.defineMethod (c$, "calculateColumnRequirements",
171 var hasMultiColumn = false;
172 var nrows = this.getRowCount ();
173 for (var i = 0; i < nrows; i++) {
174 var row = this.getRow (i);
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);
182 this.checkSingleColumnCell (axis, col, cv);
184 hasMultiColumn = true;
188 if (hasMultiColumn) {
189 for (var i = 0; i < nrows; i++) {
190 var row = this.getRow (i);
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);
198 this.checkMultiColumnCell (axis, col, colSpan, cv);
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) {
214 for (var i = 0; i < ncols; i++) {
215 var req = this.columnRequirements[col + i];
217 pref += req.preferred;
219 var cmin = Clazz.floatToInt (v.getMinimumSpan (axis));
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)));
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++) {
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);
235 }var cpref = Clazz.floatToInt (v.getPreferredSpan (axis));
237 var reqs = new Array (ncols);
238 for (var i = 0; i < ncols; i++) {
239 reqs[i] = this.columnRequirements[col + i];
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++) {
246 req.preferred = Math.max (spans[i], req.preferred);
247 req.maximum = Math.max (req.preferred, req.maximum);
249 }}, "~N,~N,~N,javax.swing.text.View");
250 Clazz.overrideMethod (c$, "getViewAtPosition",
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)) {
259 this.childAllocation (i, a);
262 if (pos == this.getEndOffset ()) {
263 var v = this.getView (n - 1);
265 this.childAllocation (n - 1, a);
268 }, "~N,java.awt.Rectangle");
269 c$.$TableView$TableRow$ = function () {
271 c$ = Clazz.decorateAsClass (function () {
272 Clazz.prepareCallback (this, arguments);
273 this.fillColumns = null;
275 Clazz.instantialize (this, arguments);
276 }, javax.swing.text.TableView, "TableRow", javax.swing.text.BoxView);
277 Clazz.makeConstructor (c$,
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",
284 this.fillColumns.and (javax.swing.text.TableView.EMPTY);
286 Clazz.defineMethod (c$, "fillColumn",
288 this.fillColumns.set (a);
290 Clazz.defineMethod (c$, "isFilled",
292 return this.fillColumns.get (a);
294 Clazz.defineMethod (c$, "getRow",
298 Clazz.defineMethod (c$, "setRow",
302 Clazz.defineMethod (c$, "getColumnCount",
305 var b = this.fillColumns.size ();
306 for (var c = 0; c < b; c++) {
307 if (this.fillColumns.get (c)) {
310 return this.getViewCount () + a;
312 Clazz.defineMethod (c$, "replace",
314 Clazz.superCall (this, javax.swing.text.TableView.TableRow, "replace", [a, b, c]);
315 this.b$["javax.swing.text.TableView"].invalidateGrid ();
317 Clazz.overrideMethod (c$, "layoutMajorAxis",
318 function (a, b, c, d) {
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];
328 var j = this.b$["javax.swing.text.TableView"].columnSpans.length;
329 for (var k = 1; k < i; k++) {
331 d[g] += this.b$["javax.swing.text.TableView"].columnSpans[e + k];
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]);
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);
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);
357 Clazz.overrideMethod (c$, "getResizeWeight",
361 Clazz.overrideMethod (c$, "getViewAtPosition",
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)) {
370 this.childAllocation (d, b);
373 if (a == this.getEndOffset ()) {
374 var e = this.getView (c - 1);
376 this.childAllocation (c - 1, b);
379 }, "~N,java.awt.Rectangle");
382 c$.$TableView$TableCell$ = function () {
384 c$ = Clazz.decorateAsClass (function () {
385 Clazz.prepareCallback (this, arguments);
388 Clazz.instantialize (this, arguments);
389 }, javax.swing.text.TableView, "TableCell", javax.swing.text.BoxView, javax.swing.text.TableView.GridCell);
390 Clazz.makeConstructor (c$,
392 Clazz.superConstructor (this, javax.swing.text.TableView.TableCell, [a, 1]);
393 }, "javax.swing.text.Element");
394 Clazz.overrideMethod (c$, "getColumnCount",
398 Clazz.overrideMethod (c$, "getRowCount",
402 Clazz.overrideMethod (c$, "setGridLocation",
407 Clazz.overrideMethod (c$, "getGridRow",
411 Clazz.overrideMethod (c$, "getGridColumn",
417 Clazz.declareInterface (javax.swing.text.TableView, "GridCell");
418 c$.EMPTY = c$.prototype.EMPTY = new java.util.BitSet ();