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
8 this.gridValid = false;
\r
9 if (!Clazz.isClassDefined ("javax.swing.text.TableView.TableRow")) {
\r
10 javax.swing.text.TableView.$TableView$TableRow$ ();
\r
12 if (!Clazz.isClassDefined ("javax.swing.text.TableView.TableCell")) {
\r
13 javax.swing.text.TableView.$TableView$TableCell$ ();
\r
15 Clazz.instantialize (this, arguments);
\r
16 }, javax.swing.text, "TableView", javax.swing.text.BoxView);
\r
17 Clazz.makeConstructor (c$,
\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
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
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
33 return this.columnSpans.length;
\r
35 Clazz.defineMethod (c$, "getColumnSpan",
\r
37 return this.columnSpans[col];
\r
39 Clazz.defineMethod (c$, "getRowCount",
\r
41 return this.rows.size ();
\r
43 Clazz.defineMethod (c$, "getRowSpan",
\r
45 var rv = this.getRow (row);
\r
47 return Clazz.floatToInt (rv.getPreferredSpan (1));
\r
50 Clazz.defineMethod (c$, "getRow",
\r
52 if (row < this.rows.size ()) {
\r
53 return this.rows.elementAt (row);
\r
56 Clazz.defineMethod (c$, "getColumnsOccupied",
\r
59 }, "javax.swing.text.View");
\r
60 Clazz.defineMethod (c$, "getRowsOccupied",
\r
63 }, "javax.swing.text.View");
\r
64 Clazz.defineMethod (c$, "invalidateGrid",
\r
66 this.gridValid = false;
\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
72 var c = this.getContainer ();
\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
82 Clazz.defineMethod (c$, "updateGrid",
\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
92 rv.clearFilledColumns ();
\r
96 var nrows = this.rows.size ();
\r
97 for (var row = 0; row < nrows; row++) {
\r
98 var rv = this.getRow (row);
\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
115 col += colSpan - 1;
\r
117 maxColumns = Math.max (maxColumns, col);
\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
125 this.gridValid = true;
\r
127 Clazz.defineMethod (c$, "addFill",
\r
128 function (row, col) {
\r
129 var rv = this.getRow (row);
\r
131 rv.fillColumn (col);
\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
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
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
148 Clazz.overrideMethod (c$, "calculateMinorAxisRequirements",
\r
149 function (axis, r) {
\r
150 this.updateGrid ();
\r
151 this.calculateColumnRequirements (axis);
\r
153 r = new javax.swing.SizeRequirements ();
\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
164 r.preferred = pref;
\r
168 }, "~N,javax.swing.SizeRequirements");
\r
169 Clazz.defineMethod (c$, "calculateColumnRequirements",
\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
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
184 hasMultiColumn = true;
\r
185 col += colSpan - 1;
\r
188 if (hasMultiColumn) {
\r
189 for (var i = 0; i < nrows; i++) {
\r
190 var row = this.getRow (i);
\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
198 this.checkMultiColumnCell (axis, col, colSpan, cv);
\r
199 col += colSpan - 1;
\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
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
219 var cmin = Clazz.floatToInt (v.getMinimumSpan (axis));
\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
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
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
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
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
246 req.preferred = Math.max (spans[i], req.preferred);
\r
247 req.maximum = Math.max (req.preferred, req.maximum);
\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
259 this.childAllocation (i, a);
\r
262 if (pos == this.getEndOffset ()) {
\r
263 var v = this.getView (n - 1);
\r
265 this.childAllocation (n - 1, a);
\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
275 Clazz.instantialize (this, arguments);
\r
276 }, javax.swing.text.TableView, "TableRow", javax.swing.text.BoxView);
\r
277 Clazz.makeConstructor (c$,
\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
284 this.fillColumns.and (javax.swing.text.TableView.EMPTY);
\r
286 Clazz.defineMethod (c$, "fillColumn",
\r
288 this.fillColumns.set (a);
\r
290 Clazz.defineMethod (c$, "isFilled",
\r
292 return this.fillColumns.get (a);
\r
294 Clazz.defineMethod (c$, "getRow",
\r
298 Clazz.defineMethod (c$, "setRow",
\r
302 Clazz.defineMethod (c$, "getColumnCount",
\r
305 var b = this.fillColumns.size ();
\r
306 for (var c = 0; c < b; c++) {
\r
307 if (this.fillColumns.get (c)) {
\r
310 return this.getViewCount () + a;
\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
317 Clazz.overrideMethod (c$, "layoutMajorAxis",
\r
318 function (a, b, c, d) {
\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
328 var j = this.b$["javax.swing.text.TableView"].columnSpans.length;
\r
329 for (var k = 1; k < i; k++) {
\r
331 d[g] += this.b$["javax.swing.text.TableView"].columnSpans[e + k];
\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
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
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
357 Clazz.overrideMethod (c$, "getResizeWeight",
\r
361 Clazz.overrideMethod (c$, "getViewAtPosition",
\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
370 this.childAllocation (d, b);
\r
373 if (a == this.getEndOffset ()) {
\r
374 var e = this.getView (c - 1);
\r
376 this.childAllocation (c - 1, b);
\r
379 }, "~N,java.awt.Rectangle");
\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
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
392 Clazz.superConstructor (this, javax.swing.text.TableView.TableCell, [a, 1]);
\r
393 }, "javax.swing.text.Element");
\r
394 Clazz.overrideMethod (c$, "getColumnCount",
\r
398 Clazz.overrideMethod (c$, "getRowCount",
\r
402 Clazz.overrideMethod (c$, "setGridLocation",
\r
407 Clazz.overrideMethod (c$, "getGridRow",
\r
411 Clazz.overrideMethod (c$, "getGridColumn",
\r
417 Clazz.declareInterface (javax.swing.text.TableView, "GridCell");
\r
418 c$.EMPTY = c$.prototype.EMPTY = new java.util.BitSet ();
\r