aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/main/java/com/vaadin/tests/components/grid/GridCheckBoxDisplay.java
blob: 8fe6aba5e7b2043ee11ad9396177351526ff34e2 (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package com.vaadin.tests.components.grid;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;

import com.vaadin.data.Binder;
import com.vaadin.data.Binder.Binding;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractReindeerTestUI;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.Grid;
import com.vaadin.ui.Grid.Column;
import com.vaadin.ui.TextField;

public class GridCheckBoxDisplay extends AbstractReindeerTestUI {

    private static final long serialVersionUID = -5575892909354637168L;

    @Override
    protected void setup(VaadinRequest request) {
        List<Todo> items = Arrays.asList(new Todo("Done task", true),
                new Todo("Not done", false));

        Grid<Todo> grid = new Grid<>();
        grid.setSizeFull();

        TextField taskField = new TextField();
        CheckBox doneField = new CheckBox();

        Binder<Todo> binder = grid.getEditor().getBinder();

        Binding<Todo, Boolean> doneBinding = binder.bind(doneField,
                Todo::isDone, Todo::setDone);

        Column<Todo, String> column = grid
                .addColumn(todo -> String.valueOf(todo.isDone()));
        column.setWidth(75);
        column.setEditorBinding(doneBinding);

        grid.addColumn(Todo::getTask).setExpandRatio(1)
                .setEditorComponent(taskField, Todo::setTask);

        grid.getEditor().setEnabled(true);

        grid.setSelectionMode(Grid.SelectionMode.SINGLE);

        grid.setItems(items);

        getLayout().addComponent(grid);
        getLayout().setExpandRatio(grid, 1);

    }

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

    @Override
    protected String getTestDescription() {
        return "Verify that checkbox state is correct for all items in editor";
    }

    public class Todo implements Serializable {
        private static final long serialVersionUID = -5961103142478316018L;

        private boolean done;
        private String task = "";

        public Todo(String task, boolean done) {
            this.task = task;
            this.done = done;
        }

        public boolean isDone() {
            return done;
        }

        public void setDone(boolean done) {
            this.done = done;
        }

        public String getTask() {
            return task;
        }

        public void setTask(String task) {
            this.task = task;
        }
    }

}