package com.vaadin.tests.components.combobox;
import java.util.ArrayList;
import java.util.List;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.util.Log;
import com.vaadin.tests.util.Person;
import com.vaadin.ui.Button;
import com.vaadin.ui.ComboBox;
public class ComboBoxDuplicateCaption extends TestBase {
private Log log = new Log(5);
@Override
protected void setup() {
List<Person> list = new ArrayList<>();
Person p1 = new Person();
p1.setFirstName("John");
p1.setLastName("Doe");
list.add(p1);
Person p2 = new Person();
p2.setFirstName("Jane");
p2.setLastName("Doe");
list.add(p2);
ComboBox<Person> box = new ComboBox<>("Duplicate captions test Box");
box.setId("ComboBox");
box.addValueChangeListener(event -> {
Person p = event.getValue();
log.log("Person = " + p.getFirstName() + " " + p.getLastName());
});
box.setItems(list);
box.setItemCaptionGenerator(Person::getLastName);
addComponent(log);
addComponent(box);
addComponent(new Button("Focus this"));
}
@Override
protected String getDescription() {
return "ComboBoxes with duplicate item captions should not try to do a select (exact match search) for onBlur if not waitingForFilteringResponse";
}
@Override
protected Integer getTicketNumber() {
return 10766;
}
}