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.

HeaderClick.java 3.6KB

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.tests.components.TestBase;
  8. import com.vaadin.ui.CheckBox;
  9. import com.vaadin.ui.Table;
  10. import com.vaadin.ui.Table.HeaderClickEvent;
  11. import com.vaadin.ui.TextField;
  12. @SuppressWarnings("serial")
  13. public class HeaderClick extends TestBase {
  14. @Override
  15. protected void setup() {
  16. final Table table = new Table();
  17. table.setColumnReorderingAllowed(true);
  18. table.setContainerDataSource(createContainer());
  19. table.setWidth("400px");
  20. table.setHeight("400px");
  21. table.setImmediate(true);
  22. final TextField columnField = new TextField(
  23. "ProperyId of clicked column");
  24. // Add a header click listener
  25. table.addListener(new Table.HeaderClickListener() {
  26. @Override
  27. public void headerClick(HeaderClickEvent event) {
  28. columnField.setValue(String.valueOf(event.getPropertyId()));
  29. }
  30. });
  31. CheckBox immediateCheckbox = new CheckBox("Immediate");
  32. immediateCheckbox.setImmediate(true);
  33. immediateCheckbox.setValue(table.isImmediate());
  34. immediateCheckbox.addListener(new Property.ValueChangeListener() {
  35. @Override
  36. public void valueChange(ValueChangeEvent event) {
  37. table.setImmediate((Boolean) event.getProperty().getValue());
  38. }
  39. });
  40. CheckBox sortEnabledCheckbox = new CheckBox("Sortable");
  41. sortEnabledCheckbox.setImmediate(true);
  42. sortEnabledCheckbox.setValue(table.isSortEnabled());
  43. sortEnabledCheckbox.addListener(new Property.ValueChangeListener() {
  44. @Override
  45. public void valueChange(ValueChangeEvent event) {
  46. table.setSortDisabled(!(Boolean) event.getProperty().getValue());
  47. }
  48. });
  49. CheckBox columnReorderingCheckbox = new CheckBox(
  50. "Column reordering allowed");
  51. columnReorderingCheckbox.setImmediate(true);
  52. columnReorderingCheckbox.setValue(table.isColumnReorderingAllowed());
  53. columnReorderingCheckbox
  54. .addListener(new Property.ValueChangeListener() {
  55. @Override
  56. public void valueChange(ValueChangeEvent event) {
  57. table.setColumnReorderingAllowed((Boolean) event
  58. .getProperty().getValue());
  59. }
  60. });
  61. addComponent(immediateCheckbox);
  62. addComponent(sortEnabledCheckbox);
  63. addComponent(columnReorderingCheckbox);
  64. addComponent(table);
  65. addComponent(columnField);
  66. }
  67. @Override
  68. protected String getDescription() {
  69. return "Tests the header click listener";
  70. }
  71. @Override
  72. protected Integer getTicketNumber() {
  73. return 4515;
  74. }
  75. private Container createContainer() {
  76. IndexedContainer container = new IndexedContainer();
  77. container.addContainerProperty("col1", String.class, "");
  78. container.addContainerProperty("col2", String.class, "");
  79. container.addContainerProperty("col3", String.class, "");
  80. for (int i = 0; i < 100; i++) {
  81. Item item = container.addItem("item " + i);
  82. item.getItemProperty("col1").setValue("first" + i);
  83. item.getItemProperty("col2").setValue("middle" + i);
  84. item.getItemProperty("col3").setValue("last" + i);
  85. }
  86. return container;
  87. }
  88. }