aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxItemIcon.java
blob: 0eb3d7c97fc8ac629fb90308c12ff63c2d85b2b1 (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
package com.vaadin.tests.components.combobox;

import java.net.URISyntaxException;
import java.nio.file.Paths;
import java.util.Locale;
import java.util.stream.IntStream;

import com.vaadin.server.ClassResource;
import com.vaadin.server.FileResource;
import com.vaadin.server.StreamResource;
import com.vaadin.server.ThemeResource;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.IconGenerator;

public class ComboBoxItemIcon extends TestBase {

    private IconGenerator<Integer> iconGenerator = i -> {
        switch (i % 3) {
        case 0:
            return new StreamResource(() -> getClass().getResourceAsStream(
                    "/com/vaadin/tests/integration/se.gif"), "se.gif");
        case 1:
            try {
                return new FileResource(Paths.get(getClass()
                        .getResource("/com/vaadin/tests/integration/fi.gif")
                        .toURI()).toFile());
            } catch (URISyntaxException e) {
                return null;
            }
        case 2:
            return new ClassResource("/com/vaadin/tests/m.gif");
        default:
            return null;
        }
    };

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

    @Override
    protected String getDescription() {
        return "All items in the ComboBoxes should have icons.";
    }

    @Override
    protected void setup() {
        {
            ComboBox<String> cb = new ComboBox<>();
            cb.setItems("FI", "SE");
            cb.setItemIconGenerator(
                    item -> new ThemeResource("../tests-tickets/icons/"
                            + item.toLowerCase(Locale.ROOT) + ".gif"));

            addComponent(cb);
        }
        {
            ComboBox<String> cb = new ComboBox<>();
            cb.setItems("Finland", "Australia", "Hungary");
            cb.setItemIconGenerator(
                    item -> new ThemeResource("../tests-tickets/icons/"
                            + item.substring(0, 2).toLowerCase(Locale.ROOT)
                            + ".gif"));

            cb.setValue("Hungary");
            addComponent(cb);
        }
        {
            ComboBox<Integer> cb = new ComboBox<>();
            cb.setItems(IntStream.range(0, 3).boxed());
            cb.setItemIconGenerator(iconGenerator);

            cb.setValue(1);
            addComponent(cb);
        }
    }

}