Subversion Repositories general

Rev

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();
        }
}