JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / src / javajs / swing / JDialog.java
1 package javajs.swing;\r
2 \r
3 import javajs.awt.Color;\r
4 import javajs.awt.Container;\r
5 import javajs.util.SB;\r
6 \r
7 \r
8 /**\r
9  * There is really no need here for awt.Dialog.\r
10  * We would not use FileDialog in an HTML5 context anyway.\r
11  * \r
12  */\r
13 public class JDialog extends Container {\r
14 \r
15   private static final int headerHeight = 25;\r
16   private int defaultWidth = 600;\r
17   private int defaultHeight = 300;\r
18   \r
19   private JContentPane contentPane;\r
20   private String title;\r
21   private String html;\r
22   private int zIndex = 9000;\r
23   \r
24   public void setZIndex(int zIndex) {\r
25     this.zIndex = zIndex;\r
26   }\r
27   \r
28   int[] loc;\r
29 \r
30   public JDialog() {\r
31     super("JD");\r
32     add(contentPane = new JContentPane());\r
33     setBackground(Color.get3(210, 210, 240));\r
34     contentPane.setBackground(Color.get3(230, 230, 230));\r
35   }\r
36   \r
37   public void setLocation(int[] loc) {\r
38     this.loc = loc;\r
39   }\r
40   \r
41   public JContentPane getContentPane() {\r
42     return contentPane;\r
43   }\r
44 \r
45   public void setTitle(String title) {\r
46     this.title = title;\r
47   }\r
48 \r
49   public void pack() {\r
50     html = null;\r
51   }\r
52 \r
53   public void validate() {\r
54     html = null;\r
55   }\r
56 \r
57   @Override\r
58   public void setVisible(boolean tf) {\r
59     if (tf && html == null)\r
60       setDialog();\r
61     super.setVisible(tf);\r
62   }\r
63 \r
64   public void dispose() {\r
65     {\r
66       \r
67       /**\r
68        * @j2sNative\r
69        * \r
70        * SwingController.dispose(this);\r
71        * \r
72        */\r
73       {\r
74       }\r
75       \r
76     }\r
77   }\r
78 \r
79   @Override\r
80   public void repaint() {\r
81     setDialog();\r
82   }\r
83   \r
84   /**\r
85    * Set it into DOM, but don't show it yet.\r
86    * this.loc, this.manager, this.id, etc.\r
87    * \r
88    */\r
89   private void setDialog() {\r
90     html = toHTML();\r
91     /**\r
92      * @j2sNative\r
93      * \r
94      * SwingController.setDialog(this);\r
95      * \r
96      * \r
97      */\r
98     {\r
99       System.out.println(html);\r
100     }\r
101   }\r
102   \r
103   @Override\r
104   public String toHTML() {\r
105     renderWidth = getSubcomponentWidth();\r
106     if (renderWidth == 0)\r
107       renderWidth = defaultWidth;\r
108     renderHeight = contentPane.getSubcomponentHeight();\r
109     if (renderHeight == 0)\r
110       renderHeight = defaultHeight;\r
111     int h = renderHeight - headerHeight;\r
112     SB sb = new SB();\r
113     sb.append("\n<div id='" + id + "' class='JDialog' style='" + getCSSstyle(0, 0) + "z-index:" + zIndex + ";position:relative;top:0px;left:0px;reize:both;'>\n");\r
114     sb.append("\n<div id='" + id + "_title' class='JDialogTitle' style='width:100%;height:25px;padding:5px 5px 5px 5px;height:"+headerHeight+"px'>"\r
115         +"<span style='text-align:center;'>" + title + "</span><span style='position:absolute;text-align:right;right:1px;'>"\r
116         + "<input type=button id='" + id + "_closer' onclick='SwingController.windowClosing(this)' value='x' /></span></div>\n");\r
117     sb.append("\n<div id='" + id + "_body' class='JDialogBody' style='width:100%;height:"+h+"px;"\r
118         +"position: relative;left:0px;top:0px'>\n");\r
119     sb.append(contentPane.toHTML());\r
120     sb.append("\n</div></div>\n");\r
121     return sb.toString();\r
122   }\r
123 \r
124 \r
125 \r
126 }\r