You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by César Augusto Mateus <ce...@gmail.com> on 2007/07/30 17:19:04 UTC

T4: Problem with my own Date Validator

Hi all,
I did a Validator with the purpose of not to allow that a user entered a
date before of today.
That validation work fine, but not yet i can to do that this validator is
obligatory, because when i enter a null value, the validator was not call.
My Validator code here, thanks

package co.org.amv.rupm.tapestry.models;

import java.util.Date;

import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
import org.apache.tapestry.form.validator.BaseValidator;
import org.apache.tapestry.form.validator.Validator;
import org.apache.tapestry.valid.ValidationConstants;
import org.apache.tapestry.valid.ValidatorException;

public class ValidatorFecAntesHoyRequired extends BaseValidator implements
Validator  {


    public void validate(
            IFormComponent field, ValidationMessages messages, Object
object)
    throws ValidatorException {
        Date fecha = (Date) object;
//   IF THE USER ENTER A NULL VALUE, NEVER PAINT THIS
        System.out.println("----"+fecha);
//  THEN NEVER THROW THIS EXCEPTION
        if( fecha == null ){
            throw new ValidatorException( field.getDisplayName() + ": Debe
ingresar un valor", null );
        }
        Date hoy = new Date();
        if( fecha.after( hoy ) ){
            throw new ValidatorException(
                    field.getDisplayName() + ": La fecha no puede ser
posterior a la fecha actual", null );
        }
    }

    public boolean getAcceptsNull() {
        return false;
    }

    public boolean isRequired() {
        return true;
    }

    public void renderContribution(
            IMarkupWriter arg0, IRequestCycle cycle,
            FormComponentContributorContext context, IFormComponent field) {
    }

}

Thanks for your help, Which is my error???

Re: T4: Problem with my own Date Validator

Posted by César Augusto Mateus <ce...@gmail.com>.
Thanks very much Martino,

an fool fault!, but it did not know clearly so that was the method
getAcceptsNull(), seemed to me very similar to isRequired() and I supposed
that they had the same function.

In the end, i think in extend the class

org.apache.tapestry.form.validator.Required

and it work, but it´s clear now that the solution was but simple, thanks.



On 7/30/07, Martino Piccinato <ma...@gmail.com> wrote:
>
> you made getAcceptsNull as "false" so you'll never receive a null to
> validate...
>
> On 7/30/07, César Augusto Mateus <ce...@gmail.com> wrote:
> > Hi all,
> > I did a Validator with the purpose of not to allow that a user entered a
> > date before of today.
> > That validation work fine, but not yet i can to do that this validator
> is
> > obligatory, because when i enter a null value, the validator was not
> call.
> > My Validator code here, thanks
> >
> > package co.org.amv.rupm.tapestry.models;
> >
> > import java.util.Date;
> >
> > import org.apache.tapestry.IMarkupWriter;
> > import org.apache.tapestry.IRequestCycle;
> > import org.apache.tapestry.form.FormComponentContributorContext;
> > import org.apache.tapestry.form.IFormComponent;
> > import org.apache.tapestry.form.ValidationMessages;
> > import org.apache.tapestry.form.validator.BaseValidator;
> > import org.apache.tapestry.form.validator.Validator;
> > import org.apache.tapestry.valid.ValidationConstants;
> > import org.apache.tapestry.valid.ValidatorException;
> >
> > public class ValidatorFecAntesHoyRequired extends BaseValidator
> implements
> > Validator  {
> >
> >
> >     public void validate(
> >             IFormComponent field, ValidationMessages messages, Object
> > object)
> >     throws ValidatorException {
> >         Date fecha = (Date) object;
> > //   IF THE USER ENTER A NULL VALUE, NEVER PAINT THIS
> >         System.out.println("----"+fecha);
> > //  THEN NEVER THROW THIS EXCEPTION
> >         if( fecha == null ){
> >             throw new ValidatorException( field.getDisplayName() + ":
> Debe
> > ingresar un valor", null );
> >         }
> >         Date hoy = new Date();
> >         if( fecha.after( hoy ) ){
> >             throw new ValidatorException(
> >                     field.getDisplayName() + ": La fecha no puede ser
> > posterior a la fecha actual", null );
> >         }
> >     }
> >
> >     public boolean getAcceptsNull() {
> >         return false;
> >     }
> >
> >     public boolean isRequired() {
> >         return true;
> >     }
> >
> >     public void renderContribution(
> >             IMarkupWriter arg0, IRequestCycle cycle,
> >             FormComponentContributorContext context, IFormComponent
> field) {
> >     }
> >
> > }
> >
> > Thanks for your help, Which is my error???
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: T4: Problem with my own Date Validator

Posted by Martino Piccinato <ma...@gmail.com>.
you made getAcceptsNull as "false" so you'll never receive a null to validate...

On 7/30/07, César Augusto Mateus <ce...@gmail.com> wrote:
> Hi all,
> I did a Validator with the purpose of not to allow that a user entered a
> date before of today.
> That validation work fine, but not yet i can to do that this validator is
> obligatory, because when i enter a null value, the validator was not call.
> My Validator code here, thanks
>
> package co.org.amv.rupm.tapestry.models;
>
> import java.util.Date;
>
> import org.apache.tapestry.IMarkupWriter;
> import org.apache.tapestry.IRequestCycle;
> import org.apache.tapestry.form.FormComponentContributorContext;
> import org.apache.tapestry.form.IFormComponent;
> import org.apache.tapestry.form.ValidationMessages;
> import org.apache.tapestry.form.validator.BaseValidator;
> import org.apache.tapestry.form.validator.Validator;
> import org.apache.tapestry.valid.ValidationConstants;
> import org.apache.tapestry.valid.ValidatorException;
>
> public class ValidatorFecAntesHoyRequired extends BaseValidator implements
> Validator  {
>
>
>     public void validate(
>             IFormComponent field, ValidationMessages messages, Object
> object)
>     throws ValidatorException {
>         Date fecha = (Date) object;
> //   IF THE USER ENTER A NULL VALUE, NEVER PAINT THIS
>         System.out.println("----"+fecha);
> //  THEN NEVER THROW THIS EXCEPTION
>         if( fecha == null ){
>             throw new ValidatorException( field.getDisplayName() + ": Debe
> ingresar un valor", null );
>         }
>         Date hoy = new Date();
>         if( fecha.after( hoy ) ){
>             throw new ValidatorException(
>                     field.getDisplayName() + ": La fecha no puede ser
> posterior a la fecha actual", null );
>         }
>     }
>
>     public boolean getAcceptsNull() {
>         return false;
>     }
>
>     public boolean isRequired() {
>         return true;
>     }
>
>     public void renderContribution(
>             IMarkupWriter arg0, IRequestCycle cycle,
>             FormComponentContributorContext context, IFormComponent field) {
>     }
>
> }
>
> Thanks for your help, Which is my error???
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org