public String getPageNavigationBar(Href baseHref,
String pageParameter) {
int groupSize = this.properties.getPagingGroupSize();
int startPage;
int endPage;
Pagination pagination = new Pagination(baseHref, pageParameter);
pagination.setCurrent(new Integer(paginatedList.getPageNumber()));
// if no items are found still add pagination?
if (pageCount == 0)
{
pagination.addPage(1, true);
}
// center the selected page, but only if there are {groupSize} pages
// available after it, and check that the
// result is not < 1
startPage = Math.max(Math.min(paginatedList.getPageNumber() - groupSize / 2, pageCount - (groupSize - 1)), 1);
endPage = Math.min(startPage + groupSize - 1, pageCount);
if (paginatedList.getPageNumber() != 1)
{
pagination.setFirst(new Integer(1));
pagination.setPrevious(new Integer(paginatedList.getPageNumber() - 1));
}
for (int j = startPage; j < = endPage; j++)
{
pagination.addPage(j, (j == paginatedList.getPageNumber()));
}
if (paginatedList.getPageNumber() != pageCount)
{
pagination.setNext(new Integer(paginatedList.getPageNumber() + 1));
pagination.setLast(new Integer(pageCount));
}
// format for previous/next banner
String bannerFormat;
if (pagination.isOnePage())
{
bannerFormat = this.properties.getPagingBannerOnePage();
}
else if (pagination.isFirst())
{
bannerFormat = this.properties.getPagingBannerFirst();
}
else if (pagination.isLast())
{
bannerFormat = this.properties.getPagingBannerLast();
}
else
{
bannerFormat = this.properties.getPagingBannerFull();
}
return pagination.getFormattedBanner(this.properties.getPagingPageLink(), this.properties
.getPagingPageSelected(), this.properties.getPagingPageSeparator(), bannerFormat);
}
|