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.

TreeGridDetailsExpandLast.java 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package com.vaadin.tests.components.treegrid;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.vaadin.data.TreeData;
  5. import com.vaadin.data.provider.TreeDataProvider;
  6. import com.vaadin.server.VaadinRequest;
  7. import com.vaadin.tests.components.AbstractTestUI;
  8. import com.vaadin.ui.Label;
  9. import com.vaadin.ui.TreeGrid;
  10. public class TreeGridDetailsExpandLast extends AbstractTestUI {
  11. @Override
  12. protected void setup(VaadinRequest request) {
  13. TreeData<String> data = new TreeData<>();
  14. List<String> roots = new ArrayList<String>();
  15. for (int i = 0; i < 100; i++) {
  16. String root = "Root " + i;
  17. roots.add(root);
  18. data.addItem(null, root);
  19. for (int j = 0; j < 2; j++) {
  20. String leaf = "Leaf " + i + "/" + j;
  21. data.addItem(root, leaf);
  22. }
  23. }
  24. TreeDataProvider<String> treeDataProvider = new TreeDataProvider<>(
  25. data);
  26. TreeGrid<String> treeGrid = new TreeGrid<>();
  27. treeGrid.setDataProvider(treeDataProvider);
  28. treeGrid.addColumn(String::toString).setCaption("String")
  29. .setId("string");
  30. treeGrid.addColumn((i) -> "--").setCaption("Nothing");
  31. treeGrid.setHierarchyColumn("string");
  32. treeGrid.setDetailsGenerator(
  33. row -> new Label("details for " + row.toString()));
  34. treeGrid.addItemClickListener(event -> {
  35. treeGrid.setDetailsVisible(event.getItem(),
  36. !treeGrid.isDetailsVisible(event.getItem()));
  37. });
  38. treeGrid.expand(roots);
  39. for (String id : roots) {
  40. treeGrid.setDetailsVisible(id, true);
  41. }
  42. treeGrid.collapse("Root 99");
  43. addComponent(treeGrid);
  44. }
  45. @Override
  46. protected String getTestDescription() {
  47. return "Details row heights should be taken into account when expanding rows. "
  48. + "Expanding the last row shouldn't cause exceptions or weird row positions.";
  49. }
  50. @Override
  51. protected Integer getTicketNumber() {
  52. return 11348;
  53. }
  54. }