12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package com.vaadin.tests.components.grid;
-
- import java.util.stream.IntStream;
-
- import com.vaadin.data.Binder;
- import com.vaadin.data.Binder.Binding;
- import com.vaadin.data.converter.StringToIntegerConverter;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.tests.components.AbstractTestUI;
- import com.vaadin.tests.data.bean.Person;
- import com.vaadin.ui.Grid;
- import com.vaadin.ui.Grid.Column;
- import com.vaadin.ui.TextField;
- import com.vaadin.ui.renderers.NumberRenderer;
-
- public class GridEditorMultiselect extends AbstractTestUI {
-
- @Override
- protected void setup(VaadinRequest request) {
- Grid<Person> grid = new Grid<>();
-
- Column<Person, String> nameColumn = grid.addColumn(Person::getFirstName)
- .setCaption("name");
- Column<Person, Integer> ageColumn = grid
- .addColumn(Person::getAge, new NumberRenderer())
- .setCaption("age");
-
- Binder<Person> binder = grid.getEditor().getBinder();
-
- nameColumn.setEditorComponent(new TextField(), Person::setFirstName);
-
- Binding<Person, Integer> ageBinding = binder.forField(new TextField())
- .withConverter(new StringToIntegerConverter(""))
- .bind(Person::getAge, Person::setAge);
- ageColumn.setEditorBinding(ageBinding);
-
- grid.setItems(IntStream.range(0, 30).mapToObj(this::createPerson));
-
- grid.getEditor().setEnabled(true);
- grid.setSelectionMode(Grid.SelectionMode.MULTI);
-
- addComponent(grid);
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 17132;
- }
-
- @Override
- protected String getTestDescription() {
- return "Grid Multiselect: Edit mode allows invalid selection";
- }
-
- private Person createPerson(int i) {
- Person person = new Person();
- person.setFirstName("name" + i);
- person.setAge(i);
- return person;
- }
- }
|