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.

GridColumnHiding.java 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.vaadin.tests.components.grid;
  2. import java.util.Arrays;
  3. import com.vaadin.server.VaadinRequest;
  4. import com.vaadin.tests.components.AbstractReindeerTestUI;
  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.renderers.NumberRenderer;
  10. import com.vaadin.v7.ui.Label;
  11. public class GridColumnHiding extends AbstractReindeerTestUI {
  12. @Override
  13. protected void setup(VaadinRequest request) {
  14. Grid<Person> grid = new Grid<>();
  15. Column<Person, String> nameColumn = grid.addColumn(Person::getFirstName)
  16. .setHidable(true).setCaption("Name");
  17. Column<Person, Integer> ageColumn = grid
  18. .addColumn(Person::getAge, new NumberRenderer())
  19. .setHidable(true)
  20. .setHidingToggleCaption("custom age column caption")
  21. .setCaption("Age");
  22. Column<Person, String> emailColumn = grid.addColumn(Person::getEmail)
  23. .setCaption("Email");
  24. Button toggleNameColumn = new Button("server side toggle name column");
  25. Button toggleAgeColumn = new Button("server side toggle age column");
  26. Button toggleEmailColumn = new Button(
  27. "server side toggle email column");
  28. toggleNameColumn.addClickListener(
  29. event -> nameColumn.setHidden(!nameColumn.isHidden()));
  30. toggleAgeColumn.addClickListener(
  31. event -> ageColumn.setHidden(!ageColumn.isHidden()));
  32. toggleEmailColumn.addClickListener(
  33. event -> emailColumn.setHidden(!emailColumn.isHidden()));
  34. Label visibilityChangeLabel = new Label("visibility change label");
  35. grid.addColumnVisibilityChangeListener(event -> visibilityChangeLabel
  36. .setValue(event.getColumn().isHidden() + ""));
  37. Button toggleHidden = new Button("Toggle all column hidden state",
  38. event -> grid.getColumns().forEach(
  39. column -> column.setHidden(!column.isHidden())));
  40. grid.setItems(Arrays.asList(Person.createTestPerson1(),
  41. Person.createTestPerson2()));
  42. addComponents(grid, toggleNameColumn, toggleAgeColumn,
  43. toggleEmailColumn, visibilityChangeLabel, toggleHidden);
  44. }
  45. }