Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

GridLayoutDetailsRowResize.java 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package com.vaadin.tests.components.grid;
  2. import com.vaadin.data.provider.ListDataProvider;
  3. import com.vaadin.server.VaadinRequest;
  4. import com.vaadin.tests.data.bean.Person;
  5. import com.vaadin.ui.Button;
  6. import com.vaadin.ui.Grid;
  7. import com.vaadin.ui.GridLayout;
  8. import com.vaadin.ui.Label;
  9. import com.vaadin.ui.themes.ValoTheme;
  10. import com.vaadin.v7.ui.themes.Reindeer;
  11. /**
  12. * Tests that details row resizes along with the contents properly.
  13. *
  14. * @author Vaadin Ltd
  15. */
  16. @SuppressWarnings("deprecation")
  17. public class GridLayoutDetailsRowResize extends SimpleGridUI {
  18. @Override
  19. protected void setup(VaadinRequest request) {
  20. final Grid<Person> grid = createGrid();
  21. grid.setSizeFull();
  22. addComponent(new Button("Toggle theme", event -> {
  23. if (ValoTheme.THEME_NAME.equals(getUI().getTheme())) {
  24. getUI().setTheme(Reindeer.THEME_NAME);
  25. } else {
  26. getUI().setTheme(ValoTheme.THEME_NAME);
  27. }
  28. }));
  29. addComponent(grid);
  30. grid.setDetailsGenerator(item -> {
  31. final GridLayout detailsLayout = new GridLayout();
  32. detailsLayout.setSizeFull();
  33. detailsLayout.setHeightUndefined();
  34. final Label lbl1 = new Label("test1");
  35. lbl1.setId("lbl1");
  36. lbl1.setWidth("200px");
  37. detailsLayout.addComponent(lbl1);
  38. final Label lbl2 = new Label("test2");
  39. lbl2.setId("lbl2");
  40. detailsLayout.addComponent(lbl2);
  41. final Label lbl3 = new Label("test3");
  42. lbl3.setId("lbl3");
  43. detailsLayout.addComponent(lbl3);
  44. final Label lbl4 = new Label("test4");
  45. lbl4.setId("lbl4");
  46. lbl4.setVisible(false);
  47. detailsLayout.addComponent(lbl4);
  48. final Button button = new Button("Toggle visibility",
  49. event -> lbl4.setVisible(!lbl4.isVisible()));
  50. button.setId("btn");
  51. detailsLayout.addComponent(button);
  52. return detailsLayout;
  53. });
  54. grid.addItemClickListener(click -> {
  55. final Person person = click.getItem();
  56. grid.setDetailsVisible(person, !grid.isDetailsVisible(person));
  57. });
  58. addComponent(new Button("Open details", event -> {
  59. for (Object itemId : ((ListDataProvider<?>) grid.getDataProvider())
  60. .getItems()) {
  61. if (itemId instanceof Person) {
  62. grid.setDetailsVisible((Person) itemId, true);
  63. }
  64. }
  65. }));
  66. }
  67. @Override
  68. protected String getTestDescription() {
  69. return "Detail row should be correctly resized when its contents change.";
  70. }
  71. @Override
  72. protected Integer getTicketNumber() {
  73. return 7341;
  74. }
  75. }