diff options
author | Anna Koskinen <Ansku@users.noreply.github.com> | 2018-02-07 16:08:29 +0200 |
---|---|---|
committer | Ilia Motornyi <elmot@vaadin.com> | 2018-02-07 16:08:29 +0200 |
commit | b31167b3e708ce068e3a1a104e613075aa261edb (patch) | |
tree | 5e1a4a6a004c33e6d5a4c84b195c82b5f801ef80 /uitest/src/main/java | |
parent | ece60ca12e44f930aaea36f35e3d103aec78237c (diff) | |
download | vaadin-framework-b31167b3e708ce068e3a1a104e613075aa261edb.tar.gz vaadin-framework-b31167b3e708ce068e3a1a104e613075aa261edb.zip |
Implement NewItemProvider to replace NewItemHandler (#10606)
Diffstat (limited to 'uitest/src/main/java')
2 files changed, 63 insertions, 23 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxNewItemProvider.java b/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxNewItemProvider.java new file mode 100644 index 0000000000..71f8503216 --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxNewItemProvider.java @@ -0,0 +1,35 @@ +package com.vaadin.tests.components.combobox; + +import java.util.Collections; +import java.util.Optional; + +public class ComboBoxNewItemProvider + extends ComboBoxSelectingNewItemValueChange { + + @Override + protected void configureNewItemHandling() { + comboBox.setNewItemProvider(text -> { + if (Boolean.TRUE.equals(delay.getValue())) { + try { + Thread.sleep(2000); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + } + if (Boolean.TRUE.equals(reject.getValue())) { + valueChangeLabel.setValue("item " + text + " discarded"); + return Optional.empty(); + } else { + items.add(text); + Collections.sort(items); + valueChangeLabel + .setValue("adding new item... count: " + items.size()); + comboBox.getDataProvider().refreshAll(); + if (Boolean.TRUE.equals(noSelection.getValue())) { + return Optional.empty(); + } + } + return Optional.of(text); + }); + } +} diff --git a/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxSelectingNewItemValueChange.java b/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxSelectingNewItemValueChange.java index a65e34be63..a6f5e8e297 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxSelectingNewItemValueChange.java +++ b/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxSelectingNewItemValueChange.java @@ -16,7 +16,7 @@ import com.vaadin.ui.Notification; public class ComboBoxSelectingNewItemValueChange extends ComboBoxSelecting { - private final class CustomComboBox extends ComboBox<String> { + final class CustomComboBox extends ComboBox<String> { private CustomComboBox(String caption, Collection<String> options) { super(caption, options); } @@ -52,28 +52,7 @@ public class ComboBoxSelectingNewItemValueChange extends ComboBoxSelecting { } }); - comboBox.setNewItemHandler(text -> { - if (Boolean.TRUE.equals(delay.getValue())) { - try { - Thread.sleep(2000); - } catch (InterruptedException e1) { - e1.printStackTrace(); - } - } - if (Boolean.TRUE.equals(reject.getValue())) { - valueChangeLabel.setValue("item " + text + " discarded"); - comboBox.getComboBoxClientRpc().newItemNotAdded(text); - } else { - items.add(text); - Collections.sort(items); - valueChangeLabel - .setValue("adding new item... count: " + items.size()); - if (Boolean.TRUE.equals(noSelection.getValue())) { - comboBox.getComboBoxClientRpc().newItemNotAdded(text); - } - comboBox.getDataProvider().refreshAll(); - } - }); + configureNewItemHandling(); comboBox.addValueChangeListener(e -> { ++valueChangeEventCount; @@ -110,6 +89,32 @@ public class ComboBoxSelectingNewItemValueChange extends ComboBoxSelecting { resetButton, delay, reject, noSelection); } + @SuppressWarnings("deprecation") + protected void configureNewItemHandling() { + comboBox.setNewItemHandler(text -> { + if (Boolean.TRUE.equals(delay.getValue())) { + try { + Thread.sleep(2000); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + } + if (Boolean.TRUE.equals(reject.getValue())) { + valueChangeLabel.setValue("item " + text + " discarded"); + comboBox.getComboBoxClientRpc().newItemNotAdded(text); + } else { + items.add(text); + Collections.sort(items); + valueChangeLabel + .setValue("adding new item... count: " + items.size()); + if (Boolean.TRUE.equals(noSelection.getValue())) { + comboBox.getComboBoxClientRpc().newItemNotAdded(text); + } + comboBox.getDataProvider().refreshAll(); + } + }); + } + private void initItems() { items.clear(); for (char c = 'a'; c <= 'z'; c++) { |