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.

TreeGridCache.java 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package com.vaadin.tests.components.treegrid;
  2. import com.vaadin.data.TreeData;
  3. import com.vaadin.data.provider.TreeDataProvider;
  4. import com.vaadin.server.VaadinRequest;
  5. import com.vaadin.shared.ui.grid.HeightMode;
  6. import com.vaadin.tests.components.AbstractTestUI;
  7. import com.vaadin.ui.Button;
  8. import com.vaadin.ui.Label;
  9. import com.vaadin.ui.TreeGrid;
  10. import com.vaadin.ui.VerticalLayout;
  11. public class TreeGridCache extends AbstractTestUI {
  12. @Override
  13. protected void setup(VaadinRequest request) {
  14. Button button1 = new Button("Add TreeGrid1",
  15. e -> addComponent(addTreeGrid1()));
  16. button1.setId("button1");
  17. addComponent(button1);
  18. Button button2 = new Button("Add TreeGrid2",
  19. e -> addComponent(addTreeGrid2()));
  20. button2.setId("button2");
  21. addComponent(button2);
  22. }
  23. private TreeGrid<Integer> addTreeGrid1() {
  24. TreeData<Integer> treeData = new TreeData<>();
  25. treeData.addItems(null, 10, 5);
  26. treeData.addItems(10, 9, 8, 7, 6);
  27. treeData.addItems(5, 4, 3, 2, 1);
  28. treeData.addItems(1, 0, -1, -2, -3, -4);
  29. TreeDataProvider<Integer> treeDataProvider = new TreeDataProvider<>(
  30. treeData);
  31. TreeGrid<Integer> tree = new TreeGrid<>();
  32. tree.setCaption("TreeGrid1");
  33. tree.setHeightMode(HeightMode.ROW);
  34. tree.setHeightByRows(11);
  35. tree.setDataProvider(treeDataProvider);
  36. tree.addComponentColumn(integer -> {
  37. VerticalLayout verticalLayout = new VerticalLayout();
  38. verticalLayout.addComponent(new Label(integer.toString()));
  39. return verticalLayout;
  40. });
  41. tree.addColumn(i -> String.valueOf(i));
  42. treeDataProvider.refreshAll();
  43. return tree;
  44. }
  45. private TreeGrid<TestBean> addTreeGrid2() {
  46. TestBean parent = null;
  47. TreeGrid<TestBean> tree = new TreeGrid<>(TestBean.class);
  48. tree.setCaption("TreeGrid2");
  49. tree.setColumns("key", "value");
  50. tree.setHierarchyColumn("key");
  51. TreeData<TestBean> treeData = new TreeData<>();
  52. for (int i = 0; i < 2; i++) {
  53. TestBean val = new TestBean("root" + i, " root value " + i);
  54. treeData.addItem(parent, val);
  55. for (int j = 0; j < 10; j++) {
  56. TestBean v = new TestBean("leaf" + j, "leaf value" + j);
  57. treeData.addItem(val, v);
  58. }
  59. }
  60. TreeDataProvider<TestBean> dataProvider = new TreeDataProvider<>(
  61. treeData);
  62. tree.setDataProvider(dataProvider);
  63. tree.setHeight("500px");
  64. return tree;
  65. }
  66. @Override
  67. protected String getTestDescription() {
  68. return "Cache should cover more than 4 x the initial row amount after rows have been expanded. "
  69. + "Clicking on a row beyond that should not cause an exception.";
  70. }
  71. @Override
  72. protected Integer getTicketNumber() {
  73. return 11749;
  74. }
  75. public class TestBean {
  76. private String key;
  77. private String value;
  78. public TestBean(String key, String value) {
  79. this.key = key;
  80. this.value = value;
  81. }
  82. public String getKey() {
  83. return key;
  84. }
  85. public void setKey(String key) {
  86. this.key = key;
  87. }
  88. public String getValue() {
  89. return value;
  90. }
  91. public void setValue(String value) {
  92. this.value = value;
  93. }
  94. }
  95. }