Ahh ... but of course!

Thanks both of you. The nested structure did indeed obscure the problem.

Fixed and refactored a bit - and now working as expected.

Thanks for your time!

-Luther



On Thu, Mar 26, 2009 at 12:01 PM, Jonathan Locke
<[email protected]>wrote:

>
>
> uh, well maybe not dangerous, just less clear than it could be.
>
>
> Jonathan Locke wrote:
> >
> >
> > i think you mean to add the projects listview to the categories list view
> > /item/
> >
> > your structure is a little dangerous here because you have one ListItem
> > item
> > obscuring the other. if the outer one were called outerItem and the inner
> > one
> > were called innerItem, i think you meant to say outerItem.add(projects)
> > and
> > innerItem.add(link)
> >
> >
> > luther.baker wrote:
> >>
> >> I'm trying to create a page - similar to Jira's BROWSE PROJECTS.
> >>
> >> My initial take amounts to a loop in a loop.
> >>
> >> The outer loop is CATEGORIES and the inner loop is PROJECTS in said
> >> category.
> >>
> >> | CATEGORY 1
> >> | p1
> >> | p2
> >> | p3
> >>
> >> | CATEGORY 2
> >> | p4
> >> | p5
> >> | p6
> >>
> >> ...
> >>
> >> I've attached code below but if I removed the nested loop, I can easily
> >> loop
> >> over just CATEGORIES but as soon as I add the nested loop, it fails with
> >> the
> >> following
> >>
> >> WicketMessage: Error attaching this container for rendering: [Page class
> >> =
> >> com.fuzzybearings.milestones.web.page.user.ProjectsPage, id = 3, version
> >> =
> >> 0]
> >>
> >> Root cause:
> >>
> >> java.lang.IllegalArgumentException: A child with id 'projects' already
> >> exists:
> >> [MarkupContainer [Component id = categories]]
> >>
> >>
> >> My intuition tells me that 'wicket:id="projects"' is repeating since it
> >> is
> >> contained in an outer loop ... but I'm not sure how else to identify
> this
> >> type of structure in a general way. Is there a loop container more
> suited
> >> to
> >> this ... open to suggestions.
> >>
> >> Thanks in advance,
> >>
> >> -Luther
> >>
> >>
> >>
> >> *.html snippet
> >>
> >>         <div wicket:id="categories">
> >>         <table>
> >>             <tr wicket:id="projects">
> >>                 <td> # [project] </td>
> >>             </tr>
> >>         </table>
> >>         </div>
> >>
> >>
> >> *.java snippet
> >>
> >>     public ProjectsPage(ResourceModel bodyTitle)
> >>     {
> >>         super(bodyTitle);
> >>
> >>         ListView categories = new ListView("categories",
> >> this.getCategories())
> >>         {
> >>
> >>             @Override
> >>             protected void populateItem(ListItem item)
> >>             {
> >>                 Category category = (Category) item.getModelObject();
> >>
> >>                 ListView projects = new ListView("projects",
> >> ProjectsPage.this.getProjects(category))
> >>                 {
> >>
> >>                     @Override
> >>                     protected void populateItem(ListItem item)
> >>                     {
> >>                         Project project = (Project)
> >> item.getModelObject();
> >>                         Link link = new Link("projectLink",
> >> item.getModel())
> >>                         {
> >>
> >>                             @Override
> >>                             public void onClick() { ... }
> >>                         };
> >>                         link.add(new Label("projectLabel",
> >> project.getName()));
> >>                         item.add(link);
> >>                     }
> >>                 };
> >>                 this.add(projects);
> >>             }
> >>         };
> >>         this.add(categories);
> >>     }
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/nested-loop-view-tp22726252p22726482.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to