JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / src / javajs / swing / JPanel.java
1 package javajs.swing;\r
2 \r
3 import javajs.awt.BorderLayout;\r
4 import javajs.awt.LayoutManager;\r
5 import javajs.util.SB;\r
6 \r
7 public class JPanel extends JComponent {\r
8 \r
9         //private LayoutManager layoutManager;\r
10 \r
11         private Grid grid;\r
12 \r
13         private int nElements;\r
14         private JComponent last;\r
15         \r
16         \r
17         /**\r
18          * @param manager  ignored. we just use the layout designations with a grid\r
19          */\r
20         public JPanel(LayoutManager manager) {\r
21                 super("JP");\r
22                 //this.layoutManager = manager;\r
23                 grid = new Grid(10,10);\r
24         }\r
25 \r
26         public void add(JComponent btn, Object c) {\r
27                 last = (++nElements == 1 ? btn : null);\r
28                 if (c instanceof String) {\r
29                         if (c.equals(BorderLayout.NORTH))\r
30                                 c = new GridBagConstraints(0, 0, 3, 1, 0, 0, GridBagConstraints.CENTER,\r
31                                                 0, null, 0, 0);\r
32                         else if (c.equals(BorderLayout.SOUTH))\r
33                                 c = new GridBagConstraints(0, 2, 3, 1, 0, 0, GridBagConstraints.CENTER,\r
34                                                 0, null, 0, 0);\r
35                         else if (c.equals(BorderLayout.EAST))\r
36                                 c = new GridBagConstraints(2, 1, 1, 1, 0, 0, GridBagConstraints.EAST,\r
37                                                 0, null, 0, 0);\r
38                         else if (c.equals(BorderLayout.WEST))\r
39                                 c = new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.WEST,\r
40                                                 0, null, 0, 0);\r
41                         else\r
42                                 c = new GridBagConstraints(1, 1, 1, 1, 0, 0, GridBagConstraints.CENTER,\r
43                                                 0, null, 0, 0);\r
44                 }\r
45                 grid.add(btn, (GridBagConstraints) c);\r
46         }\r
47         \r
48         @Override\r
49         public String toHTML() {\r
50                 if (last != null) {\r
51                         // only one element\r
52                         grid = new Grid(1, 1);\r
53                         grid.add(last, new GridBagConstraints(0, 0, 1, 1, 0, 0,\r
54                                         GridBagConstraints.CENTER, 0, null, 0, 0));\r
55                         last = null;\r
56                 }\r
57                 SB sb = new SB();\r
58                 sb.append("\n<div id='" + id + "' class='JPanel' style='"\r
59                                 + getCSSstyle(100, 100) + "'>\n");\r
60                 sb.append("\n<span id='" + id + "_minimizer' style='width:" + minWidth\r
61                                 + "px;height:" + minHeight + "px;'>");\r
62                 sb.append(grid.toHTML(id));\r
63                 sb.append("</span>");\r
64                 sb.append("\n</div>\n");\r
65                 return sb.toString();\r
66         }\r
67 }\r