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.

TableToggleColumnVisibility.java 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.vaadin.tests.components.table;
  2. import com.vaadin.server.ClassResource;
  3. import com.vaadin.server.VaadinRequest;
  4. import com.vaadin.tests.components.AbstractReindeerTestUI;
  5. import com.vaadin.ui.Button;
  6. import com.vaadin.ui.VerticalLayout;
  7. import com.vaadin.v7.ui.Table;
  8. /**
  9. * Test that toggling column visibility does not change custom header, icon,
  10. * alignment
  11. */
  12. @SuppressWarnings("serial")
  13. public class TableToggleColumnVisibility extends AbstractReindeerTestUI {
  14. private final Object[][] columnSets = new Object[][] { { "Name" },
  15. { "Name", "Last Name" }, { "Last Name", "Name" } };
  16. private int currentSetNumber = 1;
  17. @Override
  18. protected void setup(VaadinRequest request) {
  19. VerticalLayout layout = new VerticalLayout();
  20. final Table table = new Table();
  21. table.addContainerProperty("Name", String.class, "");
  22. table.addContainerProperty("Last Name", String.class, null,
  23. "Hello World", new ClassResource("fi.gif"), Table.Align.RIGHT);
  24. table.setHeight("200px");
  25. table.addItem(new Object[] { "Muoso", "Virtanen" }, new Integer(1));
  26. table.addItem(new Object[] { "Nehemias", "Korhonen" }, new Integer(2));
  27. table.addItem(new Object[] { "Hannu", "Nieminen" }, new Integer(3));
  28. table.addItem(new Object[] { "Eelante", "Mäkinen" }, new Integer(4));
  29. table.setVisibleColumns(columnSets[1]);
  30. final Button visibToggler = new Button("visibility");
  31. visibToggler.setId("visib-toggler");
  32. visibToggler.addClickListener(event -> {
  33. currentSetNumber = (currentSetNumber == 0) ? 1 : 0;
  34. table.setVisibleColumns(columnSets[currentSetNumber]);
  35. });
  36. final Button orderToggler = new Button("change order");
  37. orderToggler.setId("order-toggler");
  38. orderToggler.addClickListener(event -> {
  39. currentSetNumber = (currentSetNumber == 1) ? 2 : 1;
  40. table.setVisibleColumns(columnSets[currentSetNumber]);
  41. });
  42. layout.addComponent(table);
  43. layout.addComponent(visibToggler);
  44. layout.addComponent(orderToggler);
  45. addComponent(layout);
  46. }
  47. @Override
  48. protected String getTestDescription() {
  49. return "Toggling visibility of column should not change custom header,"
  50. + " icon, alignment";
  51. }
  52. @Override
  53. protected Integer getTicketNumber() {
  54. return 6245;
  55. }
  56. }