-package swingjs.plaf;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import swingjs.api.DOMNode;
-import jsjava.awt.Dimension;
-import jsjavax.swing.AbstractButton;
-import jsjavax.swing.ButtonGroup;
-import jsjavax.swing.DefaultButtonModel;
-import jsjavax.swing.JRadioButton;
-
-public class JSRadioButtonUI extends JSButtonUI {
-
- private DOMNode label;
- private static Map<ButtonGroup, String> groupNames;
-
-
- @Override
- public DOMNode getDOMObject() {
- return getButtonObject("radio");
- }
-
- @Override
- protected String getPropertyPrefix() {
- return "RadioButton.";
- }
-
- protected Dimension setHTMLSize(DOMNode obj, boolean addCSS) {
- // "absolute" is required for positioning of button, but must not be there for setting the size.
- DOMNode.setStyles(domBtn, "position", null);
- DOMNode.setStyles(label, "position", null);
- Dimension d = setHTMLSize1(obj, addCSS, false);
- DOMNode.setStyles(domBtn, "position", "absolute");
- DOMNode.setStyles(label, "position", "absolute");
- return d;
- }
-
- protected DOMNode getButtonObject(String myType) {
- JRadioButton b = (JRadioButton) c;
- boolean isNew = false;
- boolean doAll = false;
- if (domNode == null) {
- doAll = true;
- if (groupNames == null)
- groupNames = new HashMap<ButtonGroup, String>();
- ButtonGroup bg = null;
- String name = id;
- isNew = true;
- if (b.getModel() instanceof DefaultButtonModel) {
- bg = ((DefaultButtonModel) b.getModel()).getGroup();
- name = groupNames.get(bg);
- if (name == null)
- groupNames.put(bg, name = id);
- else
- isNew = false;
- }
- domBtn = enableNode = createDOMObject("input", id, "type", myType, "name",
- name);
- label = textNode = createDOMObject("label", id + "l", "htmlFor", id);
- }
- if (b.isSelected() || isNew)
- DOMNode.setAttr(domBtn, "checked", "true");
- setCssFont(
- DOMNode.setAttr(label, "innerHTML", ((AbstractButton) c).getText()),
- c.getFont());
- // now wrap the two with a span and get its dimensions
- // along with the dimensions of the radio button by itself.
- // This is a hack, for sure.
-
- Dimension drad = setHTMLSize1(domBtn, false, false);
- /*Dimension dlab = */ setHTMLSize1(label, false, false);
-
- DOMNode obj = wrap("div", "", domBtn, label);
- Dimension dobj = setHTMLSize1(obj, true, true);
- vCenter(domBtn, -75);
- vCenter(label, -50);
- DOMNode.setStyles(label, "position", "absolute", "left", drad.width + "px");
- DOMNode.setStyles(domBtn, "position", "absolute");
- if (doAll) {
- // now wrap these in a div
- obj = wrap("div", id + "_0", domBtn, label);
- DOMNode.setStyles(obj, "position", "absolute");
- } else {
- // must re-introduce these to the original object
- obj = domNode;
- obj.appendChild(domBtn);
- obj.appendChild(label);
- }
- return DOMNode.setSize(obj, dobj.width, dobj.height);
- }
-
-
-}
+package swingjs.plaf;\r
+\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import swingjs.api.DOMNode;\r
+import jsjava.awt.Dimension;\r
+import jsjavax.swing.AbstractButton;\r
+import jsjavax.swing.ButtonGroup;\r
+import jsjavax.swing.DefaultButtonModel;\r
+import jsjavax.swing.JRadioButton;\r
+\r
+public class JSRadioButtonUI extends JSButtonUI {\r
+\r
+ private DOMNode label;\r
+ private static Map<ButtonGroup, String> groupNames;\r
+ \r
+\r
+ @Override\r
+ public DOMNode getDOMObject() {\r
+ return getButtonObject("radio");\r
+ }\r
+\r
+ @Override\r
+ protected String getPropertyPrefix() {\r
+ return "RadioButton.";\r
+ }\r
+\r
+ protected Dimension setHTMLSize(DOMNode obj, boolean addCSS) {\r
+ // "absolute" is required for positioning of button, but must not be there for setting the size. \r
+ DOMNode.setStyles(domBtn, "position", null);\r
+ DOMNode.setStyles(label, "position", null);\r
+ Dimension d = setHTMLSize1(obj, addCSS, false);\r
+ DOMNode.setStyles(domBtn, "position", "absolute");\r
+ DOMNode.setStyles(label, "position", "absolute");\r
+ return d;\r
+ }\r
+\r
+ protected DOMNode getButtonObject(String myType) {\r
+ JRadioButton b = (JRadioButton) c;\r
+ boolean isNew = false;\r
+ boolean doAll = false;\r
+ if (domNode == null) {\r
+ doAll = true;\r
+ if (groupNames == null)\r
+ groupNames = new HashMap<ButtonGroup, String>();\r
+ ButtonGroup bg = null;\r
+ String name = id;\r
+ isNew = true;\r
+ if (b.getModel() instanceof DefaultButtonModel) {\r
+ bg = ((DefaultButtonModel) b.getModel()).getGroup();\r
+ name = groupNames.get(bg);\r
+ if (name == null)\r
+ groupNames.put(bg, name = id);\r
+ else\r
+ isNew = false;\r
+ }\r
+ domBtn = enableNode = createDOMObject("input", id, "type", myType, "name",\r
+ name);\r
+ label = textNode = createDOMObject("label", id + "l", "htmlFor", id);\r
+ }\r
+ if (b.isSelected() || isNew)\r
+ DOMNode.setAttr(domBtn, "checked", "true");\r
+ setCssFont(\r
+ DOMNode.setAttr(label, "innerHTML", ((AbstractButton) c).getText()),\r
+ c.getFont());\r
+ // now wrap the two with a span and get its dimensions\r
+ // along with the dimensions of the radio button by itself.\r
+ // This is a hack, for sure.\r
+\r
+ Dimension drad = setHTMLSize1(domBtn, false, false);\r
+ /*Dimension dlab = */ setHTMLSize1(label, false, false);\r
+ \r
+ DOMNode obj = wrap("div", "", domBtn, label);\r
+ Dimension dobj = setHTMLSize1(obj, true, true);\r
+ vCenter(domBtn, -75);\r
+ vCenter(label, -50);\r
+ DOMNode.setStyles(label, "position", "absolute", "left", drad.width + "px");\r
+ DOMNode.setStyles(domBtn, "position", "absolute");\r
+ if (doAll) {\r
+ // now wrap these in a div\r
+ obj = wrap("div", id + "_0", domBtn, label);\r
+ DOMNode.setStyles(obj, "position", "absolute");\r
+ } else {\r
+ // must re-introduce these to the original object\r
+ obj = domNode;\r
+ obj.appendChild(domBtn);\r
+ obj.appendChild(label);\r
+ }\r
+ return DOMNode.setSize(obj, dobj.width, dobj.height);\r
+ }\r
+\r
+ \r
+}\r