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.

GridRemoveColumnAndDetach.java 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.vaadin.tests.components.grid;
  2. import java.util.stream.Collectors;
  3. import com.vaadin.annotations.Widgetset;
  4. import com.vaadin.server.VaadinRequest;
  5. import com.vaadin.tests.components.AbstractTestUIWithLog;
  6. import com.vaadin.tests.data.bean.Person;
  7. import com.vaadin.tests.data.bean.Sex;
  8. import com.vaadin.ui.Button;
  9. import com.vaadin.ui.Grid;
  10. @Widgetset("com.vaadin.DefaultWidgetSet")
  11. public class GridRemoveColumnAndDetach extends AbstractTestUIWithLog {
  12. private Grid<Person> grid;
  13. @Override
  14. protected void setup(VaadinRequest vaadinRequest) {
  15. grid = new Grid<>();
  16. grid.addColumn(Person::getFirstName).setCaption("First").setWidth(200);
  17. grid.addColumn(Person::getLastName).setCaption("Last").setHidden(true)
  18. .setWidth(200);
  19. grid.addColumn(Person::getEmail).setCaption("Email").setWidth(200);
  20. grid.addColumn(Person::getAge).setCaption("foobar").setWidth(400);
  21. grid.setItems(new Person("1", "2", "3", 4, Sex.FEMALE, null));
  22. grid.setFrozenColumnCount(3);
  23. logFrozenColumns();
  24. addComponent(grid);
  25. Button detachButton = new Button("Detach grid",
  26. event -> removeComponent(grid));
  27. detachButton.setId("detach");
  28. addComponent(detachButton);
  29. for (int i = 0; i < 4; i++) {
  30. final int idx = i;
  31. Button button = new Button("Remove col " + i, event -> {
  32. grid.removeColumn(grid.getColumns().get(idx));
  33. logFrozenColumns();
  34. });
  35. button.setId("remove" + i);
  36. addComponent(button);
  37. }
  38. }
  39. private void logFrozenColumns() {
  40. String msg = "Server side frozen columns: ";
  41. msg += grid.getColumns().stream().limit(grid.getFrozenColumnCount())
  42. .map(column -> {
  43. String caption = column.getCaption();
  44. if (column.isHidden()) {
  45. caption += " (hidden)";
  46. }
  47. return caption;
  48. }).collect(Collectors.joining(", "));
  49. log(msg);
  50. }
  51. }