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.

-- 
Bruno Dumon                             http://outerthought.org/
Outerthought - Open Source, Java & XML Competence Support Center
[EMAIL PROTECTED]                          [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to