[ 
https://issues.apache.org/jira/browse/PIVOT-612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Noel Grandin resolved PIVOT-612.
--------------------------------

    Fix Version/s: 2.0
       Resolution: Fixed

> TextInput validator problem when modifying selected text
> --------------------------------------------------------
>
>                 Key: PIVOT-612
>                 URL: https://issues.apache.org/jira/browse/PIVOT-612
>             Project: Pivot
>          Issue Type: Bug
>    Affects Versions: 1.5
>            Reporter: A.J.
>             Fix For: 2.0
>
>
> I have a validator on a textinput with strict validation set to true;
> The validator tries to match the text against a pattern.
> Everything is fine until i try to modify text that is selected (either 
> partially or completely).
> And this because validation does not take into account that selected text 
> should be replaced by typed characters;
> instead, it is trying to validate the concatenation of the new character and 
> the actual text instead of replacing the selected part of the text. 
> (lines 1059-1063 in class TerraTextInputSkin)
> I don't know if I'm clear.
> Consider this (pretty stupid) example that tries to accept only one digit in 
> the text input :
>               TextInput textInput = new TextInput();
>               textInput.setMaximumLength(1);
>               textInput.setStrictValidation(true);
>               textInput.setValidator(new Validator() {
>                       @Override
>                       public boolean isValid(String text) {
>                               if (text.length() == 0)
>                                       return true; // ok we accept empty field
>                               return text.length() == 1 && 
> Character.isDigit(text.charAt(0));
>                       }
>               });
>               
>               BoxPane boxPane = new BoxPane(Orientation.HORIZONTAL);
>               boxPane.add(textInput);
>               boxPane.add(new PushButton("Test"));
>               window.setContent(boxPane);
> Steps:
> 1. start app.
> 2. put focus in textinput (should be empty)
> 3. enter a digit, ex : '5'; ok this should work
> 4. move focus on button then move focus back on textinput
> 5. text is selected in textinput
> 6. try to replace the selected value ('5') by another digit by simply typing 
> it
> ==> doesnt work (while it should)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to