Does someone already has a solution for this problem outlined below?? I'm using version 3.0.4
Chris Norris <CNorris <at> widen.com> writes: > > I think this is what you are talking about: > http://thread.gmane.org/gmane.comp.jakarta.tapestry.devel/1632 > > It seems like they were talking in January 2004 (a year and a half ago? > Time flies...) about putting it in the next release... But still hasn't > been done? I'm still trying my page property validator (it'll hold some > state). That seems a little cleaner than patching Tapestry. > -Chris > > > -----Original Message----- > > From: robertz <at> scazdl.org [mailto:robertz <at> scazdl.org] > > Sent: Thursday, June 02, 2005 12:56 PM > > To: Tapestry users > > Subject: Re: dynamically generated form fields and form level > > validation > > > > Harish submitted a patch a /long/ while back that dealt with > > the scenario > > of how to set a particular field in error when it's rendered > > in a loop. He > > added a new "index" property, as I recall. The patch was > > never applied, > > but if you search the archives for it, you should be able to find it. > > I also know that the patch cannot be cleanly applied to 3.0.3 due to > > conflicting changes, so, you may just need to take the patch > > and use it as > > the basis for your own modifications. > > Will this issue be addressed in the new validation stuff Paul > > is working > > on for 4.0? > > > > Robert > > > > > I'm going to try to boil this down to the neccesities. If > > it doesn't > > > make sense, I'll provide some code. > > > > > > I have a Foreach loop inside of a form. The loop generates > > a couple of > > > sets of FieldLabel/ValidField components*. > > > > > > The problem is that two of the fields' validation depend on > > each other. > > > If both fields are empty, they both need to be marked as > > errored so that > > > the error markup will be written. If one or the other has > > a value, they > > > are both valid. Can someone point me in the best direction > > for this? > > > > > > My first thought was to record the name of the ValidField > > component when > > > the page was getting the value for it. I would get the > > names, something > > > like validComponentName and validComponentName$0. At form > > rewind time, > > > though, I couldn't figure out how to get the components given those > > > names and set them in error. It seems impossible, given > > that getName() > > > will always return the most recent name generated for the > > component. I > > > tried going through the ValidationDelegate's FieldTrackings > > and going > > > through the map returned by getComponents(), neither of which worked > > > very well. > > > > > > My next option was going to be to make a special validator for this > > > purpose. It would have to be a page property rather than a > > bean so that > > > the same validator would be used for both ValidFields. All of these > > > approaches seem ugly to me. Ideas? Directions? > > > > > > -Chris > > > > > > > > > *uses a Defer type component to take care of the off by one > > validation > > > error. the Defer component wraps a FieldLabel and takes in > > a block that > > > contains a ValidField: > > > protected void renderComponent(IMarkupWriter writer, IRequestCycle > > > cycle) > > > { > > > IMarkupWriter nested = writer.getNestedWriter(); > > > getBlock().renderBody(nested, cycle); > > > renderBody(writer, cycle); > > > nested.close(); > > > } > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: tapestry-user-unsubscribe <at> jakarta.apache.org > > For additional commands, e-mail: tapestry-user-help <at> jakarta.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: tapestry-user-unsubscribe <at> jakarta.apache.org > For additional commands, e-mail: tapestry-user-help <at> jakarta.apache.org > >