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.

TreeGridChangeHierarchyColumn.java 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.vaadin.tests.components.treegrid;
  2. import com.vaadin.data.TreeData;
  3. import com.vaadin.server.VaadinRequest;
  4. import com.vaadin.tests.components.AbstractTestUI;
  5. import com.vaadin.ui.Button;
  6. import com.vaadin.ui.Component;
  7. import com.vaadin.ui.CssLayout;
  8. import com.vaadin.ui.Grid;
  9. import com.vaadin.ui.Label;
  10. import com.vaadin.ui.TreeGrid;
  11. public class TreeGridChangeHierarchyColumn extends AbstractTestUI {
  12. @Override
  13. protected String getTestDescription() {
  14. return "TreeGrid in MultiSelect mode should take hiden columns into account when"
  15. + " rendering frozen columns after hierarchy-column reset.";
  16. }
  17. @Override
  18. protected Integer getTicketNumber() {
  19. return 12026;
  20. }
  21. @Override
  22. protected void setup(VaadinRequest request) {
  23. TreeGrid<String> treeGrid = new TreeGrid<>();
  24. treeGrid.setId("TreeGrid");
  25. for (int i = 0; i < 20; i++) {
  26. String columnId = String.valueOf(i);
  27. Grid.Column<String, Component> column = addColumn(treeGrid,
  28. columnId);
  29. column.setCaption(columnId);
  30. column.setId(columnId);
  31. }
  32. TreeData<String> data = treeGrid.getTreeData();
  33. data.addItem(null, "child");
  34. data.addItem("child", "grandChild");
  35. treeGrid.setHierarchyColumn(treeGrid.getColumns().get(0));
  36. Button hideHierCol = new Button("Hide Hierarchy Column");
  37. hideHierCol.addClickListener(e -> {
  38. treeGrid.getHierarchyColumn().setHidden(true);
  39. });
  40. hideHierCol.setId("hideHierColButton");
  41. Button setHierCol = new Button("Set new Hierarchy Column");
  42. setHierCol.addClickListener(e -> {
  43. treeGrid.getColumns().stream().filter(column -> !column.isHidden())
  44. .findFirst().ifPresent(col -> {
  45. treeGrid.setHierarchyColumn(col.getId());
  46. });
  47. });
  48. setHierCol.setId("setHierColButton");
  49. treeGrid.setSelectionMode(Grid.SelectionMode.MULTI);
  50. treeGrid.setFrozenColumnCount(1);
  51. addComponents(treeGrid, hideHierCol, setHierCol);
  52. }
  53. private Grid.Column<String, Component> addColumn(Grid<String> grid,
  54. String columnId) {
  55. return grid.addComponentColumn(val -> {
  56. Label label = new Label(columnId);
  57. label.setWidth(50, Unit.PIXELS);
  58. return new CssLayout(label);
  59. });
  60. }
  61. }