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.

GridExtensionCommunication.java 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.vaadin.tests.components.grid;
  2. import java.util.stream.IntStream;
  3. import com.vaadin.annotations.Widgetset;
  4. import com.vaadin.server.VaadinRequest;
  5. import com.vaadin.shared.MouseEventDetails;
  6. import com.vaadin.tests.components.AbstractTestUIWithLog;
  7. import com.vaadin.tests.data.bean.Person;
  8. import com.vaadin.tests.widgetset.TestingWidgetSet;
  9. import com.vaadin.tests.widgetset.client.grid.GridClickExtensionConnector;
  10. import com.vaadin.ui.Grid;
  11. import com.vaadin.ui.Grid.AbstractGridExtension;
  12. import com.vaadin.ui.Grid.Column;
  13. import com.vaadin.ui.Grid.SelectionMode;
  14. import elemental.json.JsonObject;
  15. @Widgetset(TestingWidgetSet.NAME)
  16. public class GridExtensionCommunication extends AbstractTestUIWithLog {
  17. public class GridClickExtension extends AbstractGridExtension<Person> {
  18. public GridClickExtension(Grid<Person> grid) {
  19. extend(grid);
  20. registerRpc(new GridClickExtensionConnector.GridClickServerRpc() {
  21. @Override
  22. public void click(String row, String column,
  23. MouseEventDetails click) {
  24. Person person = getData(row);
  25. Column<Person, ?> col = grid.getColumns()
  26. .get(Integer.parseInt(column));
  27. log("Click on Person " + person.getFirstName() + " "
  28. + person.getLastName() + " on column "
  29. + col.getId());
  30. log("MouseEventDetails: " + click.getButtonName() + " ("
  31. + click.getClientX() + ", " + click.getClientY()
  32. + ")");
  33. }
  34. });
  35. }
  36. @Override
  37. public void generateData(Person item, JsonObject jsonObject) {
  38. }
  39. }
  40. @Override
  41. protected void setup(VaadinRequest request) {
  42. Grid<Person> grid = new Grid<>();
  43. grid.addColumn(Person::getFirstName).setId("first").setCaption("first");
  44. grid.addColumn(Person::getLastName).setId("second")
  45. .setCaption("second");
  46. grid.setItems(IntStream.range(1, 51).mapToObj(this::createPerson));
  47. grid.setSelectionMode(SelectionMode.NONE);
  48. new GridClickExtension(grid);
  49. addComponent(grid);
  50. }
  51. private Person createPerson(int index) {
  52. Person person = new Person();
  53. person.setFirstName("first name " + index);
  54. person.setLastName("last name " + index);
  55. return person;
  56. }
  57. }