Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

GridColspans.java 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package com.vaadin.tests.components.grid;
  2. import java.util.stream.Collectors;
  3. import com.vaadin.server.VaadinRequest;
  4. import com.vaadin.tests.components.AbstractTestUI;
  5. import com.vaadin.tests.data.bean.Person;
  6. import com.vaadin.ui.Button;
  7. import com.vaadin.ui.Grid;
  8. import com.vaadin.ui.Grid.Column;
  9. import com.vaadin.ui.Grid.SelectionMode;
  10. import com.vaadin.ui.components.grid.FooterRow;
  11. import com.vaadin.ui.components.grid.HeaderRow;
  12. import com.vaadin.ui.renderers.NumberRenderer;
  13. public class GridColspans extends AbstractTestUI {
  14. @Override
  15. protected void setup(VaadinRequest request) {
  16. Person person = new Person();
  17. person.setFirstName("Rudolph");
  18. person.setLastName("Reindeer");
  19. person.setEmail("test@vaadin.com");
  20. person.setAge(34);
  21. person.setSalary(3210);
  22. Grid<Person> grid = new Grid<>();
  23. grid.setWidth("600px");
  24. Column<Person, String> firstNameColumn = grid
  25. .addColumn(Person::getFirstName);
  26. firstNameColumn.setId("firstName").setCaption("First name");
  27. Column<Person, String> lastNameColumn = grid
  28. .addColumn(Person::getLastName);
  29. lastNameColumn.setCaption("Last name");
  30. Column<Person, String> emailColumn = grid.addColumn(Person::getEmail);
  31. Column<Person, Number> ageColumn = grid.addColumn(Person::getAge,
  32. new NumberRenderer());
  33. ageColumn.setCaption("Age");
  34. ageColumn.setId("ageColumn");
  35. Column<Person, Number> salaryColumn = grid.addColumn(Person::getSalary,
  36. new NumberRenderer());
  37. grid.setItems(person);
  38. grid.setSelectionMode(SelectionMode.MULTI);
  39. addComponent(grid);
  40. HeaderRow row = grid.prependHeaderRow();
  41. row.join(row.getCell(firstNameColumn), row.getCell(lastNameColumn))
  42. .setText("Full Name");
  43. row.join(row.getCell(emailColumn), row.getCell(ageColumn),
  44. row.getCell(salaryColumn)).setText("Misc");
  45. grid.prependHeaderRow().join(grid.getColumns().stream()
  46. .map(row::getCell).collect(Collectors.toSet()))
  47. .setText("All the stuff");
  48. FooterRow footerRow = grid.appendFooterRow();
  49. footerRow.join(footerRow.getCell(firstNameColumn),
  50. footerRow.getCell(lastNameColumn)).setText("Full Name");
  51. footerRow.join(footerRow.getCell(emailColumn),
  52. footerRow.getCell(ageColumn), footerRow.getCell(salaryColumn))
  53. .setText("Misc");
  54. grid.appendFooterRow().join(grid.getColumns().stream()
  55. .map(footerRow::getCell).collect(Collectors.toSet()))
  56. .setText("All the stuff");
  57. addComponent(new Button("Show/Hide firstName", event -> {
  58. Column<Person, ?> column = grid.getColumn("firstName");
  59. if (column != null) {
  60. grid.removeColumn(column);
  61. } else {
  62. grid.addColumn(Person::getFirstName).setId("firstName")
  63. .setCaption("First name");
  64. }
  65. }));
  66. addComponent(new Button("Change column order",
  67. event -> grid.setColumnOrder(grid.getColumn("ageColumn"),
  68. grid.getColumn("firstName"))));
  69. }
  70. @Override
  71. protected String getTestDescription() {
  72. return "Grid header and footer colspans";
  73. }
  74. @Override
  75. protected Integer getTicketNumber() {
  76. return 13334;
  77. }
  78. }