return selectedItemKeys.toArray();\r
}\r
\r
- private String[] getItemsToAdd() {\r
- String[] selectedIndexes = new String[options.getItemCount()];\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] = options.getValue(i);\r
+ selectedIndexes[i] = true;\r
+ else\r
+ selectedIndexes[i] = false;\r
}\r
return selectedIndexes;\r
}\r
\r
- private String[] getItemsToRemove() {\r
- String[] selectedIndexes = new String[selections.getItemCount()];\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] = selections.getValue(i);\r
+ selectedIndexes[i] = true;\r
+ else\r
+ selectedIndexes[i] = false;\r
}\r
return selectedIndexes;\r
}\r
public void onClick(Widget sender) {\r
super.onClick(sender);\r
if(sender == add) {\r
- String[] sel = getItemsToAdd();\r
+ boolean[] sel = getItemsToAdd();\r
for(int i=0; i < sel.length; i++) {\r
- if(sel[i]!=null) selectedKeys.add(sel[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(), true); // Immediate\r
+ client.updateVariable(id, "selected", selectedKeys.toArray(), immediate);\r
+ \r
} else if(sender == remove) {\r
- String[] sel = getItemsToRemove();\r
+ boolean[] sel = getItemsToRemove();\r
for(int i=0; i < sel.length; i++) {\r
- if(sel[i]!=null) selectedKeys.remove(sel[i]);\r
+ if(sel[i]) {\r
+ int selectionIndex = i-(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(), true); // Immediate\r
+ client.updateVariable(id, "selected", selectedKeys.toArray(), immediate);\r
}\r
}\r
\r