You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ListingTestUI.java 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.vaadin.tests.databinding;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4. import java.util.List;
  5. import java.util.stream.Stream;
  6. import com.vaadin.server.VaadinRequest;
  7. import com.vaadin.server.communication.data.typed.AbstractDataSource;
  8. import com.vaadin.tests.components.AbstractTestUI;
  9. import com.vaadin.ui.Button;
  10. import com.vaadin.ui.Notification;
  11. import com.vaadin.ui.components.nativeselect.NativeSelect;
  12. public class ListingTestUI extends AbstractTestUI {
  13. @Override
  14. protected void setup(VaadinRequest request) {
  15. final List<String> options = createOptions();
  16. NativeSelect<String> select = new NativeSelect<>(
  17. new AbstractDataSource<String>() {
  18. @Override
  19. public void save(String data) {
  20. }
  21. @Override
  22. public void remove(String data) {
  23. }
  24. @Override
  25. public Iterator<String> iterator() {
  26. return options.iterator();
  27. }
  28. });
  29. addComponent(select);
  30. addComponent(new Button("Notify", e -> select.getSelectionModel()
  31. .getSelected().forEach(s -> Notification.show(s))));
  32. }
  33. private List<String> createOptions() {
  34. List<String> options = new ArrayList<>();
  35. Stream.of(1, 2, 3, 4, 5).map(i -> "Option " + i).forEach(options::add);
  36. return options;
  37. }
  38. }