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.

FooterClick.java 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package com.vaadin.tests.components.table;
  2. import com.vaadin.data.Container;
  3. import com.vaadin.data.Item;
  4. import com.vaadin.data.Property;
  5. import com.vaadin.data.Property.ValueChangeEvent;
  6. import com.vaadin.data.util.IndexedContainer;
  7. import com.vaadin.server.VaadinRequest;
  8. import com.vaadin.tests.components.AbstractTestUIWithLog;
  9. import com.vaadin.ui.CheckBox;
  10. import com.vaadin.ui.Table;
  11. import com.vaadin.ui.Table.FooterClickEvent;
  12. import com.vaadin.ui.TextField;
  13. public class FooterClick extends AbstractTestUIWithLog {
  14. private final String COLUMN1_PROPERTY_ID = "col1";
  15. private final String COLUMN2_PROPERTY_ID = "col2";
  16. private final String COLUMN3_PROPERTY_ID = "col3";
  17. @Override
  18. protected void setup(VaadinRequest request) {
  19. final Table table = new Table();
  20. table.setId("table");
  21. table.setContainerDataSource(createContainer());
  22. table.setWidth("400px");
  23. table.setHeight("400px");
  24. table.setImmediate(true);
  25. table.setFooterVisible(true);
  26. table.setColumnReorderingAllowed(true);
  27. table.setColumnFooter(COLUMN1_PROPERTY_ID, "fuu");
  28. table.setColumnFooter(COLUMN3_PROPERTY_ID, "fuubar");
  29. final TextField columnField = new TextField(
  30. "ProperyId of clicked column");
  31. columnField.setId("ClickedColumn");
  32. // Add a footer click listener
  33. table.addFooterClickListener(new Table.FooterClickListener() {
  34. @Override
  35. public void footerClick(FooterClickEvent event) {
  36. columnField.setValue(String.valueOf(event.getPropertyId()));
  37. log("Clicked on footer: " + event.getPropertyId());
  38. }
  39. });
  40. CheckBox immediateCheckbox = new CheckBox("Immediate");
  41. immediateCheckbox.setImmediate(true);
  42. immediateCheckbox.setValue(table.isImmediate());
  43. immediateCheckbox
  44. .addValueChangeListener(new Property.ValueChangeListener() {
  45. @Override
  46. public void valueChange(ValueChangeEvent event) {
  47. table.setImmediate((Boolean) event.getProperty()
  48. .getValue());
  49. }
  50. });
  51. CheckBox columnReorderingCheckbox = new CheckBox(
  52. "Column reordering allowed");
  53. columnReorderingCheckbox.setImmediate(true);
  54. columnReorderingCheckbox.setValue(table.isColumnReorderingAllowed());
  55. columnReorderingCheckbox
  56. .addValueChangeListener(new Property.ValueChangeListener() {
  57. @Override
  58. public void valueChange(ValueChangeEvent event) {
  59. table.setColumnReorderingAllowed((Boolean) event
  60. .getProperty().getValue());
  61. }
  62. });
  63. addComponent(immediateCheckbox);
  64. addComponent(columnReorderingCheckbox);
  65. addComponent(table);
  66. addComponent(columnField);
  67. }
  68. @Override
  69. public String getDescription() {
  70. return "Tests the footer click handler";
  71. }
  72. @Override
  73. protected Integer getTicketNumber() {
  74. return 4516;
  75. }
  76. private Container createContainer() {
  77. IndexedContainer container = new IndexedContainer();
  78. container.addContainerProperty(COLUMN1_PROPERTY_ID, String.class, "");
  79. container.addContainerProperty(COLUMN2_PROPERTY_ID, String.class, "");
  80. container.addContainerProperty(COLUMN3_PROPERTY_ID, String.class, "");
  81. for (int i = 0; i < 100; i++) {
  82. Item item = container.addItem("item " + i);
  83. item.getItemProperty(COLUMN1_PROPERTY_ID).setValue("first" + i);
  84. item.getItemProperty(COLUMN2_PROPERTY_ID).setValue("middle" + i);
  85. item.getItemProperty(COLUMN3_PROPERTY_ID).setValue("last" + i);
  86. }
  87. return container;
  88. }
  89. }