Rev 1027 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package ak.hostadmiral.util;
public class CollectionInfo
{
/** total number of rows in list */
private int size;
public int getSize()
{
return size;
}
public void setSize(int size)
{
this.size = size;
recalc();
}
/** current selected page */
private int currentPage;
protected int normPage(int page)
{
if(totalPages <= 0 || page <= 0)
return 0;
else if(page < totalPages)
return page;
else
return (totalPages - 1);
}
public int getCurrentPage()
{
return normPage(currentPage);
}
public void setCurrentPage(int currentPage)
{
this.currentPage = currentPage;
}
/** number of rows on one page */
private int rowsPerPage;
public int getRowsPerPage()
{
return rowsPerPage;
}
public void setRowsPerPage(int rowsPerPage)
{
this.rowsPerPage = rowsPerPage;
recalc();
}
/** total number of pages */
private int totalPages;
public int getTotalPages()
{
return totalPages;
}
public int getFirstPage()
{
return 0;
}
public int getLastPage()
{
return normPage(totalPages - 1);
}
public int getPrevPage()
{
return normPage(currentPage - 1);
}
public int getNextPage()
{
return normPage(currentPage + 1);
}
protected void recalc()
{
if(rowsPerPage > 0)
totalPages = (size + rowsPerPage - 1) / rowsPerPage;
}
public void init(int size, int currentPage, int rowsPerPage)
{
this.size = size;
this.currentPage = currentPage;
this.rowsPerPage = rowsPerPage;
recalc();
}
}