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.

ComponentElementGetValue.java 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package com.vaadin.tests.elements;
  2. import java.time.LocalDate;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import com.vaadin.server.VaadinRequest;
  6. import com.vaadin.tests.components.AbstractTestUI;
  7. import com.vaadin.ui.AbstractTextField;
  8. import com.vaadin.ui.CheckBox;
  9. import com.vaadin.ui.CheckBoxGroup;
  10. import com.vaadin.ui.ComboBox;
  11. import com.vaadin.ui.Component;
  12. import com.vaadin.ui.DateField;
  13. import com.vaadin.ui.Label;
  14. import com.vaadin.ui.ListSelect;
  15. import com.vaadin.ui.MultiSelect;
  16. import com.vaadin.ui.NativeSelect;
  17. import com.vaadin.ui.PasswordField;
  18. import com.vaadin.ui.RadioButtonGroup;
  19. import com.vaadin.ui.Slider;
  20. import com.vaadin.ui.TextArea;
  21. import com.vaadin.ui.TextField;
  22. import com.vaadin.ui.TwinColSelect;
  23. /**
  24. * UI test for getValue() method of components: TextField, TextArea,
  25. * PasswordField, ComboBox, ListSelect, NativeSelect, OptionGroup, CheckBox,
  26. * DateField, TwinColSelect
  27. *
  28. * @author Vaadin Ltd
  29. */
  30. public class ComponentElementGetValue extends AbstractTestUI {
  31. public static final String TEST_STRING_VALUE = "item 2";
  32. public static final int TEST_SLIDER_VALUE = 42;
  33. public static final float TEST_FLOAT_VALUE = 0.42f;
  34. public static final LocalDate TEST_DATE_VALUE = LocalDate.now();
  35. DateField df;
  36. final Label valueChangeLabel = new Label("Initial value");
  37. // These constants are used to check that change value event was
  38. // called
  39. public static final String[] FIELD_VALUES = { "textFieldValueChange",
  40. "textAreaValueChange", "passwordValueChange" };
  41. public static final String CHECKBOX_VALUE_CHANGE = "checkboxValueChange";
  42. public static final String DATEFIELD_VALUE_CHANGE = "dateFieldValueChange";
  43. public static final String MULTI_SELECT_VALUE_CHANGE = "multiSelectValueChange";
  44. private void addSingleSelectComponents() {
  45. List<String> options = new ArrayList<String>();
  46. options.add("item 1");
  47. options.add(TEST_STRING_VALUE);
  48. options.add("item 3");
  49. ComboBox<String> cb = new ComboBox<>("", options);
  50. cb.setValue(TEST_STRING_VALUE);
  51. addComponent(cb);
  52. NativeSelect<String> nativeSelect = new NativeSelect<>("", options);
  53. nativeSelect.setValue(TEST_STRING_VALUE);
  54. addComponent(nativeSelect);
  55. RadioButtonGroup<String> rbGroup = new RadioButtonGroup<>("", options);
  56. rbGroup.setValue(TEST_STRING_VALUE);
  57. addComponent(rbGroup);
  58. }
  59. private List<String> createData() {
  60. List<String> options = new ArrayList<String>();
  61. options.add("item 1");
  62. options.add(TEST_STRING_VALUE);
  63. options.add("item 3");
  64. options.add("item 4");
  65. return options;
  66. }
  67. private void addMultiSelectComponents() {
  68. List<MultiSelect<String>> components = new ArrayList<>();
  69. components.add(new ListSelect<>("", createData()));
  70. components.add(new CheckBoxGroup<>("", createData()));
  71. components.add(new TwinColSelect<>("", createData()));
  72. components.forEach(c -> {
  73. c.select(TEST_STRING_VALUE);
  74. c.addValueChangeListener(event -> valueChangeLabel
  75. .setValue(MULTI_SELECT_VALUE_CHANGE));
  76. addComponent((Component) c);
  77. });
  78. }
  79. @Override
  80. protected void setup(VaadinRequest request) {
  81. AbstractTextField[] fieldComponents = { new TextField(), new TextArea(),
  82. new PasswordField() };
  83. addSingleSelectComponents();
  84. addMultiSelectComponents();
  85. for (int i = 0; i < fieldComponents.length; i++) {
  86. AbstractTextField field = fieldComponents[i];
  87. field.setValue(TEST_STRING_VALUE);
  88. String value = FIELD_VALUES[i];
  89. field.addValueChangeListener(
  90. event -> valueChangeLabel.setValue(value));
  91. addComponent(field);
  92. }
  93. addComponent(createCheckBox());
  94. addComponent(createSlider());
  95. addComponent(createDateField());
  96. valueChangeLabel.setId("valueChangeLabel");
  97. addComponent(valueChangeLabel);
  98. }
  99. private DateField createDateField() {
  100. DateField df = new DateField();
  101. df.setDateFormat("yyyy-MM-dd");
  102. df.setValue(TEST_DATE_VALUE);
  103. df.addValueChangeListener(
  104. event -> valueChangeLabel.setValue(DATEFIELD_VALUE_CHANGE));
  105. return df;
  106. }
  107. private Slider createSlider() {
  108. Slider sl = new Slider(0, 100);
  109. sl.setWidth("100px");
  110. sl.setValue(new Double(TEST_SLIDER_VALUE));
  111. return sl;
  112. }
  113. private CheckBox createCheckBox() {
  114. CheckBox cb = new CheckBox();
  115. cb.setValue(true);
  116. cb.addValueChangeListener(
  117. event -> valueChangeLabel.setValue(CHECKBOX_VALUE_CHANGE));
  118. return cb;
  119. }
  120. @Override
  121. protected String getTestDescription() {
  122. return "Field elements getValue() should return test value";
  123. }
  124. @Override
  125. protected Integer getTicketNumber() {
  126. return 13455;
  127. }
  128. }