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.

GridDataSourceReset.java 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.vaadin.tests.components.grid;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Random;
  5. import com.vaadin.data.provider.DataProvider;
  6. import com.vaadin.data.provider.ListDataProvider;
  7. import com.vaadin.server.VaadinRequest;
  8. import com.vaadin.tests.components.AbstractTestUI;
  9. import com.vaadin.tests.fieldgroup.ComplexPerson;
  10. import com.vaadin.ui.Button;
  11. import com.vaadin.ui.Grid;
  12. public class GridDataSourceReset extends AbstractTestUI {
  13. private List<ComplexPerson> persons;
  14. private Grid<ComplexPerson> grid;
  15. @Override
  16. protected void setup(VaadinRequest request) {
  17. persons = createPersons(10, new Random(1));
  18. grid = new Grid<>();
  19. ListDataProvider<ComplexPerson> provider = DataProvider
  20. .ofCollection(persons);
  21. grid.setDataProvider(provider);
  22. grid.getSelectionModel().select(persons.get(0));
  23. addComponent(new Button("Remove first", event -> {
  24. persons.remove(0);
  25. provider.refreshAll();
  26. grid.getSelectionModel().select(persons.get(0));
  27. }));
  28. addComponent(grid);
  29. }
  30. public static List<ComplexPerson> createPersons(int count, Random r) {
  31. List<ComplexPerson> c = new ArrayList<>();
  32. for (int i = 0; i < count; ++i) {
  33. c.add(ComplexPerson.create(r));
  34. }
  35. return c;
  36. }
  37. }