cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bruno Dumon <br...@outerthought.org>
Subject Re: validating fd:booleanfield
Date Thu, 01 Jul 2004 12:52:43 GMT
On Thu, 2004-07-01 at 14:29, Jeremy Quinn wrote:
> 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.

Absolutely no problem. However, I think I fixed the source of the
problem with a new xreporter-expression jar I just committed.

-- 
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


Mime
View raw message