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.

GridRecalculateColumnWidthNewItem.java 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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.CheckBox;
  9. import com.vaadin.ui.Grid;
  10. public class GridRecalculateColumnWidthNewItem extends AbstractTestUI {
  11. @Override
  12. protected void setup(VaadinRequest request) {
  13. List<String> testItems = new ArrayList<>();
  14. testItems.add("short1");
  15. testItems.add("short2");
  16. Grid<String> grid = new Grid<>();
  17. grid.addColumn(String::toString).setCaption("Name");
  18. grid.addColumn(item -> "col2").setCaption("Col 2");
  19. grid.addColumn(item -> "col3").setCaption("Col 3");
  20. grid.setDataProvider(new ListDataProvider<>(testItems));
  21. final CheckBox recalculateCheckBox = new CheckBox(
  22. "Recalculate column widths", true);
  23. Button addButton = new Button("add row", e -> {
  24. testItems.add(
  25. "Wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide");
  26. grid.getDataProvider().refreshAll();
  27. if (recalculateCheckBox.getValue()) {
  28. grid.recalculateColumnWidths();
  29. }
  30. });
  31. addButton.setId("add");
  32. Button removeButton = new Button("remove row", e -> {
  33. if (testItems.size() > 0) {
  34. testItems.remove(testItems.size() - 1);
  35. }
  36. grid.getDataProvider().refreshAll();
  37. if (recalculateCheckBox.getValue()) {
  38. grid.recalculateColumnWidths();
  39. }
  40. });
  41. removeButton.setId("remove");
  42. addComponents(grid, addButton, removeButton, recalculateCheckBox);
  43. }
  44. @Override
  45. protected String getTestDescription() {
  46. return "Adding or removing a row with wider contents should update "
  47. + "column widths if requested but not otherwise.";
  48. }
  49. @Override
  50. protected Integer getTicketNumber() {
  51. return 9996;
  52. }
  53. }