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.

ComboBoxMixedUpdate.java 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.vaadin.tests.components.combobox;
  2. import java.util.Arrays;
  3. import com.vaadin.data.Binder;
  4. import com.vaadin.server.VaadinRequest;
  5. import com.vaadin.tests.components.AbstractTestUIWithLog;
  6. import com.vaadin.ui.Button;
  7. import com.vaadin.ui.ComboBox;
  8. import com.vaadin.ui.HorizontalLayout;
  9. public class ComboBoxMixedUpdate extends AbstractTestUIWithLog {
  10. private Pojo pojo;
  11. @Override
  12. protected void setup(VaadinRequest request) {
  13. Binder<Pojo> binder = new Binder<>();
  14. ComboBox<Integer> numbers = new ComboBox<>();
  15. numbers.setItems(Arrays.asList(0, 1, 2, 3));
  16. binder.forField(numbers).bind(Pojo::getNumber, Pojo::setNumber);
  17. pojo = new Pojo(1);
  18. binder.setBean(pojo);
  19. Button reset = new Button("reset");
  20. reset.setId("reset");
  21. reset.addClickListener(e -> {
  22. pojo.setNumber(0);
  23. // refresh binder
  24. binder.readBean(pojo);
  25. });
  26. Button show = new Button("show values");
  27. show.setId("show");
  28. show.addClickListener(e -> {
  29. log("Bean value = " + pojo.getNumber() + " - ComboBox value = "
  30. + numbers.getValue());
  31. });
  32. HorizontalLayout buttons = new HorizontalLayout(numbers, show, reset);
  33. getLayout().addComponents(buttons);
  34. }
  35. @Override
  36. protected String getTestDescription() {
  37. return "1: Write not null value (1-3) that differs from previous selection and TAB out -- don't select from drop down"
  38. + "<br>2: Click the 'show values' button to confirm both ComboBox and bean values were updated"
  39. + "<br>3: Click the 'reset' button (both ComboBox and bean values should go to 0)"
  40. + "<br>4: Re-focus ComboBox, write the previous value and TAB out -- don't select from drop down"
  41. + "<br>5: Both ComboBox and bean values should have the written value, not 0.";
  42. }
  43. @Override
  44. protected Integer getTicketNumber() {
  45. return 10660;
  46. }
  47. public class Pojo {
  48. int number;
  49. public Pojo(int number) {
  50. this.number = number;
  51. }
  52. public int getNumber() {
  53. return number;
  54. }
  55. public void setNumber(int number) {
  56. this.number = number;
  57. }
  58. }
  59. }