cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeremy Quinn <jer...@media.demon.co.uk>
Subject Re: validating fd:booleanfield
Date Thu, 01 Jul 2004 12:29:22 GMT

On 1 Jul 2004, at 12:20, Bruno Dumon wrote:

> On Thu, 2004-07-01 at 13:06, Jeremy Quinn wrote:
>> On 1 Jul 2004, at 11:45, Bruno Dumon wrote:
>>
>>> On Thu, 2004-07-01 at 12:09, Jeremy Quinn wrote:
>>>> On 30 Jun 2004, at 17:56, Bruno Dumon wrote:
>>>>
>>>> Thanks for your response Bruno.
>>>>
>>>>> On Wed, 2004-06-30 at 13:01, Jeremy Quinn wrote:
>>>>>> Hi All
>>>>>>
>>>>>> I need to validate (within the CForms framework) that a set of
>>>>>> checkboxes have all been checked.
>>>>>>
>>>>>> I have tried adding <fd:validation/> but it does not appear
to 
>>>>>> have
>>>>>> an
>>>>>> effect :
>>>>>
>>>>> Checked the source: it's indeed not supported. Probably for no
>>>>> particular reason.
>>>>>
>>>>> Possible options are:
>>>>>
>>>>> * adding support for it.
>>>>
>>>> sounds good
>>>>
>>>>> Should be no more then adding the following
>>>>> line to the class BooleanFieldDefinitionBuilder:
>>>>> setValidators(widgetElement, definition);
>>>>> I don't have time to test that, but since you already have an 
>>>>> example
>>>>> worked out you could give it a try.
>>>>
>>>> OK, I added setValidators(widgetElement, definition); at line 34, in
>>>> the buildWidgetDefinition method.
>>>>
>>>> I then test with the following booleanfield:
>>>>
>>>> <fd:booleanfield id="mod-copyright">
>>>>    <fd:label>
>>>>      <i18n:text
>>>> i18n:catalogue="local">moderate.mod-copyright.label</i18n:text>:
>>>>    </fd:label>
>>>>    <fd:hint>
>>>>      <i18n:text
>>>> i18n:catalogue="local">moderate.mod-copyright.hint</i18n:text>
>>>>    </fd:hint>
>>>>    <fd:help>
>>>>      <i18n:text
>>>> i18n:catalogue="local">moderate.mod-copyright.help</i18n:text>
>>>>    </fd:help>
>>>>    <fd:validation>
>>>>      <fd:assert test="mod-copyright = True()">
>>>>        <fd:failmessage>
>>>>          <i18n:text
>>>> i18n:catalogue="local">moderate.mod-copyright.fail</i18n:text>
>>>>        </fd:failmessage>
>>>>      </fd:assert>
>>>>    </fd:validation>
>>>> </fd:booleanfield>
>>>>
>>>> When I submit this form with the checkbox unchecked, I get no
>>>> validation error displayed.
>>>>
>>>> Comparing Field to BooleanField, it looks like BooleanField needs to
>>>> implement ValidationErrorAware, so I will try that next.
>>>
>>> I also see that the class BooleanField defines the validate method to
>>> do
>>> nothing. Just throw that method out (the one from the parent class 
>>> will
>>> take over).
>>
>> Yes.
>>
>> What I cannot work out now is how to do the actual validation.
>
> Nothing special needs to be done, it is handled by the validate method
> of the superclass.
>
>>
>> Looking at Field.java, it uses the Datatype to do this:
>> validationError = getDatatype().validate(value, new
>> ExpressionContextImpl(this));
>>
>> But BooleanField has no datatype .....
>
> validators belonging to the datatype is old stuff (will be removed), so
> you can ignore that.

OK, I added the following to BooleanField :

implements ValidationErrorAware

     protected ValidationError validationError;

     public boolean validate() {
         return super.validate();
     }

     public ValidationError getValidationError() {
         return validationError;
     }

     public void setValidationError(ValidationError error) {
         this.validationError = error;
     }

I now get a ClassCastException when I submit. So I am stumped again.

Unfortunately, and I know how rude this sounds, but I have been asked 
to get on with "other work", so unfortunately I will have to get back 
to this later. My apologies, and thanks for the help so far.

regards Jeremy

> -- 
> Bruno Dumon                             http://outerthought.org/
> Outerthought - Open Source, Java & XML Competence Support Center
> bruno@outerthought.org                          bruno@apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>
>
--------------------------------------------------------

                   If email from this address is not signed
                                 IT IS NOT FROM ME

                         Always check the label, folks !!!!!
--------------------------------------------------------


Mime
View raw message