123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package com.vaadin.tests.components.combobox;
-
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.LinkedHashMap;
- import java.util.List;
-
- import com.vaadin.server.ThemeResource;
- import com.vaadin.tests.components.ComponentTestCase;
- import com.vaadin.ui.ComboBox;
- import com.vaadin.ui.Component;
-
- public class Comboboxes extends ComponentTestCase<ComboBox> {
-
- private static class StringBean {
- private String value;
-
- public StringBean(String value) {
- this.value = value;
- }
-
- public String getValue() {
- return value;
- }
- }
-
- @Override
- protected Class<ComboBox> getTestClass() {
- return ComboBox.class;
- }
-
- @Override
- protected void initializeComponents() {
- ComboBox<String> s1 = createSelect(null);
- s1.setWidth(null);
- addTestComponent(s1);
-
- ComboBox<String> s2 = createSelect("Undefined wide, empty select");
- s2.setWidth(null);
- addTestComponent(s2);
-
- ComboBox<String> s3 = createSelect(
- "Undefined wide select with 5 items");
- s3.setWidth(null);
- s3.setItems("The first item", "The second item", "The third item",
- "The fourth item", "The fifth item");
- addTestComponent(s3);
-
- ComboBox<StringBean> s4 = new ComboBox<>(
- "Undefined wide select with 50 items");
- s4.setWidth(null);
- populate(s4, 50);
- s4.setItemCaptionGenerator(StringBean::getValue);
- s4.setScrollToSelectedItem(true);
- addTestComponent(s4);
-
- ComboBox<String> s5 = createSelect(null);
- s5.setWidth("100px");
- addTestComponent(s5);
-
- ComboBox<String> s6 = createSelect("100px wide, empty select");
- s6.setWidth("100px");
- addTestComponent(s6);
-
- ComboBox<String> s7 = createSelect("150px wide select with 5 items");
- s7.setWidth("150px");
- s7.setItems("The first item", "The second item", "The third item",
- "The fourth item", "The fifth item");
- addTestComponent(s7);
-
- ComboBox<StringBean> s8 = new ComboBox<>(
- "200px wide select with 50 items");
- s8.setWidth("200px");
- populate(s8, 50);
- s8.setItemCaptionGenerator(StringBean::getValue);
- addTestComponent(s8);
-
- ComboBox<StringBean> s9 = new PageLength0ComboBox();
- s9.setCaption("Pagelength 0");
- populate(s9, 15);
- s9.setItemCaptionGenerator(StringBean::getValue);
- addTestComponent(s9);
- }
-
- public class PageLength0ComboBox extends ComboBox<StringBean> {
- public PageLength0ComboBox() {
- super();
- setPageLength(0);
- }
- }
-
- private void populate(ComboBox<StringBean> s, int nr) {
- List<StringBean> beans = new ArrayList<>();
- String text = " an item ";
-
- String caption = "";
- for (int i = 0; i < nr; i++) {
- if (i % 2 == 0) {
- caption += text;
- } else {
- caption += i;
- }
-
- beans.add(new StringBean(caption));
- }
- s.setItems(beans);
- }
-
- private ComboBox<String> createSelect(String caption) {
- return new ComboBox<>(caption);
- }
-
- @Override
- protected String getTestDescription() {
- return "A generic test for ComboBoxes in different configurations";
- }
-
- @Override
- protected void createCustomActions(List<Component> actions) {
- actions.add(createIconSelect());
- }
-
- @SuppressWarnings("rawtypes")
- private Component createIconSelect() {
-
- LinkedHashMap<String, String> options = new LinkedHashMap<>();
- options.put("<None>", null);
- options.put("16x16", "../runo/icons/16/user.png");
- options.put("32x32", "../runo/icons/32/attention.png");
- options.put("64x64", "../runo/icons/64/email-reply.png");
-
- return createSelectAction("Icon", options, "<None>",
- new Command<ComboBox, String>() {
-
- @SuppressWarnings("unchecked")
- @Override
- public void execute(ComboBox c, String value, Object data) {
- if (value == null) {
- c.setItemIconGenerator(item -> null);
- } else {
- c.setItemIconGenerator(item -> new ThemeResource(
- value + "?" + new Date().getTime()));
- }
- }
- });
- }
- }
|