Hello Jan, There was recently a discussion about t:context (and other things) not working as you would expect in a t:ajaxformloop compared to a t:loop. You may want to read through that discussion thread here:
http://mail-archives.apache.org/mod_mbox/tapestry-users/201308.mbox/%3CCAAT_KPKFj561y3O8%3D92q94dUcoQ_zUc4Xkmr4O7v%2BvwCqZRDaQ%40mail.gmail.com%3E mrg On Fri, Sep 20, 2013 at 3:40 PM, Jan Fryblik <jan.fryb...@ebrothers.cz>wrote: > > I know, i only wanted to see a practical advanced usage of tapestry. > Everywhere is a lot of basic examples, but i haven't found clear example of > nested loop in loop. > > My issue is with handler onAddRowFromTimeRangeLoop(**OpeningItem > openingItem). Parameter "openingItem" is always null, encoder of outer loop > is not called, but I dont know why. Probably i've overlooked something. > > .tml > > <t:ajaxformloop t:id="openingItemLoop" t:source="unsavedOpeningItems" > t:value="openingItem" t:encoder="openingItemEncoder"**> > > <t:ajaxformloop t:id="timeRangeLoop" source="openingItem.** > timeRangeList" > t:value="timeRange" encoder="timerangeEncoder" > t:context="openingItem"> > > <div class="time-range-item"> > <t:cb.businesshours.timeperiod period="timeRange"/> > </div> > > </t:ajaxformloop> > > </t:ajaxformloop> > > > .java > > @Persist > @Property > private List<OpeningItem> unsavedOpeningItems; > > @Property > private OpeningItem openingItem; > @Property > private TimeRange timeRange; > > @Inject > private TypeCoercer typeCoercer; > > private ValueEncoder<OpeningItem> openingItemEncoder; > > public ValueEncoder<OpeningItem> getOpeningItemEncoder() > { > if (openingItemEncoder == null) > this.openingItemEncoder = new OpeningItemEncoder(** > unsavedOpeningItems); > > return openingItemEncoder; > } > > public ValueEncoder<TimeRange> getTimeRangeEncoder() > { > return new TimeRangeListEncoder(**openingItem.getListableId(), > openingItem.getTimeRangeList()**); > } > > @SetupRender > public void initialize() > { > if (unsavedOpeningItems == null) > unsavedOpeningItems = openingHours.**getOpeningItemsList(); > } > > public OpeningItem onAddRowFromOpeningItemLoop() > { > OpeningItem periodicOpening = entityFactoryService.** > createOpeningItem(); > > unsavedOpeningItems.add(**periodicOpening); > > return periodicOpening; > } > > public TimeRange onAddRowFromTimeRangeLoop(**OpeningItem openingItem) > { > List<TimeRange> timeRangeList = openingItem.getTimeRangeList()**; > TimeRange timeRange = entityFactoryService.**createTimeRange(); > timeRangeList.add(timeRange); > > return timeRange; > } > > > > Thanks, > Jan > > > On Fri, 20 Sep 2013 11:11:16 +0200, Boris Horvat <horvat.z.bo...@gmail.com> > wrote: > > Best thing to do is post your code and what error you get that will help >> anyone who would be able to help >> >> Cheers >> >> >> On Fri, Sep 20, 2013 at 10:20 AM, Jan Fryblik <jan.fryb...@ebrothers.cz>* >> *wrote: >> >> ** >>> >>> Hi guys, >>> >>> could you please provide me a example how to work with AjaxFormLoop >>> inside >>> AjaxFormLoop? Or more generaly loop inside loop. I'm stuck with it. I >>> guess, it's a bit advanced use of tapestry. Thanks in advance. >>> >>> >>> Best Regards, >>> Jan >>> >>> >>> >>> >>> >>> >> >> > > -- > S pozdravem > > > > Mgr. Jan Fryblík > jednatel > +420 739 094 784 > jan.fryb...@ebrothers.cz > > eBrothers Software s.r.o. | www.ebrothers.cz > > ------------------------------**------------------------------**--------- > To unsubscribe, e-mail: > users-unsubscribe@tapestry.**apache.org<users-unsubscr...@tapestry.apache.org> > For additional commands, e-mail: users-h...@tapestry.apache.org > >