diff options
author | Aleksi Hietanen <aleksi@vaadin.com> | 2016-09-29 09:19:35 +0300 |
---|---|---|
committer | Aleksi Hietanen <aleksi@vaadin.com> | 2016-09-29 12:46:55 +0000 |
commit | 599b61bc8598db35fa111880dd4db57f9da2adda (patch) | |
tree | 42bde1178019eab0546df58538e20890674fd839 /uitest/src/main/java | |
parent | c4b17ca879c0bb51c7da390fcbd25c96b73486fb (diff) | |
download | vaadin-framework-599b61bc8598db35fa111880dd4db57f9da2adda.tar.gz vaadin-framework-599b61bc8598db35fa111880dd4db57f9da2adda.zip |
Fix item caption generators in RadioButton/CheckBoxGroup
This patch corrects the behavior of setting caption generators
that may return null.
Additionally renames RadioButtonGroup's ItemIconProviders to
generators, unifying it with other select components.
Change-Id: I5e8491834dccce1c37ab9c2002acc475e8945f4b
Diffstat (limited to 'uitest/src/main/java')
2 files changed, 27 insertions, 25 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/abstractlisting/AbstractMultiSelectTestUI.java b/uitest/src/main/java/com/vaadin/tests/components/abstractlisting/AbstractMultiSelectTestUI.java index fadd94a4be..71fd0fd37d 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/abstractlisting/AbstractMultiSelectTestUI.java +++ b/uitest/src/main/java/com/vaadin/tests/components/abstractlisting/AbstractMultiSelectTestUI.java @@ -1,11 +1,13 @@ package com.vaadin.tests.components.abstractlisting; +import java.util.LinkedHashMap; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; import com.vaadin.shared.data.selection.SelectionModel.Multi; import com.vaadin.ui.AbstractMultiSelect; +import com.vaadin.ui.ItemCaptionGenerator; public abstract class AbstractMultiSelectTestUI<MULTISELECT extends AbstractMultiSelect<Object>> extends AbstractListingTestUI<MULTISELECT> { @@ -21,19 +23,18 @@ public abstract class AbstractMultiSelectTestUI<MULTISELECT extends AbstractMult } protected void createItemCaptionGeneratorMenu() { - createBooleanAction("Use Item Caption Generator", "Item Generator", - false, this::useItemCaptionProvider); - } + LinkedHashMap<String, ItemCaptionGenerator<Object>> options = new LinkedHashMap<>(); + options.put("Null Caption Generator", item -> null); + options.put("Default Caption Generator", item -> item.toString()); + options.put("Custom Caption Generator", + item -> item.toString() + " Caption"); - private void useItemCaptionProvider(MULTISELECT select, boolean activate, - Object data) { - if (activate) { - select.setItemCaptionGenerator( - item -> item.toString() + " Caption"); - } else { - select.setItemCaptionGenerator(item -> item.toString()); - } - select.getDataSource().refreshAll(); + createSelectAction("Item Caption Generator", "Item Generator", options, + "None", (abstractMultiSelect, captionGenerator, data) -> { + abstractMultiSelect + .setItemCaptionGenerator(captionGenerator); + abstractMultiSelect.getDataSource().refreshAll(); + }, true); } protected void createSelectionMenu() { diff --git a/uitest/src/main/java/com/vaadin/tests/components/radiobutton/RadioButtonGroupTestUI.java b/uitest/src/main/java/com/vaadin/tests/components/radiobutton/RadioButtonGroupTestUI.java index 19d9ffd3f3..041c578f1b 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/radiobutton/RadioButtonGroupTestUI.java +++ b/uitest/src/main/java/com/vaadin/tests/components/radiobutton/RadioButtonGroupTestUI.java @@ -15,10 +15,12 @@ */ package com.vaadin.tests.components.radiobutton; +import java.util.LinkedHashMap; import java.util.stream.IntStream; import com.vaadin.shared.data.selection.SelectionModel; import com.vaadin.tests.components.abstractlisting.AbstractListingTestUI; +import com.vaadin.ui.ItemCaptionGenerator; import com.vaadin.ui.RadioButtonGroup; /** @@ -42,7 +44,7 @@ public class RadioButtonGroupTestUI super.createActions(); createListenerMenu(); createSelectionMenu(); - createItemProviderMenu(); + createItemGeneratorMenu(); } protected void createSelectionMenu() { @@ -59,19 +61,18 @@ public class RadioButtonGroupTestUI selectionCategory, toggleSelection, item)); } - private void createItemProviderMenu() { - createBooleanAction("Use Item Caption Provider", "Item Provider", false, - this::useItemCaptionProvider); - } + private void createItemGeneratorMenu() { + LinkedHashMap<String, ItemCaptionGenerator<Object>> options = new LinkedHashMap<>(); + options.put("Null Caption Generator", item -> null); + options.put("Default Caption Generator", item -> item.toString()); + options.put("Custom Caption Generator", + item -> item.toString() + " Caption"); - private void useItemCaptionProvider(RadioButtonGroup<Object> group, - boolean activate, Object data) { - if (activate) { - group.setItemCaptionProvider(item -> item.toString() + " Caption"); - } else { - group.setItemCaptionProvider(item -> item.toString()); - } - group.getDataSource().refreshAll(); + createSelectAction("Item Caption Generator", "Item Generator", options, + "None", (radioButtonGroup, captionGenerator, data) -> { + radioButtonGroup.setItemCaptionGenerator(captionGenerator); + radioButtonGroup.getDataSource().refreshAll(); + }, true); } private void toggleSelection(String item) { |