diff options
Diffstat (limited to 'documentation/articles/CreatingATextFieldForIntegerOnlyInputWhenNotUsingADataSource.asciidoc')
-rw-r--r-- | documentation/articles/CreatingATextFieldForIntegerOnlyInputWhenNotUsingADataSource.asciidoc | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/documentation/articles/CreatingATextFieldForIntegerOnlyInputWhenNotUsingADataSource.asciidoc b/documentation/articles/CreatingATextFieldForIntegerOnlyInputWhenNotUsingADataSource.asciidoc new file mode 100644 index 0000000000..62c8390a07 --- /dev/null +++ b/documentation/articles/CreatingATextFieldForIntegerOnlyInputWhenNotUsingADataSource.asciidoc @@ -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()`. |