Heh.  I really don't know what other validations can be done.  One
thing I'm sure of is that someone will come up with something.

Apologies on the copyright stuff.  I always forget about this the
first couple months into a new year.  If it's any consolation, I still
sign stuff 2008.  I'll commit a fix for that later when I'm back at a
workstation.

-- 
Kevin



On Tue, Feb 17, 2009 at 10:39 AM, Howard Lewis Ship <[email protected]> wrote:
> Great ... this is something people have been asking for a while
> (though beyond "required", how much validation can you do?).
>
> Please keep an eye to copyright years when committing.
>
> On Tue, Feb 17, 2009 at 4:25 AM,  <[email protected]> wrote:
>> Author: kmenard
>> Date: Tue Feb 17 12:25:16 2009
>> New Revision: 744998
>>
>> URL: http://svn.apache.org/viewvc?rev=744998&view=rev
>> Log:
>> Fixed TAP5-166: Add validator support to RadioGroup
>>
>> Modified:
>>    
>> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/RadioGroup.java
>>    tapestry/tapestry5/trunk/tapestry-core/src/test/app1/RadioDemo.tml
>>    
>> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/IntegrationTests.java
>>
>> Modified: 
>> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/RadioGroup.java
>> URL: 
>> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/RadioGroup.java?rev=744998&r1=744997&r2=744998&view=diff
>> ==============================================================================
>> --- 
>> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/RadioGroup.java
>>  (original)
>> +++ 
>> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/RadioGroup.java
>>  Tue Feb 17 12:25:16 2009
>> @@ -62,6 +62,14 @@
>>     @Parameter(required = true, allowNull = false)
>>     private ValueEncoder encoder;
>>
>> +    /**
>> +     * The object that will perform input validation. The validate binding 
>> prefix is
>> +     * generally used to provide this object in a declarative fashion.
>> +     */
>> +    @Parameter(defaultPrefix = BindingConstants.VALIDATE)
>> +    @SuppressWarnings("unchecked")
>> +    private FieldValidator<Object> validate;
>> +
>>     @Inject
>>     private ComponentDefaultProvider defaultProvider;
>>
>> @@ -80,6 +88,9 @@
>>     @Environmental
>>     private ValidationTracker tracker;
>>
>> +    @Inject
>> +    private FieldValidationSupport fieldValidationSupport;
>> +
>>     private String controlName;
>>
>>     String defaultLabel()
>> @@ -138,11 +149,20 @@
>>
>>     private void processSubmission()
>>     {
>> -        String clientValue = request.getParameter(controlName);
>> +        String rawValue = request.getParameter(controlName);
>>
>> -        tracker.recordInput(this, clientValue);
>> +        tracker.recordInput(this, rawValue);
>> +        try
>> +        {
>> +            if (validate != null)
>> +                fieldValidationSupport.validate(rawValue, resources, 
>> validate);
>> +        }
>> +        catch (ValidationException ex)
>> +        {
>> +            tracker.recordError(this, ex.getMessage());
>> +        }
>>
>> -        value = encoder.toValue(clientValue);
>> +        value = encoder.toValue(rawValue);
>>     }
>>
>>     /**
>> @@ -222,11 +242,8 @@
>>         return null;
>>     }
>>
>> -    /**
>> -     * Returns false; RadioGroup does not support declarative validation.
>> -     */
>>     public boolean isRequired()
>>     {
>> -        return false;
>> +        return validate.isRequired();
>>     }
>>  }
>>
>> Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/app1/RadioDemo.tml
>> URL: 
>> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/app1/RadioDemo.tml?rev=744998&r1=744997&r2=744998&view=diff
>> ==============================================================================
>> --- tapestry/tapestry5/trunk/tapestry-core/src/test/app1/RadioDemo.tml 
>> (original)
>> +++ tapestry/tapestry5/trunk/tapestry-core/src/test/app1/RadioDemo.tml Tue 
>> Feb 17 12:25:16 2009
>> @@ -6,7 +6,9 @@
>>   <p>Choose a department and position:</p>
>>
>>   <t:form>
>> -    <t:radiogroup t:id="department">
>> +    <t:errors/>
>> +
>> +    <t:radiogroup t:id="department" t:validate="required">
>>       <t:loop source="departments" value="loopValue">
>>         <p>
>>           <t:radio t:id="radio" value="loopValue" label="prop:label" />
>>
>> Modified: 
>> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/IntegrationTests.java
>> URL: 
>> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/IntegrationTests.java?rev=744998&r1=744997&r2=744998&view=diff
>> ==============================================================================
>> --- 
>> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/IntegrationTests.java
>>  (original)
>> +++ 
>> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/IntegrationTests.java
>>  Tue Feb 17 12:25:16 2009
>> @@ -1107,6 +1107,18 @@
>>     }
>>
>>     @Test
>> +    public void radio_group_validator()
>> +    {
>> +        start("RadioDemo");
>> +
>> +        String update = SUBMIT;
>> +
>> +        // Verify that the "required" validator works.
>> +        clickAndWait(update);
>> +        assertTextPresent("You must provide a value for Department.");
>> +    }
>> +
>> +    @Test
>>     public void regexp_validator()
>>     {
>>         start("Regexp Demo");
>>
>>
>>
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator Apache Tapestry and Apache HiveMind
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to