Is it possible to hook into the <label> that tapestry writes?  Or is
this what's in the Tacos example?  I'd rather add class="required" to
the FieldLabel component rather than adding <span class="required">
around a <label>.

Matt

On 3/30/06, Matt Raible <[EMAIL PROTECTED]> wrote:
> Thanks - that appears to work. However, now I've discovered that
> validation doesn't work at all.  In Tapestry 3.0.3, I was using a
> custom ValidationDelegate that I found in Tapestry in Action.
> Unfortunately, it doesn't seem to work in Tapestry 4.  I'm setting it
> in my page-specification using:
>
> <bean name="delegate" class="org.appfuse.webapp.action.Validator"/>
>
> Is there a different way to set this in 4.0?
>
> The other problem I have with this Validator in 4.0 is there's now a
> nested <label> inside the <label> I'm writing.  Is it possible to set
> the "required" class on the <label> that Tapestry writes?
>
> public class Validator extends ValidationDelegate {
>     private static final long serialVersionUID = 6658594142293597652L;
>
>     public void writeLabelPrefix(IFormComponent component,
>                                  IMarkupWriter writer, IRequestCycle cycle) {
>         writer.begin("label");
>
>         if (isInError(component)) {
>             writer.attribute("class", "error");
>         } else {
>             writer.attribute("class", "required");
>         }
>
>         writer.print(" * ");
>     }
>
>     public void writeLabelSuffix(IFormComponent component,
>                                  IMarkupWriter writer, IRequestCycle cycle) {
>         Locale locale = cycle.getEngine().getLocale();
>         String marker = (locale.equals(Locale.FRENCH)) ? " :" : ":";
>         writer.print(marker);
>         writer.end();
>     }
>
>     public void writeAttributes(IMarkupWriter writer, IRequestCycle cycle,
>                                 IFormComponent component, IValidator
> validator) {
>         if (isInError()) {
>             writer.attribute("class", "error");
>         }
>     }
>
>     public void writeSuffix(IMarkupWriter writer, IRequestCycle cycle,
>                             IFormComponent component, IValidator validator) {
>         if (isInError(component)) {
>             writer.printRaw("&nbsp;");
>             writer.begin("img");
>
>             String ctxPath = cycle.getInfrastructure().getContextPath();
>             writer.attribute("src", ctxPath + "/images/iconWarning.gif");
>             writer.attribute("class", "validationWarning");
>             writer.attribute("alt",
> cycle.getPage().getMessages().getMessage("icon.warning"));
>             writer.end();
>
>             writer.printRaw("&nbsp;");
>
>             IFieldTracking tracking = getComponentTracking();
>             IRender render = tracking.getErrorRenderer();
>             String error = "";
>
>             if (render instanceof RenderString) {
>                 error = ((RenderString) render).getString();
>             }
>
>             writer.begin("span");
>             writer.attribute("class", "fieldError");
>             writer.printRaw(error);
>             writer.end();
>         }
>     }
> }
>
> Thanks,
>
> Matt
>
>
>
> On 3/30/06, Mike Snare <[EMAIL PROTECTED]> wrote:
> > try replacing
> >
> > value="\\d{5}(-\\d{4})?"
> >
> > with
> >
> > value="literal:\\d{5}(-\\d{4})?"
> >
> > See if that works.
> >
> > -Mike
> >
> > On 3/30/06, Matt Raible <[EMAIL PROTECTED]> wrote:
> > > This worked in 3.0.3:
> > >
> > >    <bean name="zipValidator"
> > > class="org.apache.tapestry.valid.PatternValidator">
> > >        <set name="patternString" value="\\d{5}(-\\d{4})?"/>
> > >        <set name="required" value="true"/>
> > >        <set name="patternNotMatchedMessage" value="message:errors.zip"/>
> > >        <set name="clientScriptingEnabled" value="true"/>
> > >    </bean>
> > >
> > > But this doesn't work in 4.0:
> > >
> > > Unable to read OGNL expression '<parsed OGNL expression>' of
> > > [EMAIL PROTECTED]: Error initializing property
> > > patternString of bean 'zipValidator' (of component signup): Unable to
> > > parse OGNL expression '\\d{5}(-\\d{4})?': Malformed OGNL expression:
> > > \\d{5}(-\\d{4})?
> > >
> > > Any idea how to fix this?  How did the regular expression syntax change?
> > >
> > > Thanks,
> > >
> > > Matt
> > >
> > > ---------------------------------------------------------------------
> > > 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