From 237f885b07121eae7d6cb7a51b0cf2fabf33b2d2 Mon Sep 17 00:00:00 2001 From: Marc Englund Date: Wed, 14 Nov 2007 14:02:59 +0000 Subject: [PATCH] IOptionGroupBase protected vars -> getter/setter. svn changeset:2810/svn branch:trunk --- .../terminal/gwt/client/ui/IListSelect.java | 12 +- .../terminal/gwt/client/ui/IOptionGroup.java | 103 +++---- .../gwt/client/ui/IOptionGroupBase.java | 44 ++- .../terminal/gwt/client/ui/ISelect.java | 13 +- .../gwt/client/ui/ITwinColSelect.java | 259 +++++++++--------- 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(" "); - 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(" "); + 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()); + } + } } -- 2.39.5