Bart Molenkamp wrote:

-----Oorspronkelijk bericht-----
Van: Reinhard Poetz [mailto:[EMAIL PROTECTED]
Verzonden: vrijdag 3 juni 2005 9:46
Aan: dev@cocoon.apache.org
Onderwerp: ValidationAware forms


AFAICS the widget "Form" doesn't implement ValidationAware. Is there a special 
reason why this feature hasn't been added yet?

I'm not sure, but I think it is because a form doesn't have a visual representation in 
HTML, where other widgets do have a visual representation. Where should CForms place the 
error marker (the red "!") for a form?

That's exactly the reason: only widgets who have a visual representation can be made validation-aware, as otherwise we don't know how/where to display the error.

I agree that it will be helpful to have this feature. And I think that 
repeaters are a similar case (aren't ValidationErrorAware either, but I have 
cases here where I want it to hold an error instead of creating a messages 
widget).

The form1 sample has a validator on the "contacts" repeater, which checks uniqueness of {firstName,lastName} on the various rows. If a duplicate is found, the error is set on the offending row as its the most precise location indicating to the user where the problem is. Attaching the error to the repeater itself would make finding the problem more difficult.

The same reasoning can be applied to the form object. Since an error means the user has to change something, then we'd better indicate precisely what should be changed. Now in some cases the error can be of type "either change this _or_ change that" and that's where the message widget is usefull.

Hmm...

Now there's also the little-known <ft:validation-error> template instruction that outputs the validation error or any given widget. This can be a good replacement of the message widget, and would allow non-visual widgets to be ValidationAware.

WDYT?

Sylvain

--
Sylvain Wallez                        Anyware Technologies
http://apache.org/~sylvain            http://anyware-tech.com
Apache Software Foundation Member     Research & Technology Director

Reply via email to