package com.walker.db.page; import com.walker.infrastructure.utils.StringUtils; import java.io.Serializable; import java.util.List; /** * UI层使用的分页对象

* @author shikeying * * @param */ public class PagerView implements Serializable{ /** * */ private static final long serialVersionUID = -7447015048488224271L; private List datas; private int currentPage = Pager.DEFAULT_PAGE_INDEX; private int pageSize = Pager.DEFAULT_PAGE_SIZE; private int pageCount = Pager.DEFAULT_PAGE_COUNT; private long totalRows = Pager.DEFAULT_TOTAL_ROWS; /* 点击分页按钮执行的JS方法 */ private String jsMethod; /* 本次分页的索引值,即:本页第一条记录索引值,从0开始计算 */ private long index = 0; public PagerView(Pager pager, String jsMethod){ if(StringUtils.isNotEmpty(jsMethod)) this.jsMethod = jsMethod; setPager(pager); } public PagerView(String jsMethod){ // if(currentPage > 0 ) // this.currentPage = currentPage; if(StringUtils.isNotEmpty(jsMethod)) this.jsMethod = jsMethod; } @SuppressWarnings("unchecked") public void setPager(Pager pager){ if(pager == null) throw new IllegalArgumentException("Please use subclass of '" + Pager.class.getName() + "'."); setCurrentPage(pager.getPageIndex()); setTotalRows(pager.getTotalRows()); setPageSize(pager.getPageSize()); setPageCount(pager.getPageCount()); setIndex(pager.getFirstRowIndexInPage()); if(pager instanceof GenericPager){ GenericPager genericPager = (GenericPager)pager; setDatas(genericPager.getDatas()); } // else if(pager instanceof MapPager){ // MapPager mapPager = (MapPager)pager; // setDatas(mapPager.getDatas()); // } else throw new IllegalArgumentException("unknown Pager: " + pager.getClass().getName()); } public List getDatas() { return datas; } public int getCurrentPage() { return currentPage; } public int getPageSize() { return pageSize; } public int getPageCount() { return pageCount; } public long getTotalRows() { return totalRows; } public String getJsMethod() { return jsMethod; } /** * 返回当前页第一条记录的索引值 * @return */ public long getIndex(){ return index; } private void setCurrentPage(int currentPage){ if(currentPage >= Pager.DEFAULT_PAGE_INDEX) this.currentPage = currentPage; else throw new IllegalArgumentException("currentPage should be >= " + Pager.DEFAULT_PAGE_INDEX); } private void setTotalRows(long totalRows){ if(totalRows >= 0){ this.totalRows = totalRows; } else throw new IllegalArgumentException("totalRows should be more than or equals '0'."); } private void setPageSize(int pageSize){ if(pageSize >= Pager.DEFAULT_PAGE_SIZE){ this.pageSize = pageSize; } else throw new IllegalArgumentException("pageSize should be >= " + Pager.DEFAULT_PAGE_SIZE); } private void setPageCount(int pageCount){ if(pageCount >= Pager.DEFAULT_PAGE_COUNT){ this.pageCount = pageCount; } else throw new IllegalArgumentException("pageCount should be >= " + Pager.DEFAULT_PAGE_COUNT); } private void setDatas(List datas){ this.datas = datas; } private void setIndex(long index){ if(index > 0){ this.index = index; } } }