]> source.dussan.org Git - vaadin-framework.git/commitdiff
Migrate CreaingAtextFieldFOrIntegerONlyINputWhenNotUsingADtaSource
authorErik Lumme <erik@vaadin.com>
Fri, 15 Sep 2017 09:34:10 +0000 (12:34 +0300)
committerErik Lumme <erik@vaadin.com>
Fri, 15 Sep 2017 09:34:10 +0000 (12:34 +0300)
documentation/articles/CreatingATextFieldForIntegerOnlyInputWhenNotUsingADataSource.asciidoc [new file with mode: 0644]
documentation/articles/contents.asciidoc

diff --git a/documentation/articles/CreatingATextFieldForIntegerOnlyInputWhenNotUsingADataSource.asciidoc b/documentation/articles/CreatingATextFieldForIntegerOnlyInputWhenNotUsingADataSource.asciidoc
new file mode 100644 (file)
index 0000000..62c8390
--- /dev/null
@@ -0,0 +1,44 @@
+[[creating-a-textfield-for-integer-only-input-when-not-using-a-data-source]]
+Creating a TextField for integer only input when not using a data source
+------------------------------------------------------------------------
+
+A `TextField` is a component that always has a value of type `String`. By
+adding a converter to a field, the field will automatically validate
+that the entered value can be converted and it will provide the
+converted value using the `getConvertedValue()` method.
+
+[source,java]
+....
+final TextField textField = new TextField("Text field");
+textField.setConverter(Integer.class);
+
+Button submitButton = new Button("Submit value", new ClickListener() {
+  public void buttonClick(ClickEvent event) {
+    String uiValue = textField.getValue();
+    try {
+      Integer convertedValue = (Integer) textField
+          .getConvertedValue();
+      Notification.show(
+          "UI value (String): " + uiValue
+          + "<br />Converted value (Integer): "
+          + convertedValue);
+    } catch (ConversionException e) {
+      Notification.show(
+          "Could not convert value: " + uiValue);
+    }
+  }
+});
+
+addComponent(new Label("Text field type: " + textField.getType()));
+addComponent(new Label("Converted text field type: "
+    + textField.getConverter().getModelType()));
+addComponent(textField);
+addComponent(submitButton);
+....
+
+With this example, entering a number and pressing the button causes the
+value of the `TextField` to be a `String` while the converted value will be
+an `Integer` representing the same value. If e.g. a letter is entered to
+the field and the button is pressed, the validation will fail. This
+causes a notice to be displayed for the field and an exception to be
+thrown from `getConvertedValue()`.
index ee08f5fb3b2aa3486b61fe4d509826e730a4fe4f..cbcce095b8add808471c9c39169ce9217da04966 100644 (file)
@@ -23,3 +23,4 @@
 - link:JMeterTesting.asciidoc[JMeter testing]
 - link:AutoGeneratingAFormBasedOnABeanVaadin6StyleForm.asciidoc[Auto-generating a form based on a bean - Vaadin 6 style Form]
 - link:CreatingAReusableVaadinThemeInEclipse.asciidoc[Creating a reusable Vaadin theme in Eclipse]
+- link:CreatingATextFieldForIntegerOnlyInputWhenNotUsingADataSource.asciidoc[Creating a TextField for integer only input when not using a data source]