--- /dev/null
+// LabelCheckBox.java\r
+// $Id: LabelCheckbox.java,v 1.1 2010/06/15 12:20:35 smhuang Exp $\r
+// (c) COPYRIGHT MIT and INRIA, 1998.\r
+// Please first read the full copyright statement in file COPYRIGHT.html\r
+package org.w3c.tools.widgets;\r
+\r
+import java.awt.BorderLayout;\r
+import java.awt.Checkbox;\r
+import java.awt.Component;\r
+import java.awt.Container;\r
+import java.awt.Dimension;\r
+import java.awt.Label;\r
+import java.awt.LayoutManager;\r
+\r
+import java.awt.event.ItemEvent;\r
+import java.awt.event.ItemListener;\r
+\r
+/**\r
+ * @version $Revision: 1.1 $\r
+ * @author Benoît Mahé (bmahe@w3.org)\r
+ */\r
+public class LabelCheckbox extends BorderPanel implements ItemListener {\r
+\r
+ Label label = null;\r
+ Checkbox checkbox = null;\r
+ String strue = "on";\r
+ String sfalse = "off";\r
+ Dimension size = null;\r
+\r
+ public void itemStateChanged(ItemEvent e) {\r
+ switch (e.getStateChange()) {\r
+ case ItemEvent.SELECTED:\r
+ setState(true);\r
+ break;\r
+ case ItemEvent.DESELECTED:\r
+ setState(false);\r
+ break;\r
+ default:\r
+\r
+ }\r
+ }\r
+\r
+ String getString(boolean check) {\r
+ return (check ? strue : sfalse);\r
+ }\r
+\r
+ public void setState(boolean state) {\r
+ checkbox.setState(state);\r
+ label.setText(getString(state));\r
+ // remove(label);\r
+ // label = new Label(getString(state));\r
+ // add(label);\r
+ }\r
+\r
+ public boolean getState() {\r
+ return checkbox.getState();\r
+ }\r
+\r
+ /**\r
+ * Create a new LabelCheckbox\r
+ */\r
+ public LabelCheckbox(int type, int thickness ) {\r
+ super(type, thickness);\r
+ init();\r
+ } \r
+\r
+ /**\r
+ * Create a new LabelCheckbox\r
+ */\r
+ public LabelCheckbox(int type) {\r
+ super(type);\r
+ init();\r
+ }\r
+\r
+ /**\r
+ * Create a new LabelCheckbox\r
+ */\r
+ public LabelCheckbox() {\r
+ super(IN);\r
+ init();\r
+ } \r
+\r
+ public Dimension getPreferredSize() {\r
+ return size;\r
+ }\r
+\r
+ public Dimension getMinimumSize() {\r
+ return size;\r
+ }\r
+\r
+ public Dimension getSize() {\r
+ return size;\r
+ }\r
+\r
+ private void init() {\r
+ setLayout( new BorderLayout());\r
+ label = new Label(getString(true));\r
+ checkbox = new Checkbox();\r
+ checkbox.setState(true);\r
+ checkbox.addItemListener(this);\r
+ add(checkbox,"West");\r
+ add(label,"Center");\r
+ size = new Dimension(75,30);\r
+ }\r
+\r
+}\r