Thanks Igor, that did the trick. I knew it had to be a simple solution.
Sometimes learning a new technology is like hammering nails with your
forehead!
Jay
On Jan 3, 2008 1:17 PM, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
> you can use the wicket:container tag instead of span if you dont want
> anything in the output.
>
> alternatively you can call setrenderbodyonly(true) on the offending
> container, if it is part of the listview/refreshingview you have to
> call
>
> onpopulateitem(Item item, ...) { item.setrenderbodyonly(true); }
>
> -igor
>
>
> On Jan 3, 2008 8:28 AM, Jay Hogan <[EMAIL PROTECTED]> wrote:
> > I am trying to create a nested unordered list structure similar to the
> one
> > demonstrated by the nested example from org.apache.wicket.examples.
> However,
> > there are some key differences that have me stumped.
> >
> > Here is an example of the structure I am trying to create:
> >
> > <html>
> > <body>
> > <ul id="menu1">
> > <li>
> > <a href="#">1.1</a>
> > </li>
> > <li>
> > <a href="#">1.2 </a>
> > <ul id="menu1.2">
> > <li>
> > <a href="#">1.2.1</a>
> > </li>
> > <li>
> > <a href="#"> 1.2.2</a>
> > </li>
> > <ul id="menu1.2.2">
> > <li>
> > <a href="#">1.2.2.1</a>
> > </li>
> > </ul>
> > <li>
> > <a href="#">1.2.3</a>
> > </li>
> > </ul>
> > </li>
> > <li>
> > <a href="#">1.3</a>
> > </li>
> > </ul>
> > </body>
> > </html>
> >
> > The code I have attached comes close to replicating this structure but
> has
> > one key difference that is throwing off the css/javascript combination
> > required to style this block for IE. In the code attached, each <li> tag
> is
> > wrapped in a <span wicket:id="rows"> tag. From what I can tell, this
> element
> > is required by the org.apache.wicket.markup.html.list.ListView class I
> am
> > using to recursively build the nested list.
> >
> > I have tried using a ListView (attached), a RepeatingView, plus several
> html
> > template structures but I haven't come upon a solution that eliminates
> the
> > <span> elements. I could try to tweak the style sheet or the script but
> I'm
> > the kind of person who is more comfortable working in Java. Plus, I know
> > wicket can do it and it burns me that I can't figure it out.
> >
> > Anyone have any ideas?
> >
> > Thanks,
> >
> > Jay
> >
> >
> > NavigationPanel.java:
> >
> > public class NavigationPanel extends Panel {
> > private static final long serialVersionUID = 1013065866921645502L;
> >
> > /**
> > * Constructor
> > * @param id - Wicket ID
> > * @param menus - List of NavMenuItems
> > * @param parentID - HTML ID of parent (or null if root menu)
> > */
> > public NavigationPanel(String id, List<NavMenuItem> menus, String
> > parentID) {
> > super(id);
> > AttributeModifier idModifier = null;
> > if (parentID == null) {
> > idModifier = new AttributeModifier("id",new Model("nav"));
> > add(HeaderContributor.forCss(NavigationPanel.class, "
> > NavigationPanel.css"));
> > add(HeaderContributor.forJavaScript(NavigationPanel.class, "
> > NavigationPanel.js"));
> > } else
> > idModifier = new AttributeModifier("id",new
> Model(parentID));
> > add(new MenuPanel("menu", menus).add(idModifier));
> > }
> >
> > private class MenuPanel extends Panel {
> > private static final long serialVersionUID =
> -595725676357588882L;
> >
> > MenuPanel(String id, List<NavMenuItem> menus) {
> > super(id);
> > add(new Rows("rows", menus));
> > setVersioned(false);
> > }
> >
> > /**
> > * The list class.
> > */
> > private class Rows extends ListView {
> > private static final long serialVersionUID =
> > -5175513182419457939L;
> >
> > /**
> > * Constructor
> > * @param name - name of the component
> > * @param list - a list where each element is either a
> string or
> > another list
> > */
> > public Rows(String name, List<NavMenuItem> list) {
> > super(name, list);
> > }
> >
> > /**
> > * @see
> org.apache.wicket.markup.html.list.ListView#populateItem
> > (org.apache.wicket.markup.html.list.ListItem)
> > */
> > protected void populateItem(ListItem listItem) {
> > NavMenuItem navMenuItem =
> > (NavMenuItem)listItem.getModelObject();
> >
> > WebMarkupContainer row = new
> WebMarkupContainer("menuItem");
> > String linkText = navMenuItem.getMenuText();
> >
> > NavigationPanel nested = new NavigationPanel (
> > "subMenu",
> > navMenuItem.getSubMenus(),
> > navMenuItem.getMenuText()
> > );
> > if (navMenuItem.getSubMenus() == null)
> > nested.setVisible(false);
> > else
> > linkText = linkText + " »";
> >
> > Label link = new Label("link", linkText);
> >
> > row.add(nested);
> > row.add(link);
> > listItem.add(row);
> > }
> > }
> > }
> > }
> >
> >
> >
> > NavigationPanel.html:
> >
> > <html xmlns:wicket>
> > <wicket:panel>
> > <ul wicket:id="menu" id="">
> > Navigation menu goes here
> > </ul>
> > </wicket:panel>
> > </html>
> >
> >
> >
> > NavigationPanel$MenuPanel.html:
> >
> > <html xmlns:wicket>
> > <wicket:panel>
> > <span wicket:id="rows">
> > <li wicket:id="menuItem"><a href="#" wicket:id="link">Link Text</a><span
> > wicket:id="subMenu"/></li>
> > </span>
> > </wicket:panel>
> > </html>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
============================================
Computer Science: solving today's problems tomorrow.