You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pivot.apache.org by "A.J. (JIRA)" <ji...@apache.org> on 2010/08/26 10:15:54 UTC

[jira] Created: (PIVOT-612) TextInput validator problem when modifying selected text

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.


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.


[jira] Updated: (PIVOT-612) TextInput validator problem when modifying selected text

Posted by "Greg Brown (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PIVOT-612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Greg Brown updated PIVOT-612:
-----------------------------

    Fix Version/s: 1.5.2

> 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: 1.5.2, 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.


[jira] Resolved: (PIVOT-612) TextInput validator problem when modifying selected text

Posted by "Noel Grandin (JIRA)" <ji...@apache.org>.
     [ 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.