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]
