Re: Re: Bug in BTable

Stefan Armbruster <[email protected]>
Newsgroups gmane.comp.java.enhydra.barracuda.general
Message-ID <[email protected]>
Jake,

if you want to put IterativeSubModel into the comp package, don't forget
to move its superclass IteratorModel too.

Regards,
Stefan
Am Sam, 2003-07-19 um 05.49 schrieb Jacob Kjome:
> Diez,
> 
> Weren't you talking about formally creating something like what Stefan has 
> described with his IterativeSubModel?  That is, something like a formal way 
> to do Parent/Child models?  IterativeSubModel seems like it fits the 
> bill.  Maybe we should get IterativeSubModel into the main comp package?
> 
> Jake
> 
> At 11:26 PM 7/18/2003 +0200, you wrote:
> >Hi Tim,
> >
> >regarding at the nested models stuff, take a look at
> >org.enhydra.barracuda.contrib.sam.models.IterativeSubModel.
> >
> >Let me just point out how to use it. I'll assume your data is organized
> >in this way:
> >
> >// item represents the content of one sub-element
> >class Item {
> >         String name;
> >         ...
> >}
> >
> >class Section {
> >         String title;
> >         <any other fields>
> >         List items; // all items belonging to the Section
> >}
> >
> >So each Section contains a List of Items. In your ControlEventHandler
> >(here I assume, you are using BTemplateViewHandler), you get a List of
> >Sections.
> >
> >public Object getTemplateModels() {
> >         List models = new Vector();
> >         List sections = <call to your business logic>;
> >
> >         // create the "outer" model for sections
> >         TemplateModel sectionModel = new IterativeListModel("Section",
> >sections) {
> >                 public Object getItem(String key) {
> >                         Section section = (Section)_current;
> >                         if ("title".equals(key)) {
> >                                 return section.title;
> >                         } else {
> >                                 ... all other fields of section
> >                         } else if (key=="__REQ_FROM_CHILD") {
> >                                 return section.items;
> >                         }
> >                 }
> >         };
> >         models.add(sectionModel);
> >
> >         // now the "inner" model iterating over the items
> >         TemplateModel itemModel = new IterativeSubModel("Item",
> >"__REQ_FROM_CHILD", sectionModel) {
> >                 public Object getItem(Strin key) {
> >                         Item item = (Item)_current;
> >                         if ("name".equals(key)) {
> >                                 return item.name;
> >                         } else ... <all other fields of Item>
> >                 }
> >         };
> >         models.add(itemModel);
> >}
> >
> >So we have added two models, "Section" and "Item". The Item model has a
> >reference to section. For details how IterativeSubModel works, take a
> >look at the source.
> >
> >Your HTML mockup would look like:
> >
> ><h2 class="Dir::Iterate_Start.Section Dir::Iterate_Next.Section
> >Dir::Get_Data.Section.title">dummy for section's title</h2>
> >
> >.... and outher Get_Data's on Section Model
> >
> >   <ul>
> >     <li class="Dir::Iterate_Start.Item Dir::Iterate_Next.Item
> >Dir::Get_Data.Item.name">dummy for item's name
> >     <li class="Dir::Iterate_End.Item Dir::Discard>null
> >   </ul>
> >
> ><h2 class="Dir::Iterate_End.Section Dir::Discard">null</h2>
> >
> >Each section produces a h2 tag and a nested ul. The ul is populated by
> >the Item model.
> >
> >I hope this helps.
> >
> >Regards,
> >Stefan
> >
> >
> >
> >Am Fre, 2003-07-18 um 22.05 schrieb Tim Dysinger:
> > > Greetings (again),
> > >
> > > How complex have you all pushed the component model?  I noticed an email
> > > from Jim Dow a while back that asked about build custom components.
> > >
> > > I have a pretty complex couple of screens to build and so far I have not
> > > had any luck with build a custom component model for them.
> > >
> > > I would like to be able to build the following structure ->
> > >
> > > TemplateModel (page level model)
> > >   -> BText (title)
> > >   -> BList (links)
> > >      -> BLink
> > >   -> BList (repeating sections)
> > >      -> BTemplate (section template)
> > >        -> BText (section title)
> > >        -> BList (list of stuff for the section)
> > >          -> BText (stuff)
> > >
> > > -or-
> > >
> > > TemplateModel (page level model)
> > >   -> BText (title)
> > >   -> BList (links)
> > >      -> BLink
> > >   -> BTemplate (Iterative Model) (repeating sections)
> > >        -> BText (section title)
> > >        -> BTemplate (Iterative Model) (list of stuff for the section)
> > >          -> BText (stuff)
> > >
> > > So far I have been able to manually bind any template model to a view and
> > > it works great, __but__ if I try to return any BTemplate from a
> > > TemplateModel it blows chunks.  I have seen tidbits of emails on "Nested
> > > Directives."  Can anyone point me to any examples/pointers?  It seems that
> > > you cannot return a BTemplate from a TemplateModel.
> > >
> > > -Tim
> > >
> > >
> > >
> > > _______________________________________________
> > > Barracuda mailing list
> > > [email protected]
> > > http://barracudamvc.org/lists/listinfo/barracuda
> >
> >_______________________________________________
> >Barracuda mailing list
> >[email protected]
> >http://barracudamvc.org/lists/listinfo/barracuda
> 
> _______________________________________________
> Barracuda mailing list
> [email protected]
> http://barracudamvc.org/lists/listinfo/barracuda
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.