JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / bin / javajs / swing / Grid.js
1 Clazz.declarePackage ("javajs.swing");\r
2 Clazz.load (null, "javajs.swing.Grid", ["javajs.swing.Cell", "javajs.util.AU", "$.SB"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.nrows = 0;\r
5 this.ncols = 0;\r
6 this.grid = null;\r
7 this.renderer = null;\r
8 Clazz.instantialize (this, arguments);\r
9 }, javajs.swing, "Grid");\r
10 Clazz.makeConstructor (c$, \r
11 function (rows, cols) {\r
12 this.grid =  Clazz.newArray (0, 0, null);\r
13 }, "~N,~N");\r
14 Clazz.defineMethod (c$, "add", \r
15 function (btn, c) {\r
16 if (c.gridx >= this.ncols) {\r
17 this.ncols = c.gridx + 1;\r
18 for (var i = 0; i < this.nrows; i++) {\r
19 this.grid[i] = javajs.util.AU.ensureLength (this.grid[i], this.ncols * 2);\r
20 }\r
21 }if (c.gridy >= this.nrows) {\r
22 var g =  new Array (c.gridy * 2 + 1);\r
23 for (var i = 0; i < this.nrows; i++) g[i] = this.grid[i];\r
24 \r
25 for (var i = g.length; --i >= this.nrows; ) g[i] =  new Array (this.ncols * 2 + 1);\r
26 \r
27 this.grid = g;\r
28 this.nrows = c.gridy + 1;\r
29 }this.grid[c.gridy][c.gridx] =  new javajs.swing.Cell (btn, c);\r
30 }, "javajs.swing.JComponent,javajs.swing.GridBagConstraints");\r
31 Clazz.defineMethod (c$, "toHTML", \r
32 function (id) {\r
33 var sb =  new javajs.util.SB ();\r
34 id += "_grid";\r
35 sb.append ("\n<table id='" + id + "' class='Grid' style='width:100%;height:100%'><tr><td style='height:20%;width:20%'></td></tr>");\r
36 for (var i = 0; i < this.nrows; i++) {\r
37 var rowid = id + "_" + i;\r
38 sb.append ("\n<tr id='" + rowid + "'><td></td>");\r
39 for (var j = 0; j < this.ncols; j++) if (this.grid[i][j] != null) sb.append (this.grid[i][j].toHTML (rowid + "_" + j));\r
40 \r
41 sb.append ("</tr>");\r
42 }\r
43 sb.append ("\n<tr><td style='height:20%;width:20%'></td></tr></table>\n");\r
44 return sb.toString ();\r
45 }, "~S");\r
46 });\r