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.

GridInitiallyHiddenColumns.java 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package com.vaadin.tests.components.grid;
  2. import java.util.Date;
  3. import java.util.Random;
  4. import java.util.stream.IntStream;
  5. import java.util.stream.Stream;
  6. import com.vaadin.server.VaadinRequest;
  7. import com.vaadin.tests.components.AbstractTestUIWithLog;
  8. import com.vaadin.tests.data.bean.Person;
  9. import com.vaadin.tests.util.PortableRandom;
  10. import com.vaadin.tests.util.TestDataGenerator;
  11. import com.vaadin.ui.Grid;
  12. import com.vaadin.ui.Grid.Column;
  13. import com.vaadin.ui.renderers.NumberRenderer;
  14. public class GridInitiallyHiddenColumns extends AbstractTestUIWithLog {
  15. @Override
  16. protected void setup(VaadinRequest request) {
  17. Grid<Person> grid = new Grid<>();
  18. grid.addColumn(Person::getFirstName).setHidden(true).setHidable(true)
  19. .setCaption("First Name");
  20. Column<Person, String> col2 = grid.addColumn(Person::getLastName)
  21. .setHidable(true).setCaption("Last Name");
  22. if (request.getParameter("allHidden") != null) {
  23. col2.setHidden(true);
  24. }
  25. grid.addColumn(Person::getAge, new NumberRenderer()).setHidden(true)
  26. .setHidable(true).setCaption("Age");
  27. grid.setItems(createPersons());
  28. addComponent(grid);
  29. }
  30. private Stream<Person> createPersons() {
  31. Random random = new Random(100);
  32. return IntStream.range(0, 100).mapToObj(index -> createPerson(random));
  33. }
  34. private Person createPerson(Random random) {
  35. Person person = new Person();
  36. person.setFirstName(TestDataGenerator.getFirstName(random));
  37. person.setLastName(TestDataGenerator.getLastName(random));
  38. person.setBirthDate(TestDataGenerator.getBirthDate(random));
  39. person.setAge((int) ((new Date(2014 - 1900, 1, 1).getTime()
  40. - person.getBirthDate().getTime()) / 1000 / 3600 / 24 / 365));
  41. return person;
  42. }
  43. public static String createRandomString(PortableRandom random, int len) {
  44. StringBuilder b = new StringBuilder();
  45. for (int i = 0; i < len; i++) {
  46. b.append((char) (random.nextInt('z' - 'a') + 'a'));
  47. }
  48. return b.toString();
  49. }
  50. }