JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / src / javajs / swing / JSplitPane.java
1 package javajs.swing;\r
2 \r
3 import javajs.awt.Container;\r
4 import javajs.util.SB;\r
5 \r
6 public class JSplitPane extends JComponent {\r
7 \r
8         public static final int HORIZONTAL_SPLIT = 1;\r
9         boolean isH = true;\r
10         private int split = 1;\r
11         private Container right;\r
12         private Container left;\r
13 \r
14         public JSplitPane(int split) {\r
15                 super("JSpP");\r
16                 this.split = split;\r
17                 isH = (split == HORIZONTAL_SPLIT);\r
18         }\r
19         \r
20         public void setRightComponent(JComponent r) {\r
21                 right = new JComponentImp(null);\r
22                 right.add(r); \r
23         }\r
24 \r
25         public void setLeftComponent(JComponent l) {\r
26                 left = new JComponentImp(null);\r
27                 left.add(l);\r
28         }\r
29 \r
30         @Override\r
31         public int getSubcomponentWidth() {\r
32                 int w = this.width;\r
33                 if (w == 0) {\r
34                         int wleft = left.getSubcomponentWidth();\r
35                         int wright = right.getSubcomponentWidth();\r
36                         if (wleft > 0 && wright > 0) {\r
37                                 if (isH)\r
38                                         w = wleft + wright;\r
39                                 else\r
40                                         w = Math.max(wleft, wright);\r
41                         }\r
42                 }\r
43                 return w;\r
44         }\r
45         \r
46         @Override\r
47         public int getSubcomponentHeight() {\r
48                 int h = this.height;\r
49                 if (h == 0) {\r
50                         int hleft = left.getSubcomponentHeight();\r
51                         int hright = right.getSubcomponentHeight();\r
52                         if (hleft > 0 && hright > 0) {\r
53                                 if (isH)\r
54                                         h = Math.max(hleft, hright);\r
55                                 else\r
56                                         h = hleft + hright;\r
57                         }\r
58                 }\r
59                 return h;\r
60         }\r
61         \r
62         @Override\r
63         public String toHTML() {\r
64                 if (left == null || right == null)\r
65                         return "";\r
66                 boolean isH = (split == HORIZONTAL_SPLIT);\r
67                 if (width == 0)\r
68                   width = getSubcomponentWidth();\r
69                 if (height == 0)\r
70                   height = getSubcomponentHeight();\r
71                 SB sb = new SB();\r
72                 sb.append("<div id='" + id + "' class='JSplitPane' style='" + getCSSstyle(100, 100) + "'>");\r
73                 if (isH) \r
74                         sb.append("<div id='" + id + "_left' style='width:50%;height:100%;position:absolute;top:0%;left:0%'>");\r
75                 else\r
76                         sb.append("<div id='" + id + "_top' style='width:100%;height:50%;position:absolute;top:0%;left:0%'>");\r
77                 sb.append(left.getComponents()[0].toHTML());\r
78                 if (isH) \r
79                         sb.append("</div><div id='" + id + "_right' style='width:50%;height:100%;position:absolute;top:0%;left:50%'>");\r
80                 else\r
81                         sb.append("</div><div id='" + id + "_bottom' style='width:100%;height:50%;position:absolute;top:50%;left:0%'>");\r
82                 sb.append(right.getComponents()[0].toHTML());\r
83                 sb.append("</div></div>\n");\r
84                 return sb.toString();\r
85         }\r
86 \r
87 \r
88 }\r