JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / src / javajs / awt / Component.java
1 package javajs.awt;\r
2 \r
3 import javajs.api.GenericColor;\r
4 import javajs.util.CU;\r
5 \r
6 abstract public class Component {\r
7 \r
8   protected boolean visible;  \r
9   protected boolean enabled = true;\r
10   protected String text;    \r
11   protected String name;\r
12   protected int width;\r
13   protected int height;\r
14   protected String id;\r
15 \r
16   protected Object parent;\r
17   \r
18   public void setParent(Object p) {\r
19     parent = p;\r
20   }\r
21 \r
22   protected Object mouseListener;\r
23 \r
24   private GenericColor bgcolor;\r
25 \r
26   protected Component(String type) {\r
27     id = newID(type);\r
28     if (type == null)\r
29       return;\r
30     /**\r
31      * @j2sNative\r
32      *            SwingController.register(this, type);\r
33      */\r
34     {\r
35     }\r
36 \r
37   }\r
38   \r
39   public static String newID(String type) {\r
40     return type + ("" + Math.random()).substring(3, 10);\r
41   }\r
42 \r
43   abstract public String toHTML();\r
44   \r
45   public void setBackground(GenericColor color) {\r
46     bgcolor = color;\r
47   }\r
48 \r
49   public void setText(String text) {\r
50     this.text = text;\r
51     /**\r
52      * @j2sNative\r
53      * \r
54      * SwingController.setText(this);\r
55      * \r
56      */\r
57     {\r
58     }\r
59   }\r
60 \r
61   public void setName(String name) {\r
62     this.name = name;\r
63   }\r
64 \r
65   public String getName() {\r
66     return name;\r
67   }\r
68   \r
69   public Object getParent() {\r
70     return parent;\r
71   }\r
72   \r
73   public void setPreferredSize(Dimension dimension) {\r
74     this.width = dimension.width;\r
75     this.height = dimension.height;   \r
76   }\r
77 \r
78   public void addMouseListener(Object listener) {\r
79     mouseListener = listener;\r
80   }\r
81 \r
82   public String getText() {\r
83     return text;\r
84   }\r
85 \r
86   public boolean isEnabled() {\r
87     return enabled;\r
88   }\r
89   \r
90   public void setEnabled(boolean enabled) {\r
91     this.enabled = enabled;\r
92     /**\r
93      * @j2sNative\r
94      * \r
95      * SwingController.setEnabled(this);\r
96      * \r
97      */\r
98     {}\r
99   }\r
100 \r
101   public boolean isVisible() {\r
102     return visible;\r
103   }\r
104 \r
105   public void setVisible(boolean visible) {\r
106     this.visible = visible;\r
107     /**\r
108      * @j2sNative\r
109      * \r
110      * SwingController.setVisible(this);\r
111      * \r
112      */\r
113     {}\r
114   }\r
115 \r
116   public int getHeight() {\r
117     return height;\r
118   }\r
119 \r
120   public int getWidth() {\r
121     return width;\r
122   }\r
123 \r
124   protected int minWidth = 30;\r
125   protected int minHeight = 30;\r
126 \r
127   public void setMinimumSize(Dimension d) {\r
128     minWidth = d.width;\r
129     minHeight = d.height;\r
130   }\r
131 \r
132   public int getSubcomponentWidth() {\r
133     return width;\r
134   }\r
135   \r
136   public int getSubcomponentHeight() {\r
137     return height;\r
138   }\r
139   \r
140   protected int renderWidth;\r
141   protected int renderHeight;\r
142 \r
143   protected String getCSSstyle(int defaultPercentW, int defaultPercentH) {\r
144     int width = (renderWidth > 0 ? renderWidth : getSubcomponentWidth());\r
145     int height = (renderHeight > 0 ? renderHeight : getSubcomponentHeight());\r
146     return (width > 0 ? "width:" + width +"px;" : defaultPercentW > 0 ? "width:"+defaultPercentW+"%;" : "")\r
147     + (height > 0 ?"height:" + height + "px;" : defaultPercentH > 0 ? "height:"+defaultPercentH+"%;" : "")\r
148     + (bgcolor == null ? "" : "background-color:" + CU.toCSSString(bgcolor) + ";");\r
149   }\r
150   \r
151   public void repaint() {\r
152     // for inheritance\r
153   }\r
154 \r
155 }\r