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.

GridInDetailsRow.java 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.vaadin.tests.components.grid;
  2. import com.vaadin.annotations.Widgetset;
  3. import com.vaadin.server.VaadinRequest;
  4. import com.vaadin.shared.ui.grid.HeightMode;
  5. import com.vaadin.tests.data.bean.Person;
  6. import com.vaadin.ui.Component;
  7. import com.vaadin.ui.Grid;
  8. import com.vaadin.ui.Grid.ItemClick;
  9. import com.vaadin.ui.VerticalLayout;
  10. import com.vaadin.ui.components.grid.DetailsGenerator;
  11. import com.vaadin.ui.components.grid.HeaderRow;
  12. import com.vaadin.ui.components.grid.ItemClickListener;
  13. @Widgetset("com.vaadin.DefaultWidgetSet")
  14. public class GridInDetailsRow extends SimpleGridUI {
  15. int index = 0;
  16. @Override
  17. protected void setup(VaadinRequest request) {
  18. getLayout().addComponent(createGrid());
  19. }
  20. @Override
  21. protected Grid<Person> createGrid() {
  22. Grid<Person> grid = super.createGrid();
  23. grid.setId("grid" + index);
  24. ++index;
  25. grid.setSizeFull();
  26. grid.setHeightUndefined();
  27. grid.setHeightMode(HeightMode.UNDEFINED);
  28. HeaderRow hr0 = grid.addHeaderRowAt(0);
  29. hr0.getCell(grid.getColumns().get(0)).setText("Name");
  30. hr0.getCell(grid.getColumns().get(1)).setText("Age");
  31. HeaderRow hr1 = grid.getDefaultHeaderRow();
  32. hr1.getCell(grid.getColumns().get(0)).setText("Foo");
  33. hr1.getCell(grid.getColumns().get(1)).setText("Bar");
  34. grid.getColumns().get(1).setHidable(true);
  35. grid.setDetailsGenerator(new DetailsGenerator<Person>() {
  36. @Override
  37. public Component apply(Person t) {
  38. VerticalLayout layout = new VerticalLayout();
  39. layout.setMargin(true);
  40. Grid<Person> gd = createGrid();
  41. layout.addComponent(gd);
  42. return layout;
  43. }
  44. });
  45. grid.addItemClickListener(new ItemClickListener<Person>() {
  46. @Override
  47. public void itemClick(ItemClick<Person> event) {
  48. if (event.getMouseEventDetails().isDoubleClick()) {
  49. Person item = event.getItem();
  50. grid.setDetailsVisible(item, !grid.isDetailsVisible(item));
  51. }
  52. }
  53. });
  54. return grid;
  55. }
  56. @Override
  57. protected String getTestDescription() {
  58. return "A nested Grid with multirow header should display all headers and "
  59. + "the body rows shouldn't get stuck to default row height.";
  60. }
  61. @Override
  62. protected Integer getTicketNumber() {
  63. return 7674;
  64. }
  65. }