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 + " &#187;";
>
>                 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]

Reply via email to