I try to code a subclass of ListView that adds some markup after (i.e., at the bottom of) the list. Markup like a "buy all cheeses in this list"- link, for
example.

  public abstract class NodeListView extends ListView<Node>
  {
public NodeListView(String id, IModel<List<SessionNode>> model, boolean showFooter)
    {
      // ...
    }
    // ...
  }

Ideally, I'd like users of this class to provide the markup, for instance:

  <ul>
   <li wicket:id="list"><wicket:container wicket:id="node"/></li>
  </ul>

with code

    add(new NodeListView("list", listModel, true)
    {
      @Override
      protected void populateItem(ListItem<SessionNode> item)
      {
        item.add(new Label("node, /* ... */));
      }
    });

With this approach, is it possible to add markup from within NodeListView?
Could a behaviour help (or overriding onRender() if it were not final)?

Another option would be to make NodeListView a Panel with associated markup and have clients of NodeListView pass in a fragment, which is a bit unreadable:

  <wicket:container wicket:id="list" />
  <wicket:fragment wicket:id="list-item">
   <wicket:container wicket:id="node"/>
  </wicket:fragment>

with

  add(new NodeListView("list", listModel, true,
    new Fragment(NodeListView.ITEM_ID, "list-item", this)));

Any ideas?

Thanks, Kaspar

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to