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.

GridRemoveItemAllDetailsOpen.java 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.vaadin.tests.components.grid;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import com.vaadin.data.provider.ListDataProvider;
  6. import com.vaadin.server.VaadinRequest;
  7. import com.vaadin.tests.components.AbstractTestUI;
  8. import com.vaadin.ui.Button;
  9. import com.vaadin.ui.Grid;
  10. import com.vaadin.ui.HorizontalLayout;
  11. import com.vaadin.ui.Label;
  12. public class GridRemoveItemAllDetailsOpen extends AbstractTestUI {
  13. @Override
  14. protected void setup(VaadinRequest request) {
  15. List<String> data = new ArrayList<>(
  16. Arrays.asList("row1", "row2", "row3", "row4"));
  17. Grid<String> grid = createGrid();
  18. ListDataProvider<String> dataProvider = new ListDataProvider<>(data);
  19. grid.setDataProvider(dataProvider);
  20. data.forEach(item -> grid.setDetailsVisible(item, true));
  21. Button removeBtn = new Button("Remove selected item");
  22. removeBtn.addClickListener(event -> {
  23. data.remove(grid.getSelectedItems().iterator().next());
  24. dataProvider.refreshAll();
  25. grid.deselectAll();
  26. });
  27. addComponent(removeBtn);
  28. addComponent(grid);
  29. }
  30. private Grid<String> createGrid() {
  31. Grid<String> grid = new Grid<>();
  32. grid.setHeight("400px");
  33. grid.addColumn(item -> item).setCaption("column").setId("column");
  34. grid.setDetailsGenerator(item -> {
  35. Button closeBtn = new Button("Close");
  36. closeBtn.addClickListener(
  37. clickEvent -> grid.setDetailsVisible(item, false));
  38. return new HorizontalLayout(new Label("Item details: " + item),
  39. closeBtn);
  40. });
  41. grid.addItemClickListener(
  42. itemClick -> grid.setDetailsVisible(itemClick.getItem(), true));
  43. return grid;
  44. }
  45. @Override
  46. protected Integer getTicketNumber() {
  47. return 12328;
  48. }
  49. @Override
  50. protected String getTestDescription() {
  51. return "Removing selected item (first or second)"
  52. + "should not cause a client side exception.";
  53. }
  54. }