Just for the record, I thought I'd let you know that I've made my override:
public boolean isVisible() {
return super.isVisible() && pageable.getPageCount() >= 2;
}
to take into account an explicit setVisible(false)
-S.
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Igor Vaynberg
Sent: 12 September 2005 16:49
To: [email protected]
Subject: RE: [Wicket-user] Minimal contract for onRender() - Found word(s) list
error in the Text body
There is a little problem with the method below. If you reuse the page and
at some point your list will become longer then one page you wont see the
navigator because you only set visibility at construction time. A better way
would be to override the setVisible method:
public class EBSPagingNavigator extends PagingNavigator {
public Boolean isVisible() {
return pageable.getPageCount()>2;
}
}
-Igor
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:wicket-user-
> [EMAIL PROTECTED] On Behalf Of Simon Berriman
> Sent: Monday, September 12, 2005 6:28 AM
> To: [email protected]
> Subject: RE: [Wicket-user] Minimal contract for onRender()
>
> I've done this... - both to them, actually! I constructed my own
> PagingNavigator, like this:
>
> public class EBSPagingNavigator extends PagingNavigator
> {
> public EBSPagingNavigator(String id, IPageable pageable)
> {
> this(id, pageable, null);
> }
>
> public EBSPagingNavigator(String id, IPageable pageable,
> IPagingLabelProvider labelProvider)
> {
> super(id, pageable, labelProvider);
> if (pageable.getPageCount() < 2) setVisible(false);
> }
> }
>
> which makes itself invisible if there are less than two pages. This is
> backed up by a call to setRenderBodyOnly(true) in the instanciating code,
> and is placed in a <span> in the markup.
>
> w.r.t. the onRender(), yes it does do a lot more than just return; if you
> ever do find a need for an empty component, just do: add(new
> WebComponent("thingy"));
>
> You can also use WebMarkupContainer, which you can add() other things to;
> I acutally have the PagingNavigator in a colspan'ed table cell, and a
> WebMarkupContainer on the <tfoot> tag, so that the above code gets used
> thus:
>
> WebMarkupContainer dataFootSect = new
> WebMarkupContainer("dataFootSect");
>
> ... // 'aplv' gets defined as a subclass of PageableListView
>
> Component dataPanelNav = new EBSPagingNavigator("dataNav", aplv);
> dataPanelNav.setRenderBodyOnly(true);
> if ( !dataPanelNav.isVisible()) dataFootSect.setVisible(false);
>
> so dataFootSect does nothing other than give me the ability to make the
> whole <tfoot> section invisible.
>
> hth,
> -S.
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:wicket-user-
> [EMAIL PROTECTED] On Behalf Of Scott Sauyet
> Sent: 12 September 2005 13:51
> To: [email protected]
> Subject: [Wicket-user] Minimal contract for onRender()
>
> I guess there are really two questions here.
>
> First, I wanted to create an empty component (more about why below) and
> did what I thought was reasonable:
>
> add(new Component("navigator") {
> public void onRender() {}
> });
>
> but I get a wicket.markup.MarkupException:
>
> Markup element at index 33 failed to advance the markup stream
>
> So obviously I need to do more inside onRender than simply return. What
> do I need to do? The Javadocs don't say. I would like to know this
> even if there is an answer to my second question below that obviates the
> need in this particular case: I'm trying to learn at least a little
> about how Wicket works.
>
> Second, is there a simple way to hide the PagingNavigator when there is
> only one page of results? Most often for my application, there will be
> only a single page, but there is no real limit to the number of possible
> entries, so I do want it paged. I was hoping to hide the Navigator
> unless it was required. That was why I wanted an empty component. I
> tried to do this:
>
> if (myList.size() > getItemsPerPage()) {
> add(new PagingNavigator("navigator", listView));
> } else {
> add(new Component("navigator") {
> public void onRender() {}
> });
> }
>
> and that is where I ran into the problem above. Is there a simpler way
> to do this?
>
> Thanks,
>
> -- Scott Sauyet
>
>
>
>
<!-- -------------------------------------------------------
Come visit us at:
Content Management Europe Exhibition. 29th November - 1st December 2005,
Olympia Grand Hall, London. Stand # 341
GOSS - Ranked 4th in the Deloitte Technology Fast 50 Awards 2004 and 88th in
the Deloitte Technology Fast 500 EMEA.
This email contains proprietary information, some or all of which may be
legally privileged. It is for the intended recipient only. If an addressing or
transmission error has misdirected this email, please notify the author by
replying to this email. If you are not the intended recipient you may not use,
disclose, distribute, copy, print or rely on this email.
Email transmission cannot be guaranteed to be secure or error free, as
information may be intercepted, corrupted, lost, destroyed, arrive late or
incomplete or contain viruses. This email and any files attached to it have
been checked with virus detection software before transmission. You should
nonetheless carry out your own virus check before opening any attachment. GOSS
Interactive Ltd accepts no liability for any loss or damage that may be caused
by software viruses.
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user