There is a workaround, but it is not very elegant.  You can do a 
driver.flush() in a change handler for the field you want to validate 
on-the-fly which, of course, re-validates (i.e. calls getValue()) on all 
fields.  That seems to me a bit like swatting a fly with a sledgehammer.

It would seem better to have, perhaps, another recordError method signature 
like:

void recordError(String message, Object value, Object userData, boolean 
immediate);

When immediate is true, the driver would immediately post the error to the 
nearest super-Editor that implements the HasEditorErrors interface, rather 
than waiting for a driver flush().

Thoughts?


On Monday, October 8, 2012 7:44:28 AM UTC-5, RickL wrote:
>
> Actually, that only fixed part of my problem: the fact that the editor was 
> not reporting errors at all (because it was not getting a delegate).  I 
> still do not have a good solution to the original question.
>
> Sorry about the confusion.
>
> On Monday, October 8, 2012 7:40:29 AM UTC-5, RickL wrote:
>>
>> I found the solution.  I was using an editor decorator to wrap the 
>> number validating editor.  In this case it appears that you must forward 
>> the setDelegate from the editor decorator to its sub-editor as in:
>>
>>   @Override
>>   public void setDelegate(EditorDelegate<T> delegate) {
>>     if (editor instanceof HasEditorDelegate) {
>>       ((HasEditorDelegate<T>) editor).setDelegate(delegate);
>>     }
>>   }
>>
>> It works now.
>>
>> On Sunday, October 7, 2012 3:38:05 PM UTC-5, RickL wrote:
>>>
>>> I have a problem.  I want to force the editor framework to immediately 
>>> validate a field when the user changes its value.  The most obvious and 
>>> simple case is a numeric field.  If the user enters an invalid number, I 
>>> want the error to be reported as soon as the user leaves the field.  I 
>>> don't want to wait for the user to initiate a save to detect that error 
>>> (and other errors like it that don't need to go to the server).
>>>
>>> This seems like it should be very easy, but I sure can't seem to find a 
>>> clean solution.
>>>
>>> Thanks
>>>
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/xEx-hLKW0xUJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to