\r
public class IOptionGroup extends IOptionGroupBase {\r
\r
- public static final String CLASSNAME = "i-select-optiongroup";\r
+ public static final String CLASSNAME = "i-select-optiongroup";\r
\r
- private Panel panel;\r
+ private Panel panel;\r
\r
- private Map optionsToKeys;\r
+ private Map optionsToKeys;\r
\r
- public IOptionGroup() {\r
- super(CLASSNAME);\r
- panel = (Panel) optionsContainer;\r
- optionsToKeys = new HashMap();\r
- }\r
+ public IOptionGroup() {\r
+ super(CLASSNAME);\r
+ panel = (Panel) optionsContainer;\r
+ optionsToKeys = new HashMap();\r
+ }\r
\r
- /*\r
- * Return true if no elements were changed, false otherwise.\r
- */\r
- protected void buildOptions(UIDL uidl) {\r
- panel.clear();\r
- for (Iterator it = uidl.getChildIterator(); it.hasNext();) {\r
- UIDL opUidl = (UIDL) it.next();\r
- CheckBox op;\r
- if (multiselect) {\r
- op = new ICheckBox();\r
- op.setText(opUidl.getStringAttribute("caption"));\r
- } else {\r
- op = new RadioButton(id, opUidl.getStringAttribute("caption"));\r
- op.setStyleName("i-radiobutton");\r
- }\r
- op.addStyleName(CLASSNAME_OPTION);\r
- op.setChecked(opUidl.getBooleanAttribute("selected"));\r
- op.setEnabled(!opUidl.getBooleanAttribute("disabled") && !readonly\r
- && !disabled);\r
- op.addClickListener(this);\r
- optionsToKeys.put(op, opUidl.getStringAttribute("key"));\r
- panel.add(op);\r
- }\r
- }\r
+ /*\r
+ * Return true if no elements were changed, false otherwise.\r
+ */\r
+ protected void buildOptions(UIDL uidl) {\r
+ panel.clear();\r
+ for (Iterator it = uidl.getChildIterator(); it.hasNext();) {\r
+ UIDL opUidl = (UIDL) it.next();\r
+ CheckBox op;\r
+ if (isMultiselect()) {\r
+ op = new ICheckBox();\r
+ op.setText(opUidl.getStringAttribute("caption"));\r
+ } else {\r
+ op = new RadioButton(id, opUidl.getStringAttribute("caption"));\r
+ op.setStyleName("i-radiobutton");\r
+ }\r
+ op.addStyleName(CLASSNAME_OPTION);\r
+ op.setChecked(opUidl.getBooleanAttribute("selected"));\r
+ op.setEnabled(!opUidl.getBooleanAttribute("disabled")\r
+ && !isReadonly() && !isDisabled());\r
+ op.addClickListener(this);\r
+ optionsToKeys.put(op, opUidl.getStringAttribute("key"));\r
+ panel.add(op);\r
+ }\r
+ }\r
\r
- protected Object[] getSelectedItems() {\r
- return selectedKeys.toArray();\r
- }\r
+ protected Object[] getSelectedItems() {\r
+ return selectedKeys.toArray();\r
+ }\r
\r
- public void onClick(Widget sender) {\r
- super.onClick(sender);\r
- if (sender instanceof CheckBox) {\r
- boolean selected = ((CheckBox) sender).isChecked();\r
- String key = (String) optionsToKeys.get(sender);\r
- if (!multiselect)\r
- selectedKeys.clear();\r
- if (selected)\r
- selectedKeys.add(key);\r
- else\r
- selectedKeys.remove(key);\r
- client\r
- .updateVariable(id, "selected", getSelectedItems(),\r
- immediate);\r
- }\r
- }\r
+ public void onClick(Widget sender) {\r
+ super.onClick(sender);\r
+ if (sender instanceof CheckBox) {\r
+ boolean selected = ((CheckBox) sender).isChecked();\r
+ String key = (String) optionsToKeys.get(sender);\r
+ if (!isMultiselect()) {\r
+ selectedKeys.clear();\r
+ }\r
+ if (selected) {\r
+ selectedKeys.add(key);\r
+ } else {\r
+ selectedKeys.remove(key);\r
+ }\r
+ client.updateVariable(id, "selected", getSelectedItems(),\r
+ isImmediate());\r
+ }\r
+ }\r
\r
}\r
\r
public class ITwinColSelect extends IOptionGroupBase {\r
\r
- private static final String CLASSNAME = "i-select-twincol";\r
-\r
- private static final int VISIBLE_COUNT = 10;\r
-\r
- private ListBox options;\r
-\r
- private ListBox selections;\r
-\r
- private IButton add;\r
-\r
- private IButton remove;\r
-\r
- public ITwinColSelect() {\r
- super(CLASSNAME);\r
- options = new ListBox();\r
- selections = new ListBox();\r
- options.setVisibleItemCount(VISIBLE_COUNT);\r
- selections.setVisibleItemCount(VISIBLE_COUNT);\r
- options.setStyleName(CLASSNAME + "-options");\r
- selections.setStyleName(CLASSNAME + "-selections");\r
- Panel buttons = new FlowPanel();\r
- buttons.setStyleName(CLASSNAME + "-buttons");\r
- add = new IButton();\r
- remove = new IButton();\r
- add.setText(">>");\r
- remove.setText("<<");\r
- add.addClickListener(this);\r
- remove.addClickListener(this);\r
- Panel p = ((Panel) optionsContainer);\r
- p.add(options);\r
- buttons.add(add);\r
- HTML br = new HTML(" ");\r
- br.setStyleName(CLASSNAME + "-deco");\r
- buttons.add(br);\r
- buttons.add(remove);\r
- p.add(buttons);\r
- p.add(selections);\r
- }\r
-\r
- protected void buildOptions(UIDL uidl) {\r
- boolean enabled = !disabled && !readonly;\r
- options.setMultipleSelect(multiselect);\r
- selections.setMultipleSelect(multiselect);\r
- options.setEnabled(enabled);\r
- selections.setEnabled(enabled);\r
- add.setEnabled(enabled);\r
- remove.setEnabled(enabled);\r
- options.clear();\r
- selections.clear();\r
- for (Iterator i = uidl.getChildIterator(); i.hasNext();) {\r
- UIDL optionUidl = (UIDL) i.next();\r
- if (optionUidl.hasAttribute("selected")) {\r
- selections.addItem(optionUidl.getStringAttribute("caption"),\r
- optionUidl.getStringAttribute("key"));\r
- } else\r
- options.addItem(optionUidl.getStringAttribute("caption"),\r
- optionUidl.getStringAttribute("key"));\r
- }\r
- }\r
-\r
- protected Object[] getSelectedItems() {\r
- Vector selectedItemKeys = new Vector();\r
- for (int i = 0; i < selections.getItemCount(); i++) {\r
- selectedItemKeys.add(selections.getValue(i));\r
- }\r
- return selectedItemKeys.toArray();\r
- }\r
-\r
- private boolean[] getItemsToAdd() {\r
- boolean[] selectedIndexes = new boolean[options.getItemCount()];\r
- for (int i = 0; i < options.getItemCount(); i++) {\r
- if (options.isItemSelected(i))\r
- selectedIndexes[i] = true;\r
- else\r
- selectedIndexes[i] = false;\r
- }\r
- return selectedIndexes;\r
- }\r
-\r
- private boolean[] getItemsToRemove() {\r
- boolean[] selectedIndexes = new boolean[selections.getItemCount()];\r
- for (int i = 0; i < selections.getItemCount(); i++) {\r
- if (selections.isItemSelected(i))\r
- selectedIndexes[i] = true;\r
- else\r
- selectedIndexes[i] = false;\r
- }\r
- return selectedIndexes;\r
- }\r
-\r
- public void onClick(Widget sender) {\r
- super.onClick(sender);\r
- if (sender == add) {\r
- boolean[] sel = getItemsToAdd();\r
- for (int i = 0; i < sel.length; i++) {\r
- if (sel[i]) {\r
- int optionIndex = i - (sel.length - options.getItemCount());\r
- selectedKeys.add(options.getValue(optionIndex));\r
-\r
- // Move selection to another column\r
- String text = options.getItemText(optionIndex);\r
- String value = options.getValue(optionIndex);\r
- selections.addItem(text, value);\r
- options.removeItem(optionIndex);\r
- }\r
- }\r
- client.updateVariable(id, "selected", selectedKeys.toArray(),\r
- immediate);\r
-\r
- } else if (sender == remove) {\r
- boolean[] sel = getItemsToRemove();\r
- for (int i = 0; i < sel.length; i++) {\r
- if (sel[i]) {\r
- int selectionIndex = i\r
- - (sel.length - selections.getItemCount());\r
- selectedKeys.remove(selections.getValue(selectionIndex));\r
-\r
- // Move selection to another column\r
- String text = selections.getItemText(selectionIndex);\r
- String value = selections.getValue(selectionIndex);\r
- options.addItem(text, value);\r
- selections.removeItem(selectionIndex);\r
- }\r
- }\r
- client.updateVariable(id, "selected", selectedKeys.toArray(),\r
- immediate);\r
- }\r
- }\r
+ private static final String CLASSNAME = "i-select-twincol";\r
+\r
+ private static final int VISIBLE_COUNT = 10;\r
+\r
+ private ListBox options;\r
+\r
+ private ListBox selections;\r
+\r
+ private IButton add;\r
+\r
+ private IButton remove;\r
+\r
+ public ITwinColSelect() {\r
+ super(CLASSNAME);\r
+ options = new ListBox();\r
+ selections = new ListBox();\r
+ options.setVisibleItemCount(VISIBLE_COUNT);\r
+ selections.setVisibleItemCount(VISIBLE_COUNT);\r
+ options.setStyleName(CLASSNAME + "-options");\r
+ selections.setStyleName(CLASSNAME + "-selections");\r
+ Panel buttons = new FlowPanel();\r
+ buttons.setStyleName(CLASSNAME + "-buttons");\r
+ add = new IButton();\r
+ remove = new IButton();\r
+ add.setText(">>");\r
+ remove.setText("<<");\r
+ add.addClickListener(this);\r
+ remove.addClickListener(this);\r
+ Panel p = ((Panel) optionsContainer);\r
+ p.add(options);\r
+ buttons.add(add);\r
+ HTML br = new HTML(" ");\r
+ br.setStyleName(CLASSNAME + "-deco");\r
+ buttons.add(br);\r
+ buttons.add(remove);\r
+ p.add(buttons);\r
+ p.add(selections);\r
+ }\r
+\r
+ protected void buildOptions(UIDL uidl) {\r
+ boolean enabled = !isDisabled() && !isReadonly();\r
+ options.setMultipleSelect(isMultiselect());\r
+ selections.setMultipleSelect(isMultiselect());\r
+ options.setEnabled(enabled);\r
+ selections.setEnabled(enabled);\r
+ add.setEnabled(enabled);\r
+ remove.setEnabled(enabled);\r
+ options.clear();\r
+ selections.clear();\r
+ for (Iterator i = uidl.getChildIterator(); i.hasNext();) {\r
+ UIDL optionUidl = (UIDL) i.next();\r
+ if (optionUidl.hasAttribute("selected")) {\r
+ selections.addItem(optionUidl.getStringAttribute("caption"),\r
+ optionUidl.getStringAttribute("key"));\r
+ } else {\r
+ options.addItem(optionUidl.getStringAttribute("caption"),\r
+ optionUidl.getStringAttribute("key"));\r
+ }\r
+ }\r
+ }\r
+\r
+ protected Object[] getSelectedItems() {\r
+ Vector selectedItemKeys = new Vector();\r
+ for (int i = 0; i < selections.getItemCount(); i++) {\r
+ selectedItemKeys.add(selections.getValue(i));\r
+ }\r
+ return selectedItemKeys.toArray();\r
+ }\r
+\r
+ private boolean[] getItemsToAdd() {\r
+ boolean[] selectedIndexes = new boolean[options.getItemCount()];\r
+ for (int i = 0; i < options.getItemCount(); i++) {\r
+ if (options.isItemSelected(i)) {\r
+ selectedIndexes[i] = true;\r
+ } else {\r
+ selectedIndexes[i] = false;\r
+ }\r
+ }\r
+ return selectedIndexes;\r
+ }\r
+\r
+ private boolean[] getItemsToRemove() {\r
+ boolean[] selectedIndexes = new boolean[selections.getItemCount()];\r
+ for (int i = 0; i < selections.getItemCount(); i++) {\r
+ if (selections.isItemSelected(i)) {\r
+ selectedIndexes[i] = true;\r
+ } else {\r
+ selectedIndexes[i] = false;\r
+ }\r
+ }\r
+ return selectedIndexes;\r
+ }\r
+\r
+ public void onClick(Widget sender) {\r
+ super.onClick(sender);\r
+ if (sender == add) {\r
+ boolean[] sel = getItemsToAdd();\r
+ for (int i = 0; i < sel.length; i++) {\r
+ if (sel[i]) {\r
+ int optionIndex = i - (sel.length - options.getItemCount());\r
+ selectedKeys.add(options.getValue(optionIndex));\r
+\r
+ // Move selection to another column\r
+ String text = options.getItemText(optionIndex);\r
+ String value = options.getValue(optionIndex);\r
+ selections.addItem(text, value);\r
+ options.removeItem(optionIndex);\r
+ }\r
+ }\r
+ client.updateVariable(id, "selected", selectedKeys.toArray(),\r
+ isImmediate());\r
+\r
+ } else if (sender == remove) {\r
+ boolean[] sel = getItemsToRemove();\r
+ for (int i = 0; i < sel.length; i++) {\r
+ if (sel[i]) {\r
+ int selectionIndex = i\r
+ - (sel.length - selections.getItemCount());\r
+ selectedKeys.remove(selections.getValue(selectionIndex));\r
+\r
+ // Move selection to another column\r
+ String text = selections.getItemText(selectionIndex);\r
+ String value = selections.getValue(selectionIndex);\r
+ options.addItem(text, value);\r
+ selections.removeItem(selectionIndex);\r
+ }\r
+ }\r
+ client.updateVariable(id, "selected", selectedKeys.toArray(),\r
+ isImmediate());\r
+ }\r
+ }\r
\r
}\r