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

📄 pagemodel.java

📁 j2me手机图书阅读器
💻 JAVA
字号:
/********************************************************************
 * 
 * 
 * 
 ********************************************************************/
package org.pook.model;

import java.util.Vector;

import org.pook.log.Log;
 

/**
 * <b>类名:asd.java</b> </br> 编写日期: 2006-6-23 <br/> 程序功能描述:数据分页类,处理数据量过多时候的分类
 * <br/> Demo: <br/> Bug: <br/>
 * 
 * 程序变更日期 :<br/> 变更作者 :<br/> 变更说明 :<br/>
 * 
 * @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
 */
public class PageModel {
	Log log = Log.getLog("PageModel");

	public int page = 1; // 当前页

	public int totalPages = 0; // 总页数

	public int pageRecorders;// 每页5条数据

	public int totalRows = 0; // 总数据数

	public int pageStartRow = 0;// 每页的起始数

	public int pageEndRow = 0; // 每页显示数据的终止数

	public boolean hasNextPage = false; // 是否有下一页

	public boolean hasPreviousPage = false; // 是否有前一页

	public Vector vector;

	// private Iterator it;

	public PageModel(Vector vector, int pageRecorders) {
		init(vector, pageRecorders);// 通过对象集,记录总数划分
	}

	/**
	 * 
	 */
	public PageModel() {
	}

	/**
	 * @param vector
	 * @param pageRecorders
	 */
	public void init(Vector _vector, int pageRecorders) {
		this.pageRecorders = pageRecorders;
		this.vector = _vector;

		totalRows = vector.size();
		// log.debug("sdfds="+ vector.size());
		// it = vector.iterator();
		hasPreviousPage = false;
		if ((totalRows % pageRecorders) == 0) {
			totalPages = totalRows / pageRecorders;
		} else {
			totalPages = totalRows / pageRecorders + 1;
		}

		if (page >= totalPages) {
			hasNextPage = false;
		} else {
			hasNextPage = true;
		}

		if (totalRows < pageRecorders) {
			this.pageStartRow = 0;
			this.pageEndRow = totalRows;
		} else {
			this.pageStartRow = 0;
			this.pageEndRow = pageRecorders;
		}
	}

	/**
	 * @return Returns the hasNextPage.
	 */
	public boolean isHasNextPage() {
		return hasNextPage;
	}

	/**
	 * @return Returns the hasPreviousPage.
	 */
	public boolean isHasPreviousPage() {
		return hasPreviousPage;
	}

	// 判断要不要分页
	public boolean isNext() {
		return vector.size() > pageRecorders;
	}

	public String toString(int temp) {
		String str = Integer.toString(temp);
		return str;
	}

	public void desc() {

		String desc = " 共有数据数:" + this.totalRows +

		" 共有页数: " + this.totalPages +

		" 当前页数为:" + this.page +

		" 是否有前一页: " + this.isHasPreviousPage() +

		" 是否有下一页:" + this.isHasNextPage() +

		" 开始行数:" + this.pageStartRow +

		" 终止行数:" + this.pageEndRow;
		log.debug(desc);
	}

	public Vector getNextPage() {
		page = page + 1;

		disposePage();

		System.out.println("用户凋用的是第" + page + "页");
		this.desc();
		return getObjects(page);
	}

	/**
	 * 处理分页
	 */
	private void disposePage() {
		if ((page - 1) > 0) {
			hasPreviousPage = true;
		} else {
			hasPreviousPage = false;
		}

		if (page >= totalPages) {
			hasNextPage = false;
		} else {
			hasNextPage = true;
		}
	}

	public Vector getPreviousPage() {

		page = page - 1;

		if ((page - 1) > 0) {
			hasPreviousPage = true;
		} else {
			hasPreviousPage = false;
		}
		if (page >= totalPages) {
			hasNextPage = false;
		} else {
			hasNextPage = true;
		}
		this.desc();
		return getObjects(page);
	}

	/**
	 * 获取第几页的内容
	 * 
	 * @param page
	 * @return
	 */
	public Vector getObjects(int page) {
		if (page == 0)
			this.page = 1;
		else
			this.page = page;
		this.disposePage(); // 处理分页

		if (page * pageRecorders < totalRows) {// 判断是否为最后一页
			pageEndRow = page * pageRecorders;
			pageStartRow = pageEndRow - pageRecorders;
		} else {
			pageEndRow = totalRows;
			pageStartRow = pageRecorders * (totalPages - 1);
		}

		Vector objects = new Vector();
		if (!vector.isEmpty()) {
			for (int i = pageStartRow; i < pageEndRow; i++)
				objects.addElement(vector.elementAt(i));
		}
		//this.desc();
		return objects;
	}

	public Vector getFistPage() {
		Vector objects = new Vector();
		if (this.isNext()) {
			for (int i = pageStartRow; i < pageEndRow; i++)
				objects.addElement(vector.elementAt(i));
			return objects;
		} else {
			return vector;
		}
	}

	/**
	 * @return 返回 vector。
	 */
	public Vector getVector() {
		return vector;
	}

	/**
	 * @param vector
	 *            要设置的 vector。
	 */
	public void setVector(Vector vector) {
		this.vector = vector;
	}

	/**
	 * @param totalRows
	 *            要设置的 totalRows。
	 */
	public void setTotalRows(int totalRows) {
		this.totalRows = totalRows;
	}

	public int size() {
		return this.totalRows;
	}
}

⌨️ 快捷键说明

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