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.

ConverterThatEnforcesAFormat.java 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.vaadin.tests.converter;
  2. import java.util.Locale;
  3. import com.vaadin.data.Property.ValueChangeEvent;
  4. import com.vaadin.data.Property.ValueChangeListener;
  5. import com.vaadin.server.VaadinRequest;
  6. import com.vaadin.tests.components.AbstractTestUIWithLog;
  7. import com.vaadin.ui.TextField;
  8. public class ConverterThatEnforcesAFormat extends AbstractTestUIWithLog {
  9. @Override
  10. protected void setup(VaadinRequest request) {
  11. final TextField tf = new TextField(
  12. "This field should always be formatted with 3 digits");
  13. tf.setLocale(Locale.ENGLISH);
  14. // this is needed so that IE tests pass
  15. tf.setNullRepresentation("");
  16. tf.setConverter(new StringToDoubleConverterWithThreeFractionDigits());
  17. tf.addValueChangeListener(new ValueChangeListener() {
  18. @Override
  19. public void valueChange(ValueChangeEvent event) {
  20. log("Value changed to "
  21. + event.getProperty().getValue()
  22. + "(converted value is "
  23. + tf.getConvertedValue()
  24. + "). Two-way conversion gives: "
  25. + tf.getConverter().convertToPresentation(
  26. tf.getConverter().convertToModel(tf.getValue(),
  27. Double.class, tf.getLocale()),
  28. String.class, tf.getLocale()) + ")");
  29. }
  30. });
  31. tf.setImmediate(true);
  32. addComponent(tf);
  33. tf.setConvertedValue(50.0);
  34. }
  35. @Override
  36. protected String getTestDescription() {
  37. return "Entering a valid double in the field should always cause the field contents to be formatted to contain 3 digits after the decimal point";
  38. }
  39. @Override
  40. protected Integer getTicketNumber() {
  41. return 8191;
  42. }
  43. }