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 6.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  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.ValueChangeEvent;
  5. import com.vaadin.data.Property.ValueChangeListener;
  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.Table.FooterClickListener;
  13. import com.vaadin.ui.Table.HeaderClickEvent;
  14. import com.vaadin.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.setImmediate(true);
  27. immediateCheckbox.setValue(table.isImmediate());
  28. immediateCheckbox.addValueChangeListener(new ValueChangeListener() {
  29. @Override
  30. public void valueChange(ValueChangeEvent event) {
  31. table.setImmediate((Boolean) event.getProperty().getValue());
  32. }
  33. });
  34. CheckBox headerClickListenerCheckbox = new CheckBox(
  35. "Header click listener");
  36. headerClickListenerCheckbox.setImmediate(true);
  37. headerClickListenerCheckbox
  38. .addValueChangeListener(new ValueChangeListener() {
  39. private HeaderClickListener headerClickListener = new HeaderClickListener() {
  40. @Override
  41. public void headerClick(HeaderClickEvent event) {
  42. String type = event.isDoubleClick() ? "Double click"
  43. : "Click";
  44. log(type + " on header "
  45. + event.getPropertyId().toString()
  46. + " using " + event.getButtonName());
  47. }
  48. };
  49. @Override
  50. public void valueChange(ValueChangeEvent event) {
  51. if (table.getListeners(HeaderClickEvent.class)
  52. .isEmpty()) {
  53. table.addHeaderClickListener(headerClickListener);
  54. } else {
  55. table.removeHeaderClickListener(headerClickListener);
  56. }
  57. }
  58. });
  59. headerClickListenerCheckbox.setValue(true);
  60. CheckBox footerClickListenerCheckbox = new CheckBox(
  61. "Footer click listener");
  62. footerClickListenerCheckbox.setImmediate(true);
  63. footerClickListenerCheckbox
  64. .addValueChangeListener(new ValueChangeListener() {
  65. private FooterClickListener footerClickListener = new FooterClickListener() {
  66. @Override
  67. public void footerClick(FooterClickEvent event) {
  68. String type = event.isDoubleClick() ? "Double click"
  69. : "Click";
  70. log(type + " on footer "
  71. + event.getPropertyId().toString()
  72. + " using " + event.getButtonName());
  73. }
  74. };
  75. @Override
  76. public void valueChange(ValueChangeEvent event) {
  77. if (table.getListeners(FooterClickEvent.class)
  78. .isEmpty()) {
  79. table.addFooterClickListener(footerClickListener);
  80. } else {
  81. table.removeFooterClickListener(footerClickListener);
  82. }
  83. }
  84. });
  85. footerClickListenerCheckbox.setValue(true);
  86. CheckBox sortEnabledCheckbox = new CheckBox("Sortable");
  87. sortEnabledCheckbox.setImmediate(true);
  88. sortEnabledCheckbox.setValue(table.isSortEnabled());
  89. sortEnabledCheckbox.addValueChangeListener(new ValueChangeListener() {
  90. @Override
  91. public void valueChange(ValueChangeEvent event) {
  92. table.setSortEnabled((Boolean) event.getProperty().getValue());
  93. }
  94. });
  95. CheckBox columnReorderingCheckbox = new CheckBox(
  96. "Column reordering allowed");
  97. columnReorderingCheckbox.setImmediate(true);
  98. columnReorderingCheckbox.setValue(table.isColumnReorderingAllowed());
  99. columnReorderingCheckbox
  100. .addValueChangeListener(new ValueChangeListener() {
  101. @Override
  102. public void valueChange(ValueChangeEvent event) {
  103. table.setColumnReorderingAllowed((Boolean) event
  104. .getProperty().getValue());
  105. }
  106. });
  107. addComponent(immediateCheckbox);
  108. addComponent(headerClickListenerCheckbox);
  109. addComponent(footerClickListenerCheckbox);
  110. addComponent(sortEnabledCheckbox);
  111. addComponent(columnReorderingCheckbox);
  112. addComponent(table);
  113. }
  114. @Override
  115. public String getDescription() {
  116. return "Tests the header click listener";
  117. }
  118. @Override
  119. protected Integer getTicketNumber() {
  120. return 4515;
  121. }
  122. private Container createContainer() {
  123. IndexedContainer container = new IndexedContainer();
  124. container.addContainerProperty("col1", String.class, "");
  125. container.addContainerProperty("col2", String.class, "");
  126. container.addContainerProperty("col3", String.class, "");
  127. for (int i = 0; i < 100; i++) {
  128. Item item = container.addItem("item " + i);
  129. item.getItemProperty("col1").setValue("first" + i);
  130. item.getItemProperty("col2").setValue("middle" + i);
  131. item.getItemProperty("col3").setValue("last" + i);
  132. }
  133. return container;
  134. }
  135. }