pivot-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Brown <gk_br...@verizon.net>
Subject Re: TextInput and Validator issues
Date Mon, 07 Mar 2011 22:01:55 GMT
Nice!

On Mar 7, 2011, at 4:57 PM, anton dos santos wrote:

> I have done it this way:
> 
> public class ValidationRowEditor extends TableViewRowEditor {
> 
>  @Override
>  public void endEdit(boolean result) {
>    boolean valid = true;
>    if (result) {
>      Dictionary<String, Component> editors = getCellEditors();
>      Sequence<Column> cols = getTableView().getColumns();
>      for (int i = 0, n = cols.getLength(); i < n; i++) {
>        Component comp = editors.get(cols.get(i).getName());
>        if (comp instanceof TextInput) {
>          valid &= ((TextInput) comp).isTextValid();
>        }
>      }
>    }
>    if (!(result && !valid)) {
>      super.endEdit(result);
>    }
>  }
> }
> 
> if one of the TextInput editors is not valid, user can only leave the editor by pressing
ESC.
> It seems to work also with mouse, so it may also solve Lello's issues ( haven't tested
completely)
> 
> On 07/03/2011 22:11, Greg Brown wrote:
>> Sorry - I haven't looked at this code in a while. You should just be able to override
endEdit() and perform your validation. Don't call the base endEdit() if validation fails.
>> 
>> On Mar 7, 2011, at 4:06 PM, anton dos santos wrote:
>> 
>>> Ok
>>> but how can my app (my validators) tell the TableViewRowEditor that it should
not store the row?
>>> it happens in TableViewRowEditor#endEdit(boolean result) which is invoked by
keyPressed().
>>> So I should override keyPressed() and check the status of all validators before
invoking endEdit() ?
>>> 
>>> On 07/03/2011 21:41, Greg Brown wrote:
>>>> That's true, but it is up to your app to decide what constitutes "valid".
>>>> 
>>>> On Mar 7, 2011, at 3:36 PM, anton dos santos wrote:
>>>> 
>>>>> when a value is not valid you can still press return and then editing
ends and store() is also called.
>>>>> So modifying the MouseListener will not be enough.
>>>>> I believe that store() should not be invoked when there is a non valid
value in the row
>>>>> 
>>>>> 
>>>>> On 07/03/2011 21:04, lello wrote:
>>>>>> The problem I am facing is that when you have any value which is
not valid
>>>>>> you can still select a row of the table with the mouse and trigger
a store()
>>>>>> method. This shouldn't be allowed whether or not strictValidation()
is true
>>>>>> or false, since it returns an exception in any case. I should overwrite
some
>>>>>> MouseListener in my custom TableRowEditor, but I can't find any.
>>>>>> Any suggestion?
>>>>>> 
>>>>>> --
>>>>>> View this message in context: http://apache-pivot-users.399431.n3.nabble.com/TextInput-and-Validator-issues-tp2641141p2647704.html
>>>>>> Sent from the Apache Pivot - Users mailing list archive at Nabble.com.
>>>>>> 
>>>>>> 
>>>> 
>> 
>> 
> 


Mime
View raw message