aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java12
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroup.java103
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java44
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java13
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/ITwinColSelect.java259
5 files changed, 233 insertions, 198 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java
index af37682432..72a0b9608d 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IListSelect.java
@@ -27,10 +27,10 @@ public class IListSelect extends IOptionGroupBase {
}
protected void buildOptions(UIDL uidl) {
- select.setMultipleSelect(multiselect);
- select.setEnabled(!disabled && !readonly);
+ select.setMultipleSelect(isMultiselect());
+ select.setEnabled(!isDisabled() && !isReadonly());
select.clear();
- if (!multiselect && isNullSelectionAllowed()) {
+ if (!isMultiselect() && isNullSelectionAllowed()) {
// can't unselect last item in singleselect mode
select.addItem("", null);
}
@@ -60,12 +60,12 @@ public class IListSelect extends IOptionGroupBase {
select.setSelectedIndex(lastSelectedIndex);
} else {
lastSelectedIndex = si;
- if (select.isMultipleSelect()) {
+ if (isMultiselect()) {
client.updateVariable(id, "selected", getSelectedItems(),
- immediate);
+ isImmediate());
} else {
client.updateVariable(id, "selected", new String[] { ""
- + getSelectedItem() }, immediate);
+ + getSelectedItem() }, isImmediate());
}
}
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroup.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroup.java
index e7e8e92897..b10ff673c9 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroup.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroup.java
@@ -12,62 +12,63 @@ import com.itmill.toolkit.terminal.gwt.client.UIDL;
public class IOptionGroup extends IOptionGroupBase {
- public static final String CLASSNAME = "i-select-optiongroup";
+ public static final String CLASSNAME = "i-select-optiongroup";
- private Panel panel;
+ private Panel panel;
- private Map optionsToKeys;
+ private Map optionsToKeys;
- public IOptionGroup() {
- super(CLASSNAME);
- panel = (Panel) optionsContainer;
- optionsToKeys = new HashMap();
- }
+ public IOptionGroup() {
+ super(CLASSNAME);
+ panel = (Panel) optionsContainer;
+ optionsToKeys = new HashMap();
+ }
- /*
- * Return true if no elements were changed, false otherwise.
- */
- protected void buildOptions(UIDL uidl) {
- panel.clear();
- for (Iterator it = uidl.getChildIterator(); it.hasNext();) {
- UIDL opUidl = (UIDL) it.next();
- CheckBox op;
- if (multiselect) {
- op = new ICheckBox();
- op.setText(opUidl.getStringAttribute("caption"));
- } else {
- op = new RadioButton(id, opUidl.getStringAttribute("caption"));
- op.setStyleName("i-radiobutton");
- }
- op.addStyleName(CLASSNAME_OPTION);
- op.setChecked(opUidl.getBooleanAttribute("selected"));
- op.setEnabled(!opUidl.getBooleanAttribute("disabled") && !readonly
- && !disabled);
- op.addClickListener(this);
- optionsToKeys.put(op, opUidl.getStringAttribute("key"));
- panel.add(op);
- }
- }
+ /*
+ * Return true if no elements were changed, false otherwise.
+ */
+ protected void buildOptions(UIDL uidl) {
+ panel.clear();
+ for (Iterator it = uidl.getChildIterator(); it.hasNext();) {
+ UIDL opUidl = (UIDL) it.next();
+ CheckBox op;
+ if (isMultiselect()) {
+ op = new ICheckBox();
+ op.setText(opUidl.getStringAttribute("caption"));
+ } else {
+ op = new RadioButton(id, opUidl.getStringAttribute("caption"));
+ op.setStyleName("i-radiobutton");
+ }
+ op.addStyleName(CLASSNAME_OPTION);
+ op.setChecked(opUidl.getBooleanAttribute("selected"));
+ op.setEnabled(!opUidl.getBooleanAttribute("disabled")
+ && !isReadonly() && !isDisabled());
+ op.addClickListener(this);
+ optionsToKeys.put(op, opUidl.getStringAttribute("key"));
+ panel.add(op);
+ }
+ }
- protected Object[] getSelectedItems() {
- return selectedKeys.toArray();
- }
+ protected Object[] getSelectedItems() {
+ return selectedKeys.toArray();
+ }
- public void onClick(Widget sender) {
- super.onClick(sender);
- if (sender instanceof CheckBox) {
- boolean selected = ((CheckBox) sender).isChecked();
- String key = (String) optionsToKeys.get(sender);
- if (!multiselect)
- selectedKeys.clear();
- if (selected)
- selectedKeys.add(key);
- else
- selectedKeys.remove(key);
- client
- .updateVariable(id, "selected", getSelectedItems(),
- immediate);
- }
- }
+ public void onClick(Widget sender) {
+ super.onClick(sender);
+ if (sender instanceof CheckBox) {
+ boolean selected = ((CheckBox) sender).isChecked();
+ String key = (String) optionsToKeys.get(sender);
+ if (!isMultiselect()) {
+ selectedKeys.clear();
+ }
+ if (selected) {
+ selectedKeys.add(key);
+ } else {
+ selectedKeys.remove(key);
+ }
+ client.updateVariable(id, "selected", getSelectedItems(),
+ isImmediate());
+ }
+ }
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java
index 3306338ae2..53ad398e98 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOptionGroupBase.java
@@ -22,17 +22,17 @@ abstract class IOptionGroupBase extends Composite implements Paintable,
String id;
- protected boolean immediate;
-
protected Set selectedKeys;
- protected boolean multiselect;
+ private boolean immediate;
+
+ private boolean multiselect;
- protected boolean disabled;
+ private boolean disabled;
- protected boolean readonly;
+ private boolean readonly;
- protected boolean nullSelectionAllowed = true;
+ private boolean nullSelectionAllowed = true;
/**
* Widget holding the different options (e.g. ListBox or Panel for radio
@@ -68,6 +68,38 @@ abstract class IOptionGroupBase extends Composite implements Paintable,
container.add(optionsContainer);
}
+ protected boolean isImmediate() {
+ return immediate;
+ }
+
+ protected void setImmediate(boolean immediate) {
+ this.immediate = immediate;
+ }
+
+ protected boolean isMultiselect() {
+ return multiselect;
+ }
+
+ protected void setMultiselect(boolean multiselect) {
+ this.multiselect = multiselect;
+ }
+
+ protected boolean isDisabled() {
+ return disabled;
+ }
+
+ protected void setDisabled(boolean disabled) {
+ this.disabled = disabled;
+ }
+
+ protected boolean isReadonly() {
+ return readonly;
+ }
+
+ protected void setReadonly(boolean readonly) {
+ this.readonly = readonly;
+ }
+
protected void setNullSelectionAllowed(boolean nullSelectionAllowed) {
this.nullSelectionAllowed = nullSelectionAllowed;
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java
index 9dc218fa4f..a062207fc8 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ISelect.java
@@ -23,13 +23,13 @@ public class ISelect extends IOptionGroupBase {
}
protected void buildOptions(UIDL uidl) {
- select.setMultipleSelect(multiselect);
- if (multiselect) {
+ select.setMultipleSelect(isMultiselect());
+ if (isMultiselect()) {
select.setVisibleItemCount(VISIBLE_COUNT);
} else {
select.setVisibleItemCount(1);
}
- select.setEnabled(!disabled && !readonly);
+ select.setEnabled(!isDisabled() && !isReadonly());
select.clear();
for (Iterator i = uidl.getChildIterator(); i.hasNext();) {
UIDL optionUidl = (UIDL) i.next();
@@ -53,12 +53,11 @@ public class ISelect extends IOptionGroupBase {
public void onChange(Widget sender) {
if (select.isMultipleSelect()) {
- client
- .updateVariable(id, "selected", getSelectedItems(),
- immediate);
+ client.updateVariable(id, "selected", getSelectedItems(),
+ isImmediate());
} else {
client.updateVariable(id, "selected", new String[] { ""
- + getSelectedItem() }, immediate);
+ + getSelectedItem() }, isImmediate());
}
}
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITwinColSelect.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITwinColSelect.java
index be8763e2f2..5ed9cea2e9 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITwinColSelect.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITwinColSelect.java
@@ -12,133 +12,136 @@ import com.itmill.toolkit.terminal.gwt.client.UIDL;
public class ITwinColSelect extends IOptionGroupBase {
- private static final String CLASSNAME = "i-select-twincol";
-
- private static final int VISIBLE_COUNT = 10;
-
- private ListBox options;
-
- private ListBox selections;
-
- private IButton add;
-
- private IButton remove;
-
- public ITwinColSelect() {
- super(CLASSNAME);
- options = new ListBox();
- selections = new ListBox();
- options.setVisibleItemCount(VISIBLE_COUNT);
- selections.setVisibleItemCount(VISIBLE_COUNT);
- options.setStyleName(CLASSNAME + "-options");
- selections.setStyleName(CLASSNAME + "-selections");
- Panel buttons = new FlowPanel();
- buttons.setStyleName(CLASSNAME + "-buttons");
- add = new IButton();
- remove = new IButton();
- add.setText(">>");
- remove.setText("<<");
- add.addClickListener(this);
- remove.addClickListener(this);
- Panel p = ((Panel) optionsContainer);
- p.add(options);
- buttons.add(add);
- HTML br = new HTML("&nbsp;");
- br.setStyleName(CLASSNAME + "-deco");
- buttons.add(br);
- buttons.add(remove);
- p.add(buttons);
- p.add(selections);
- }
-
- protected void buildOptions(UIDL uidl) {
- boolean enabled = !disabled && !readonly;
- options.setMultipleSelect(multiselect);
- selections.setMultipleSelect(multiselect);
- options.setEnabled(enabled);
- selections.setEnabled(enabled);
- add.setEnabled(enabled);
- remove.setEnabled(enabled);
- options.clear();
- selections.clear();
- for (Iterator i = uidl.getChildIterator(); i.hasNext();) {
- UIDL optionUidl = (UIDL) i.next();
- if (optionUidl.hasAttribute("selected")) {
- selections.addItem(optionUidl.getStringAttribute("caption"),
- optionUidl.getStringAttribute("key"));
- } else
- options.addItem(optionUidl.getStringAttribute("caption"),
- optionUidl.getStringAttribute("key"));
- }
- }
-
- protected Object[] getSelectedItems() {
- Vector selectedItemKeys = new Vector();
- for (int i = 0; i < selections.getItemCount(); i++) {
- selectedItemKeys.add(selections.getValue(i));
- }
- return selectedItemKeys.toArray();
- }
-
- private boolean[] getItemsToAdd() {
- boolean[] selectedIndexes = new boolean[options.getItemCount()];
- for (int i = 0; i < options.getItemCount(); i++) {
- if (options.isItemSelected(i))
- selectedIndexes[i] = true;
- else
- selectedIndexes[i] = false;
- }
- return selectedIndexes;
- }
-
- private boolean[] getItemsToRemove() {
- boolean[] selectedIndexes = new boolean[selections.getItemCount()];
- for (int i = 0; i < selections.getItemCount(); i++) {
- if (selections.isItemSelected(i))
- selectedIndexes[i] = true;
- else
- selectedIndexes[i] = false;
- }
- return selectedIndexes;
- }
-
- public void onClick(Widget sender) {
- super.onClick(sender);
- if (sender == add) {
- boolean[] sel = getItemsToAdd();
- for (int i = 0; i < sel.length; i++) {
- if (sel[i]) {
- int optionIndex = i - (sel.length - options.getItemCount());
- selectedKeys.add(options.getValue(optionIndex));
-
- // Move selection to another column
- String text = options.getItemText(optionIndex);
- String value = options.getValue(optionIndex);
- selections.addItem(text, value);
- options.removeItem(optionIndex);
- }
- }
- client.updateVariable(id, "selected", selectedKeys.toArray(),
- immediate);
-
- } else if (sender == remove) {
- boolean[] sel = getItemsToRemove();
- for (int i = 0; i < sel.length; i++) {
- if (sel[i]) {
- int selectionIndex = i
- - (sel.length - selections.getItemCount());
- selectedKeys.remove(selections.getValue(selectionIndex));
-
- // Move selection to another column
- String text = selections.getItemText(selectionIndex);
- String value = selections.getValue(selectionIndex);
- options.addItem(text, value);
- selections.removeItem(selectionIndex);
- }
- }
- client.updateVariable(id, "selected", selectedKeys.toArray(),
- immediate);
- }
- }
+ private static final String CLASSNAME = "i-select-twincol";
+
+ private static final int VISIBLE_COUNT = 10;
+
+ private ListBox options;
+
+ private ListBox selections;
+
+ private IButton add;
+
+ private IButton remove;
+
+ public ITwinColSelect() {
+ super(CLASSNAME);
+ options = new ListBox();
+ selections = new ListBox();
+ options.setVisibleItemCount(VISIBLE_COUNT);
+ selections.setVisibleItemCount(VISIBLE_COUNT);
+ options.setStyleName(CLASSNAME + "-options");
+ selections.setStyleName(CLASSNAME + "-selections");
+ Panel buttons = new FlowPanel();
+ buttons.setStyleName(CLASSNAME + "-buttons");
+ add = new IButton();
+ remove = new IButton();
+ add.setText(">>");
+ remove.setText("<<");
+ add.addClickListener(this);
+ remove.addClickListener(this);
+ Panel p = ((Panel) optionsContainer);
+ p.add(options);
+ buttons.add(add);
+ HTML br = new HTML("&nbsp;");
+ br.setStyleName(CLASSNAME + "-deco");
+ buttons.add(br);
+ buttons.add(remove);
+ p.add(buttons);
+ p.add(selections);
+ }
+
+ protected void buildOptions(UIDL uidl) {
+ boolean enabled = !isDisabled() && !isReadonly();
+ options.setMultipleSelect(isMultiselect());
+ selections.setMultipleSelect(isMultiselect());
+ options.setEnabled(enabled);
+ selections.setEnabled(enabled);
+ add.setEnabled(enabled);
+ remove.setEnabled(enabled);
+ options.clear();
+ selections.clear();
+ for (Iterator i = uidl.getChildIterator(); i.hasNext();) {
+ UIDL optionUidl = (UIDL) i.next();
+ if (optionUidl.hasAttribute("selected")) {
+ selections.addItem(optionUidl.getStringAttribute("caption"),
+ optionUidl.getStringAttribute("key"));
+ } else {
+ options.addItem(optionUidl.getStringAttribute("caption"),
+ optionUidl.getStringAttribute("key"));
+ }
+ }
+ }
+
+ protected Object[] getSelectedItems() {
+ Vector selectedItemKeys = new Vector();
+ for (int i = 0; i < selections.getItemCount(); i++) {
+ selectedItemKeys.add(selections.getValue(i));
+ }
+ return selectedItemKeys.toArray();
+ }
+
+ private boolean[] getItemsToAdd() {
+ boolean[] selectedIndexes = new boolean[options.getItemCount()];
+ for (int i = 0; i < options.getItemCount(); i++) {
+ if (options.isItemSelected(i)) {
+ selectedIndexes[i] = true;
+ } else {
+ selectedIndexes[i] = false;
+ }
+ }
+ return selectedIndexes;
+ }
+
+ private boolean[] getItemsToRemove() {
+ boolean[] selectedIndexes = new boolean[selections.getItemCount()];
+ for (int i = 0; i < selections.getItemCount(); i++) {
+ if (selections.isItemSelected(i)) {
+ selectedIndexes[i] = true;
+ } else {
+ selectedIndexes[i] = false;
+ }
+ }
+ return selectedIndexes;
+ }
+
+ public void onClick(Widget sender) {
+ super.onClick(sender);
+ if (sender == add) {
+ boolean[] sel = getItemsToAdd();
+ for (int i = 0; i < sel.length; i++) {
+ if (sel[i]) {
+ int optionIndex = i - (sel.length - options.getItemCount());
+ selectedKeys.add(options.getValue(optionIndex));
+
+ // Move selection to another column
+ String text = options.getItemText(optionIndex);
+ String value = options.getValue(optionIndex);
+ selections.addItem(text, value);
+ options.removeItem(optionIndex);
+ }
+ }
+ client.updateVariable(id, "selected", selectedKeys.toArray(),
+ isImmediate());
+
+ } else if (sender == remove) {
+ boolean[] sel = getItemsToRemove();
+ for (int i = 0; i < sel.length; i++) {
+ if (sel[i]) {
+ int selectionIndex = i
+ - (sel.length - selections.getItemCount());
+ selectedKeys.remove(selections.getValue(selectionIndex));
+
+ // Move selection to another column
+ String text = selections.getItemText(selectionIndex);
+ String value = selections.getValue(selectionIndex);
+ options.addItem(text, value);
+ selections.removeItem(selectionIndex);
+ }
+ }
+ client.updateVariable(id, "selected", selectedKeys.toArray(),
+ isImmediate());
+ }
+ }
}