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.

HeaderFooterClickLeftRightMiddle.java 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package com.vaadin.tests.components.table;
  2. import com.vaadin.data.HasValue;
  3. import com.vaadin.data.HasValue.ValueChangeEvent;
  4. import com.vaadin.server.VaadinRequest;
  5. import com.vaadin.tests.components.AbstractTestUIWithLog;
  6. import com.vaadin.ui.CheckBox;
  7. import com.vaadin.v7.data.Container;
  8. import com.vaadin.v7.data.Item;
  9. import com.vaadin.v7.data.util.IndexedContainer;
  10. import com.vaadin.v7.ui.Table;
  11. import com.vaadin.v7.ui.Table.FooterClickEvent;
  12. import com.vaadin.v7.ui.Table.FooterClickListener;
  13. import com.vaadin.v7.ui.Table.HeaderClickEvent;
  14. import com.vaadin.v7.ui.Table.HeaderClickListener;
  15. public class HeaderFooterClickLeftRightMiddle extends AbstractTestUIWithLog {
  16. @Override
  17. protected void setup(VaadinRequest request) {
  18. final Table table = new Table();
  19. table.setColumnReorderingAllowed(true);
  20. table.setContainerDataSource(createContainer());
  21. table.setWidth("400px");
  22. table.setHeight("400px");
  23. table.setImmediate(true);
  24. table.setFooterVisible(true);
  25. CheckBox immediateCheckbox = new CheckBox("Immediate");
  26. immediateCheckbox.setValue(table.isImmediate());
  27. immediateCheckbox.addValueChangeListener(
  28. event -> table.setImmediate(event.getValue()));
  29. CheckBox headerClickListenerCheckbox = new CheckBox(
  30. "Header click listener");
  31. headerClickListenerCheckbox.addValueChangeListener(
  32. new HasValue.ValueChangeListener<Boolean>() {
  33. private HeaderClickListener headerClickListener = event -> {
  34. String type = event.isDoubleClick() ? "Double click"
  35. : "Click";
  36. log(type + " on header "
  37. + event.getPropertyId().toString() + " using "
  38. + event.getButtonName());
  39. };
  40. @Override
  41. public void valueChange(ValueChangeEvent<Boolean> event) {
  42. if (table.getListeners(HeaderClickEvent.class)
  43. .isEmpty()) {
  44. table.addHeaderClickListener(headerClickListener);
  45. } else {
  46. table.removeHeaderClickListener(
  47. headerClickListener);
  48. }
  49. }
  50. });
  51. headerClickListenerCheckbox.setValue(true);
  52. CheckBox footerClickListenerCheckbox = new CheckBox(
  53. "Footer click listener");
  54. footerClickListenerCheckbox.addValueChangeListener(
  55. new HasValue.ValueChangeListener<Boolean>() {
  56. private FooterClickListener footerClickListener = event -> {
  57. String type = event.isDoubleClick() ? "Double click"
  58. : "Click";
  59. log(type + " on footer "
  60. + event.getPropertyId().toString() + " using "
  61. + event.getButtonName());
  62. };
  63. @Override
  64. public void valueChange(ValueChangeEvent<Boolean> event) {
  65. if (table.getListeners(FooterClickEvent.class)
  66. .isEmpty()) {
  67. table.addFooterClickListener(footerClickListener);
  68. } else {
  69. table.removeFooterClickListener(
  70. footerClickListener);
  71. }
  72. }
  73. });
  74. footerClickListenerCheckbox.setValue(true);
  75. CheckBox sortEnabledCheckbox = new CheckBox("Sortable");
  76. sortEnabledCheckbox.setValue(table.isSortEnabled());
  77. sortEnabledCheckbox.addValueChangeListener(
  78. event -> table.setSortEnabled(event.getValue()));
  79. CheckBox columnReorderingCheckbox = new CheckBox(
  80. "Column reordering allowed");
  81. columnReorderingCheckbox.setValue(table.isColumnReorderingAllowed());
  82. columnReorderingCheckbox.addValueChangeListener(
  83. event -> table.setColumnReorderingAllowed(event.getValue()));
  84. addComponent(immediateCheckbox);
  85. addComponent(headerClickListenerCheckbox);
  86. addComponent(footerClickListenerCheckbox);
  87. addComponent(sortEnabledCheckbox);
  88. addComponent(columnReorderingCheckbox);
  89. addComponent(table);
  90. }
  91. @Override
  92. protected String getTestDescription() {
  93. return "Tests the header click listener";
  94. }
  95. @Override
  96. protected Integer getTicketNumber() {
  97. return 4515;
  98. }
  99. private Container createContainer() {
  100. IndexedContainer container = new IndexedContainer();
  101. container.addContainerProperty("col1", String.class, "");
  102. container.addContainerProperty("col2", String.class, "");
  103. container.addContainerProperty("col3", String.class, "");
  104. for (int i = 0; i < 100; i++) {
  105. Item item = container.addItem("item " + i);
  106. item.getItemProperty("col1").setValue("first" + i);
  107. item.getItemProperty("col2").setValue("middle" + i);
  108. item.getItemProperty("col3").setValue("last" + i);
  109. }
  110. return container;
  111. }
  112. }