Author: tchemit Date: 2012-01-16 15:39:04 +0100 (Mon, 16 Jan 2012) New Revision: 2279 Url: http://nuiton.org/repositories/revision/nuiton-utils/2279 Log: Evolution #1907: Introduce a PagerBean in PagerUtil Modified: trunk/nuiton-utils/src/main/java/org/nuiton/util/PagerUtil.java Modified: trunk/nuiton-utils/src/main/java/org/nuiton/util/PagerUtil.java =================================================================== --- trunk/nuiton-utils/src/main/java/org/nuiton/util/PagerUtil.java 2012-01-16 11:33:11 UTC (rev 2278) +++ trunk/nuiton-utils/src/main/java/org/nuiton/util/PagerUtil.java 2012-01-16 14:39:04 UTC (rev 2279) @@ -26,6 +26,7 @@ import org.apache.commons.lang3.tuple.Pair; +import java.io.Serializable; import java.util.ArrayList; import java.util.List; @@ -106,4 +107,103 @@ return result; } + + /** + * Given a pagerBean, compute his {@link PagerBean#recordStartIndex}, + * {@link PagerBean#recordEndIndex} and {@link PagerBean#pagesNumber}. + * + * @param bean the pagerBean to fill + * @since 2.4.3 + */ + public static void computeRecordIndexesAndPagesNumber(PagerBean bean) { + int records = bean.getRecords(); + int pageSize = bean.getPageSize(); + + Pair<Integer, Integer> pageBound = + getPageBound(records, bean.getPageIndex(), pageSize); + bean.setRecordStartIndex(pageBound.getLeft()); + bean.setRecordEndIndex(pageBound.getRight()); + bean.setPagesNumber(getTotalPage(records, pageSize)); + } + + public static PagerBean newPagerBean() { + return new PagerBean(); + } + + /** + * Pager bean containing all internal states of a pager. + * + * @since 2.4.3 + */ + public static class PagerBean implements Serializable { + + private static final long serialVersionUID = 1L; + + /** Number of records (says numbers of rows displayable. */ + protected int records; + + /** Index of the first record in this page. */ + protected int recordStartIndex; + + /** Index of the last record in this page. */ + protected int recordEndIndex; + + /** Index of the page. */ + protected int pageIndex; + + /** Page size, says number of records in a page. */ + protected int pageSize; + + /** Number of pages. */ + protected int pagesNumber; + + public int getRecords() { + return records; + } + + public int getRecordStartIndex() { + return recordStartIndex; + } + + public int getRecordEndIndex() { + return recordEndIndex; + } + + public int getPageIndex() { + return pageIndex; + } + + public int getPageSize() { + return pageSize; + } + + public int getPagesNumber() { + return pagesNumber; + } + + public void setRecords(int records) { + this.records = records; + } + + public void setRecordStartIndex(int recordStartIndex) { + this.recordStartIndex = recordStartIndex; + } + + public void setRecordEndIndex(int recordEndIndex) { + this.recordEndIndex = recordEndIndex; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public void setPagesNumber(int pagesNumber) { + this.pagesNumber = pagesNumber; + } + + } }
participants (1)
-
tchemit@users.nuiton.org