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.

GridOpenDetailsAddRow.java 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.vaadin.tests.components.grid;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.vaadin.data.provider.ListDataProvider;
  5. import com.vaadin.server.VaadinRequest;
  6. import com.vaadin.tests.components.AbstractTestUI;
  7. import com.vaadin.ui.Button;
  8. import com.vaadin.ui.Grid;
  9. import com.vaadin.ui.Label;
  10. import com.vaadin.ui.VerticalLayout;
  11. public class GridOpenDetailsAddRow extends AbstractTestUI {
  12. @Override
  13. protected void setup(VaadinRequest request) {
  14. Grid<String> testGrid = new Grid<>();
  15. testGrid.addColumn(item -> item).setCaption("column").setId("column");
  16. List<String> list = new ArrayList<>();
  17. list.add("row1");
  18. list.add("row2");
  19. list.add("row3");
  20. ListDataProvider<String> dataProvider = new ListDataProvider<>(list);
  21. testGrid.setDataProvider(dataProvider);
  22. testGrid.setDetailsGenerator(item -> new Label("details - " + item));
  23. list.forEach(item -> testGrid.setDetailsVisible(item, true));
  24. Button addButton = new Button("add");
  25. addButton.addClickListener(event -> {
  26. String newItem = "row" + (list.size() + 1);
  27. list.add(newItem);
  28. testGrid.setDetailsVisible(newItem, true);
  29. dataProvider.refreshAll();
  30. });
  31. VerticalLayout testLayout = new VerticalLayout(addButton, testGrid);
  32. addComponent(testLayout);
  33. }
  34. @Override
  35. protected Integer getTicketNumber() {
  36. return 12106;
  37. }
  38. @Override
  39. protected String getTestDescription() {
  40. return "Already open details rows shouldn't disappear when a new row is added";
  41. }
  42. }