⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cachedpager.java

📁 j2ee源码
💻 JAVA
字号:
/*
 * Created on 2005/11/13
 */
package com.leeman.common.web.ui;

import java.io.Serializable;

/**
 * @author dennis
 */
public class CachedPager implements Serializable{
	private int maxRecordReached;
	private int pageRecordStart;
	private int pageRecordSize;
	private int cacheRecordStart;
	private int cacheRecordSize;
	private int currentCacheRecordSize;
	private boolean isTotalRecordReached;
	
	public CachedPager(){
		maxRecordReached = 0;
		pageRecordStart = 0;
		pageRecordSize = 10;
		cacheRecordStart = 0;
		cacheRecordSize = 50;
		currentCacheRecordSize = 0;
		isTotalRecordReached = false;
	}
	
	public int calcCacheRecordStart()
	{
		int start = pageRecordStart - Math.round(cacheRecordSize / 2);
		if (start < 0)
		{
			start = 0;
		}
		return start;
	}
	
	public void setCachedRange(int cacheRecordStart, int currentCacheRecordSize){
		this.cacheRecordStart = cacheRecordStart;
		this.currentCacheRecordSize = currentCacheRecordSize;
		if (currentCacheRecordSize < cacheRecordSize){
			isTotalRecordReached = true;
		}
		if (cacheRecordStart + currentCacheRecordSize - 1 > maxRecordReached)
		{
			maxRecordReached = cacheRecordStart + currentCacheRecordSize - 1;
		}
	}
	
	public boolean isTotalRecordReached(){
		return isTotalRecordReached;
	}
			
	public boolean isNextPage(){
		if (isTotalRecordReached){ 
			return (maxRecordReached >= (pageRecordStart + pageRecordSize));  
		}
		else
		{
			return true;
		}
	}
	
	public int getPageEnd(){
		return (pageRecordStart + pageRecordSize > maxRecordReached)?(maxRecordReached):(pageRecordStart + pageRecordSize - 1);  
	}
	
	public boolean isPrevPage(){
		return pageRecordStart > 0;
	}
		
	public int getNextPageStart(){
		return pageRecordStart + pageRecordSize;
	}
	
	public boolean isNextPageCached(){
//		System.out.println("Next Page Start: " + getNextPageStart());
//		System.out.println("Cache Record Start Start: " + cacheRecordStart);
//		System.out.println("Cache Record Size: " + cacheRecordSize);
		
		return getNextPageStart() >= cacheRecordStart &&
			getNextPageStart() + pageRecordSize <= cacheRecordStart + cacheRecordSize;
	}
	
	public int getPrevPageStart(){
		if (pageRecordStart - pageRecordSize > 0){
			return pageRecordStart - pageRecordSize;
		}
		else{
			return 0;
		}
	}
	
	public boolean isPrevPageCached(){
		return getPrevPageStart() >= cacheRecordStart &&
			getPrevPageStart() + pageRecordSize <= cacheRecordStart + cacheRecordSize;
	}
	
	public int getCacheOffset(){
		return pageRecordStart - cacheRecordStart; 
	}
	
	/**
	 * @return
	 */
	public int getCacheRecordSize() {
		return cacheRecordSize;
	}

	/**
	 * @return
	 */
	public int getCacheRecordStart() {
		return cacheRecordStart;
	}

	/**
	 * @return
	 */
	public int getPageRecordSize() {
		return pageRecordSize;
	}

	/**
	 * @return
	 */
	public int getPageRecordStart() {
		return pageRecordStart;
	}
	/**
	 * @param i
	 */
	public void setCacheRecordSize(int i) {
		cacheRecordSize = i;
	}

	/**
	 * @param i
	 */
	public void setPageRecordSize(int i) {
		pageRecordSize = i;
	}

	/**
	 * @param i
	 */
	public void setPageRecordStart(int i) {
		pageRecordStart = i;
	}
	/**
	 * @return
	 */
	public int getCurrentCacheRecordSize() {
		return currentCacheRecordSize;
	}

	/**
	 * @return
	 */
	public int getMaxRecordReached() {
		return maxRecordReached;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -