/***************************************************************************** * * * This file is part of the tna framework distribution. * * Documentation and updates may be get from biaoping.yin the author of * * this framework * * * * Sun Public License Notice: * * * * The contents of this file are subject to the Sun Public License Version * * 1.0 (the "License"); you may not use this file except in compliance with * * the License. A copy of the License is available at http://www.sun.com * * * * The Original Code is tag. The Initial Developer of the Original * * Code is biaoping yin. Portions created by biaoping yin are Copyright * * (C) 2000. All Rights Reserved. * * * * GNU Public License Notice: * * * * Alternatively, the contents of this file may be used under the terms of * * the GNU Lesser General Public License (the "LGPL"), in which case the * * provisions of LGPL are applicable instead of those above. If you wish to * * allow use of your version of this file only under the terms of the LGPL * * and not to allow others to use your version of this file under the SPL, * * indicate your decision by deleting the provisions above and replace * * them with the notice and other provisions required by the LGPL. If you * * do not delete the provisions above, a recipient may use your version of * * this file under either the SPL or the LGPL. * * * * biaoping.yin (yin-bp@163.com) * * * *****************************************************************************/ package com.frameworkset.common.tag.pager.model; import com.frameworkset.common.tag.pager.DataInfo; /** * 保存所有的页面参数 * @author biaoping.yin * created on 2005-5-18 * version 1.0 */ public class PageInfo implements ModelObject{ /**每页显示的记录条数*/ protected int maxPageItems = 0; /**记录总数*/ protected long totalSize = 0; /**标识列表模式*/ protected boolean isList = false; /**数据库查询语句*/ protected String statement ; /**数据库链接池名称*/ protected String dbName; /**排序字段*/ protected String sortKey; /**页面查询参数*/ protected String queryString; /** * 分页时,控制是否导出全部数据, */ private boolean eportAll = false; /** * 定义页面上要显示的所有字段域 */ protected MetaDatas metaDatas = null; /**页号*/ private Object pageNumberInteger; /**页码*/ private long pageNumber; private DataInfo dataInfo ; /** * @return Returns the maxPageItem. */ public int getMaxPageItems() { return maxPageItems; } /** * @param maxPageItems The maxPageItem to set. */ public void setMaxPageItems(int maxPageItems) { } /** * @return Returns the totalSize. */ public long getTotalSize() { return totalSize; } /** * @param totalSize The totalSize to set. */ public void setTotalSize(long totalSize) { this.totalSize = totalSize; } /** * @return Returns the dbName. */ public String getDbName() { return dbName; } /** * @param dbName The dbName to set. */ public void setDbName(String dbName) { this.dbName = dbName; } /** * @return Returns the isList. */ public boolean isList() { return isList; } /** * @param isList The isList to set. */ public void setList(boolean isList) { this.isList = isList; } /** * @return Returns the sortKey. */ public String getSortKey() { return sortKey; } /** * @param sortKey The sortKey to set. */ public void setSortKey(String sortKey) { this.sortKey = sortKey; } /** * @return Returns the statement. */ public String getStatement() { return statement; } /** * @param statement The statement to set. */ public void setStatement(String statement) { this.statement = statement; } /** * @return Returns the eportAll. */ public boolean isEportAll() { return eportAll; } /** * @param eportAll The eportAll to set. */ public void setEportAll(boolean eportAll) { this.eportAll = eportAll; } /** * 功能说明:计算当前页面编号 * @param offset * @return long */ private final long pageNumber(long offset) { return (offset / maxPageItems) + (offset % maxPageItems == 0 ? 0 : 1); } /** * 获取页面总数量 * * @return int */ final long getPageCount() { return pageNumber(getTotalSize()); } /** * 获取最后一页的页码,比如共有5页,返回4。如果只有0页则返回0; * @return int */ public long getLastPageNumber() { return Math.max(0,getPageCount() - 1); } public void initContext(long offset,long totalsize) { this.totalSize = totalsize; try { offset = Math.max(0, offset); long newPageCount = pageNumber(offset); long lastPagerNumber = getLastPageNumber(); if(newPageCount > lastPagerNumber) { offset = lastPagerNumber * getMaxPageItems(); /** * 重新获取数据,如果数据库底层能够处理这个问题,将不需要重新获取数据 */ //setDataInfo(getData()); } //if (isOffset) 于2004/4/30注释 //itemCount = offset; } catch (NumberFormatException ignore) { ignore.printStackTrace(); } /** * 当前第几页,从零开始 */ pageNumber = pageNumber(offset); /** * 当前页码,从1开始 */ pageNumberInteger = new Long(1+pageNumber); } /** * @return Returns the pageNumber. */ public long getPageNumber() { return pageNumber; } /** * @param pageNumber The pageNumber to set. */ public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber; } /** * @return Returns the pageNumberInteger. */ public Object getPageNumberInteger() { return pageNumberInteger; } /** * @param pageNumberInteger The pageNumberInteger to set. */ public void setPageNumberInteger(Object pageNumberInteger) { this.pageNumberInteger = pageNumberInteger; } /** * @return Returns the queryString. */ public String getQueryString() { return queryString; } /** * @param queryString The queryString to set. */ public void setQueryString(String queryString) { this.queryString = queryString; } /** * @return Returns the dataInfo. */ public DataInfo getDataInfo() { return dataInfo; } /** * @param dataInfo The dataInfo to set. */ public void setDataInfo(DataInfo dataInfo) { this.dataInfo = dataInfo; } /** * @return Returns the metaDatas. */ public MetaDatas getMetaDatas() { return metaDatas; } /** * @param metaDatas The metaDatas to set. */ public void setMetaDatas(MetaDatas metaDatas) { this.metaDatas = metaDatas; } }