:) I guess it depends on what you consider simple. As my co-worker often says "It's just SMOPs" (http://en.wikipedia.org/wiki/Small_matter_of_programming)
You need to provide more information for us to understand what you are getting hung up on. On Mon, Jul 11, 2011 at 11:16 AM, Ray Nicholus <rnicho...@widen.com> wrote: > Eh, it may be because I'm not updating the correct currentSetting object. > The behavior I want to support is fairly simple, but seems to be quite > complex to get working in Tapestry, unless I'm missing something. > > On Mon, Jul 11, 2011 at 1:12 PM, Ray Nicholus <rnicho...@widen.com> wrote: > >> It sounds like I can't use a submit button at all in this case. If I >> update the first select this in turn updates the 2nd select via a zone >> update. Then, when I choose a new value in the 2nd select and hit submit, >> my newly selected value is not persisted. Instead, the default value of the >> select is persisted. >> >> >> On Mon, Jul 11, 2011 at 1:01 PM, Josh Canfield <joshcanfi...@gmail.com>wrote: >> >>> > Sorry for not noticing that. IFIAK you wont be able to use loop >>> > variable(value parameter in loop or ajaxforloop) during a non-submission >>> > ajax call. >>> >>> You can use the variable, you just can't count on it being set for you >>> when you're using it out of context of the loop. Encode enough >>> information in your events that you can re-hydrate your required >>> properties yourself. >>> >>> >>> >>> On Mon, Jul 11, 2011 at 10:39 AM, Taha Hafeez <tawus.tapes...@gmail.com> >>> wrote: >>> > Sorry for not noticing that. IFIAK you wont be able to use loop >>> > variable(value parameter in loop or ajaxforloop) during a non-submission >>> > ajax call. In case of a loop, the context of each iteration(i.e the loop >>> > variable) is stored in hidden fields in the form. A value-encoder is >>> used to >>> > convert the current loop variable into a client side string and on >>> > submission the same value-encoder converts it back into the loop >>> variable >>> > which is used to set the value of each form field in an iteration. Now >>> if >>> > you make an ajax call which only refreshes a zone inside the loop, the >>> > current loop value(currentSetting in our case) is null as the decoding >>> using >>> > value-encoder does not happen without a submission. >>> > >>> > regards >>> > Taha >>> > >>> > >>> > On Mon, Jul 11, 2011 at 10:37 PM, Ray Nicholus <rnicho...@widen.com> >>> wrote: >>> > >>> >> I'm not sure what variable you are talking about. Do you mean >>> >> "currentSetting"? There is no "currentSettings" variable. If so, >>> >> currentSetting is the variable set by the ajaxformloop so there is >>> nothing >>> >> for me to initialize there. >>> >> >>> >> On Mon, Jul 11, 2011 at 12:04 PM, Taha Hafeez < >>> tawus.tapes...@gmail.com >>> >> >wrote: >>> >> >>> >> > My first question was where have you initialized currentSettings. Say >>> you >>> >> > have initialized it in onPrepare(), then during an ajax call, this >>> method >>> >> > is >>> >> > not called and so currentSettings is not initialized for that >>> request. If >>> >> > you are setting it in setupRender() of the main component, then as >>> only >>> >> an >>> >> > internal zone is updated, setupRender() or beginRender() of main >>> >> > component/page are not called for ajax update of an internal zone. >>> >> > >>> >> > So you have to be careful about where you setup currentSettings and >>> >> whether >>> >> > that phase is called during ajax update. In case it is not, then you >>> have >>> >> > to >>> >> > keep the variable in session so that you can use it across multiple >>> >> > requests. >>> >> > >>> >> > regards >>> >> > Taha >>> >> > >>> >> > >>> >> > On Mon, Jul 11, 2011 at 10:17 PM, Ray Nicholus <rnicho...@widen.com> >>> >> > wrote: >>> >> > >>> >> > > Hello Taha, >>> >> > > >>> >> > > I guess I'm confused about why I need to worry about any of this. >>> >> > Without >>> >> > > the zone parameter, I have no problem changing values of my >>> selects. >>> >> > > However, I need the zone so that I can change the available >>> options in >>> >> > the >>> >> > > 2nd select after the value changes in the first select. Shouldn't >>> I >>> >> just >>> >> > > be >>> >> > > able to refresh the 2nd select via a zone update? >>> >> > > >>> >> > > On Mon, Jul 11, 2011 at 11:26 AM, Taha Hafeez < >>> >> tawus.tapes...@gmail.com >>> >> > > >wrote: >>> >> > > >>> >> > > > Hi Ray, >>> >> > > > >>> >> > > > Where are you initializing currentSetting.fileMetadataTyp?e and >>> is >>> >> this >>> >> > > > value @Persisted as you are using it across multiple requests. >>> >> > > > >>> >> > > > regards >>> >> > > > Taha >>> >> > > > >>> >> > > > On Mon, Jul 11, 2011 at 9:19 PM, Ray Nicholus < >>> rnicho...@widen.com> >>> >> > > wrote: >>> >> > > > >>> >> > > > > Here is a fragment of some template code inside of a tapestry >>> form: >>> >> > > > > >>> >> > > > > <t:ajaxformloop t:id="existingAutoImportSettings" >>> >> > > > source="existingSettings" >>> >> > > > > value="currentSetting"> >>> >> > > > > <t:label for="typeSelect"/> >>> >> > > > > <t:select t:id="typeSelect" zone="fileMetadataSelectZone" >>> >> > > > > value="currentSetting.fileMetadataType" >>> label="${message:type}"/> >>> >> > > > > >>> >> > > > > <t:zone t:id="fileMetadataSelectZone"> >>> >> > > > > <t:label for="fileMetadataSelect"/> >>> >> > > > > <t:select t:id="fileMetadataSelect" >>> >> > > > > value="currentSetting.fileMetadataObject" >>> >> > > > > model="autoImportFileMetadataModel" >>> >> > label="${message:file-metadata}"/> >>> >> > > > > </t:zone> >>> >> > > > > >>> >> > > > > .......... >>> >> > > > > >>> >> > > > > </t:ajaxformloop> >>> >> > > > > >>> >> > > > > <input type="submit" value="Update"/> >>> >> > > > > >>> >> > > > > >>> >> > > > > As soon as I add the zone parameter to the 1st select & reload, >>> I >>> >> get >>> >> > a >>> >> > > > NPE >>> >> > > > > when I attempt to change the value in the 1st select. It >>> claims >>> >> that >>> >> > > the >>> >> > > > > currentSetting value is null when attempting to evaluate >>> >> > > > > currentSetting.fileMetadataType. >>> >> > > > > >>> >> > > > > What am I doing wrong? >>> >> > > > > >>> >> > > > >>> >> > > >>> >> > >>> >> >>> > >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org