Helper class for generation of paging banners.
| Method from org.displaytag.pagination.Pagination Detail: |
public void addPage(int number,
boolean isSelected) {
if (log.isDebugEnabled())
{
log.debug("adding page " + number);
}
this.pages.add(new NumberedPage(number, isSelected));
}
|
public Integer getFirst() {
return this.firstPage;
}
Gets the number of the first page. |
public String getFormattedBanner(String numberedPageFormat,
String numberedPageSelectedFormat,
String numberedPageSeparator,
String fullBanner) {
StringBuffer buffer = new StringBuffer(100);
// numbered page list
Iterator pageIterator = this.pages.iterator();
while (pageIterator.hasNext())
{
// get NumberedPage from iterator
NumberedPage page = (NumberedPage) pageIterator.next();
Integer pageNumber = new Integer(page.getNumber());
String urlString = ((Href) this.href.clone()).addParameter(this.pageParam, pageNumber).toString();
// needed for MessageFormat : page number/url
Object[] pageObjects = {pageNumber, urlString};
// selected page need a different formatter
if (page.getSelected())
{
buffer.append(MessageFormat.format(numberedPageSelectedFormat, pageObjects));
}
else
{
buffer.append(MessageFormat.format(numberedPageFormat, pageObjects));
}
// next? add page separator
if (pageIterator.hasNext())
{
buffer.append(numberedPageSeparator);
}
}
// String for numbered pages
String numberedPageString = buffer.toString();
// Object array
// {0} full String for numbered pages
// {1} first page url
// {2} previous page url
// {3} next page url
// {4} last page url
// {5} current page
// {6} total pages
Object[] pageObjects = {
numberedPageString,
((Href) this.href.clone()).addParameter(this.pageParam, getFirst()),
((Href) this.href.clone()).addParameter(this.pageParam, getPrevious()),
((Href) this.href.clone()).addParameter(this.pageParam, getNext()),
((Href) this.href.clone()).addParameter(this.pageParam, getLast()),
this.currentPage,
this.isLast() ? this.currentPage : this.lastPage}; // this.lastPage is null if the last page is displayed
// return the full banner
return MessageFormat.format(fullBanner, pageObjects);
}
Returns the appropriate banner for the pagination. |
public Integer getLast() {
return this.lastPage;
}
Gets the number of the last page. |
public Integer getNext() {
return this.nextPage;
}
Gets the number of the next page. |
public Integer getPrevious() {
return this.previousPage;
}
Gets the number of the previous page. |
public boolean isFirst() {
return this.firstPage == null;
}
|
public boolean isLast() {
return this.lastPage == null;
}
|
public boolean isOnePage() {
return (this.pages == null) || this.pages.size() < = 1;
}
|
public void setCurrent(Integer current) {
this.currentPage = current;
}
Sets the number of the current page. |
public void setFirst(Integer first) {
this.firstPage = first;
}
Sets the number of the first page. |
public void setLast(Integer last) {
this.lastPage = last;
}
Sets the number of the last page. |
public void setNext(Integer next) {
this.nextPage = next;
}
Sets the number of the next page. |
public void setPrevious(Integer previous) {
this.previousPage = previous;
}
Sets the number of the previous page. |
public String toString() {
return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE) //
.append("firstPage", this.firstPage) //$NON-NLS-1$
.append("lastPage", this.lastPage) //$NON-NLS-1$
.append("currentPage", this.currentPage) //$NON-NLS-1$
.append("nextPage", this.nextPage) //$NON-NLS-1$
.append("previousPage", this.previousPage) //$NON-NLS-1$
.append("pages", this.pages) //$NON-NLS-1$
.append("href", this.href) //$NON-NLS-1$
.append("pageParam", this.pageParam) //$NON-NLS-1$
.toString();
}
|