You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GridEditorMultiselect.java 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.vaadin.tests.components.grid;
  2. import java.util.stream.IntStream;
  3. import com.vaadin.data.Binder;
  4. import com.vaadin.data.Binder.Binding;
  5. import com.vaadin.data.converter.StringToIntegerConverter;
  6. import com.vaadin.server.VaadinRequest;
  7. import com.vaadin.tests.components.AbstractTestUI;
  8. import com.vaadin.tests.data.bean.Person;
  9. import com.vaadin.ui.Grid;
  10. import com.vaadin.ui.Grid.Column;
  11. import com.vaadin.ui.TextField;
  12. import com.vaadin.ui.renderers.NumberRenderer;
  13. public class GridEditorMultiselect extends AbstractTestUI {
  14. @Override
  15. protected void setup(VaadinRequest request) {
  16. Grid<Person> grid = new Grid<>();
  17. Column<Person, String> nameColumn = grid.addColumn(Person::getFirstName)
  18. .setCaption("name");
  19. Column<Person, Integer> ageColumn = grid
  20. .addColumn(Person::getAge, new NumberRenderer())
  21. .setCaption("age");
  22. Binder<Person> binder = grid.getEditor().getBinder();
  23. nameColumn.setEditorComponent(new TextField(), Person::setFirstName);
  24. Binding<Person, Integer> ageBinding = binder.forField(new TextField())
  25. .withConverter(new StringToIntegerConverter(""))
  26. .bind(Person::getAge, Person::setAge);
  27. ageColumn.setEditorBinding(ageBinding);
  28. grid.setItems(IntStream.range(0, 30).mapToObj(this::createPerson));
  29. grid.getEditor().setEnabled(true);
  30. grid.setSelectionMode(Grid.SelectionMode.MULTI);
  31. addComponent(grid);
  32. }
  33. @Override
  34. protected Integer getTicketNumber() {
  35. return 17132;
  36. }
  37. @Override
  38. protected String getTestDescription() {
  39. return "Grid Multiselect: Edit mode allows invalid selection";
  40. }
  41. private Person createPerson(int i) {
  42. Person person = new Person();
  43. person.setFirstName("name" + i);
  44. person.setAge(i);
  45. return person;
  46. }
  47. }