aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxMixedUpdate.java
blob: 04957162b00eb6a10b142f01b902467114294125 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package com.vaadin.tests.components.combobox;

import java.util.Arrays;

import com.vaadin.data.Binder;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUIWithLog;
import com.vaadin.ui.Button;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.HorizontalLayout;

public class ComboBoxMixedUpdate extends AbstractTestUIWithLog {

    private Pojo pojo;

    @Override
    protected void setup(VaadinRequest request) {
        Binder<Pojo> binder = new Binder<>();
        ComboBox<Integer> numbers = new ComboBox<>();
        numbers.setItems(Arrays.asList(0, 1, 2, 3));
        binder.forField(numbers).bind(Pojo::getNumber, Pojo::setNumber);

        pojo = new Pojo(1);
        binder.setBean(pojo);

        Button reset = new Button("reset");
        reset.setId("reset");
        reset.addClickListener(e -> {
            pojo.setNumber(0);
            // refresh binder
            binder.readBean(pojo);
        });

        Button show = new Button("show values");
        show.setId("show");
        show.addClickListener(e -> {
            log("Bean value = " + pojo.getNumber() + " - ComboBox value = "
                    + numbers.getValue());
        });

        HorizontalLayout buttons = new HorizontalLayout(numbers, show, reset);

        getLayout().addComponents(buttons);
    }

    @Override
    protected String getTestDescription() {
        return "1: Write not null value (1-3) that differs from previous selection and TAB out -- don't select from drop down"
                + "<br>2: Click the 'show values' button to confirm both ComboBox and bean values were updated"
                + "<br>3: Click the 'reset' button (both ComboBox and bean values should go to 0)"
                + "<br>4: Re-focus ComboBox, write the previous value and TAB out -- don't select from drop down"
                + "<br>5: Both ComboBox and bean values should have the written value, not 0.";
    }

    @Override
    protected Integer getTicketNumber() {
        return 10660;
    }

    public class Pojo {
        int number;

        public Pojo(int number) {
            this.number = number;
        }

        public int getNumber() {
            return number;
        }

        public void setNumber(int number) {
            this.number = number;
        }
    }
}