aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/main/java/com/vaadin/tests/components/grid/GridFrozenColumnNPE.java
blob: 1d7f5901f32c5da2d4582db0d1126cb14b38c228 (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
package com.vaadin.tests.components.grid;

import java.util.ArrayList;
import java.util.List;

import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.data.bean.Person;
import com.vaadin.ui.Button;
import com.vaadin.ui.Grid;
import com.vaadin.ui.renderers.NumberRenderer;

public class GridFrozenColumnNPE extends SimpleGridUI {

    private Grid<Person> grid;

    @Override
    protected void setup(VaadinRequest request) {
        grid = new Grid<Person>();
        grid.setSizeFull();
        init();
        getLayout().addComponent(grid);

        grid.setFrozenColumnCount(1);

        Button button = new Button("change frozen count");
        button.addClickListener(event -> {
            reInit();
        });
        getLayout().addComponent(button);
    }

    @Override
    protected List<Person> createPersons() {
        List<Person> persons = new ArrayList<>();
        for (int i = 0; i < 10; ++i) {
            Person person = new Person();
            person.setFirstName("First " + i);
            person.setLastName("Last" + i);
            person.setAge(i);
            persons.add(person);
        }
        return persons;
    }

    protected void init() {
        grid.addColumn(Person::getFirstName);
        grid.addColumn(Person::getLastName);
        grid.addColumn(Person::getAge, new NumberRenderer());

        grid.setItems(createPersons());
        grid.setFrozenColumnCount(1);
        grid.setFrozenColumnCount(2);
    }

    protected void reInit() {
        grid.removeAllColumns();
        init();
    }

}