基于对象适配器模式的分页组件
来源:互联网 发布:网络大专能考本科么 编辑:程序博客网 时间:2024/06/06 12:42
只包含源代码
package org.sl.mulitPage.bean;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 分页<br>
* 实现基础分页操作
* @serial
* @author sl
*
* @param <V> 任何值
*/
public class BaseMulitPage<V> implements BaseMultPageOperation{
private List<V> dataList = null;
private int pageDispRowSize = 0;
/**
* 构造一个多页对象
* @param dataList 所有记录
* @param _pageDispRowSize 每页允许显示的记录数
*/
public BaseMulitPage(V[] datas, int pageDispRowSize){
this.dataList = new ArrayList<V>(datas.length);
dataList.addAll(Arrays.asList(datas));
setPageDispRowSize(pageDispRowSize);
}
/**
* 构造一个多页对象
* @param dataList 所有记录
* @param _pageDispRowSize 每页允许显示的记录数
*/
public BaseMulitPage(List<V> dataList, int pageDispRowSize){
this.dataList = dataList;
setPageDispRowSize(pageDispRowSize);
}
/**
* 设置每页显示的记录数
* @param _pageDispRowSize
*/
public void setPageDispRowSize(int _pageDispRowSize){
if(_pageDispRowSize < 1){
throw new RuntimeException("page display row size < 1");
}
pageDispRowSize = _pageDispRowSize;
}
/**
* 返回每页允许显示的记录数<br>
* 此返回值不能<1
* @return 每页允许显示的记录数
*/
public int getPageDispRowSize(){
return pageDispRowSize;
}
/**
* 返回指定页的记录列表
* @param pageNumber 指定的页号<br>
* 此页号必需满足:1<=pageNumber && pageNumber<=getPageCount()<br>
* 首页:1 尾页:getPageCount()
*
* @return 记录列表,若此页号无法通过checkPageNumber()方法则返回null
*/
public List getPageNumberRows(int pageNumber){
int dataListSize = 0;
List<V> pageRowList = null;
int jumpRowCount = 0;
if(checkPageNumber(pageNumber)){
jumpRowCount = (pageNumber - 1) * pageDispRowSize ;
dataListSize = getRowSize();
pageRowList = new ArrayList<V>(pageDispRowSize);
for(int i = jumpRowCount, ii = 0; i < dataListSize && ii < pageDispRowSize; i++, ii++){
pageRowList.add(dataList.get(i));
}
}else{
// pageRowList = new ArrayList<V>(0);
}
return pageRowList;
}
/**
* 返回总页数<br>
* @return 总页数
*/
public int getPageCount(){
int dataListSize = 0;
int pageCount = 0;
if(null != dataList){
dataListSize = getRowSize();
if(dataListSize > pageDispRowSize){
pageCount = dataListSize / pageDispRowSize;
pageCount += dataListSize % pageDispRowSize > 0? 1 : 0;
}else{
pageCount = 1;
}
}else{
pageCount = 0;
}
return pageCount;
}
/**
* 返回总记录数
* @return
*/
public int getRowSize(){
return this.dataList.size();
}
/**
* 检查页号是否溢出<br>
* 1 <= pageNumber && pageNumber <= getPageCount()
* @param pageNumber 页号
* @return
*/
protected boolean checkPageNumber(int pageNumber){
return 1 <= pageNumber && pageNumber <= getPageCount();
}
}
--------------------
package org.sl.mulitPage.bean;
import java.util.List;
/**
* 基础分页操作
* @author sl
*
*/
public interface BaseMultPageOperation {
/**
* 返回每页允许显示的记录数
* @return 每页允许显示的记录数
*/
int getPageDispRowSize();
/**
* 返回指定页的记录列表
* @param pageNumber 指定的页号<br>
* 此页号必需满足:1<=pageNumber && pageNumber<=getPageCount()<br>
* 首页:1 尾页:getPageCount()
*
* @return 记录列表,若此页号无法通过checkPageNumber()方法则返回null
*/
List getPageNumberRows(int pageNumber);
/**
* 返回总页数<br>
* 1为第一页,此方法返回值为尾页
* @return 总页数
*/
int getPageCount();
/**
* 返回总记录数
* @return
*/
int getRowSize();
}
--------------------
package org.sl.mulitPage.bean;
import java.util.List;
/**
* 此类为MulitPage的扩展<br>
* 对象适配器模式
* @serial
* @author sl
* @param <V> 任何值
*/
public class MoreMultPage<V> implements MoreMultPageOperation{
private BaseMulitPage baseMulitPage = null;
@SuppressWarnings("unchecked")
public MoreMultPage(List<V> dataList, int pageDispRowSize) {
this.baseMulitPage = new BaseMulitPage(dataList, pageDispRowSize);
}
@SuppressWarnings("unchecked")
public MoreMultPage(V[] datas, int pageDispRowSize){
this.baseMulitPage = new BaseMulitPage(datas, pageDispRowSize);
}
/**
* 首页
*/
@SuppressWarnings("unchecked")
public List<V> getTopPageRow() {
return baseMulitPage.getPageNumberRows(1);
}
/**
* 上一页
*
* @param nowPageNumber
* @return
*/
@SuppressWarnings("unchecked")
public List<V> previousPage(int nowPageNumber) {
return baseMulitPage.getPageNumberRows(nowPageNumber - 1);
}
/**
* 下一页
*
* @param nowPageNumber
* @return
*/
@SuppressWarnings("unchecked")
public List<V> nextPage(int nowPageNumber) {
return baseMulitPage.getPageNumberRows(nowPageNumber + 1);
}
/**
* 尾页
*/
@SuppressWarnings("unchecked")
public List<V> getEndPageRow() {
return baseMulitPage.getPageNumberRows(baseMulitPage.getPageCount());
}
public int getPageCount() {
return baseMulitPage.getPageCount();
}
public int getPageDispRowSize() {
return baseMulitPage.getPageDispRowSize();
}
public List getPageNumberRows(int pageNumber) {
return baseMulitPage.getPageNumberRows(pageNumber);
}
public int getRowSize() {
return baseMulitPage.getRowSize();
}
}
----------------------------
package org.sl.mulitPage.bean;
import java.util.List;
/**
* 扩展分页操作
* @author sl
*
*/
public interface MoreMultPageOperation extends BaseMultPageOperation{
/**
* 首页
* @return
*/
List getTopPageRow();
/**
* 上一页
* @param nowPageNumber 当前页号
* @return
*/
List previousPage(int nowPageNumber);
/**
* 下一页
* @param nowPageNumber 当前页号
* @return
*/
List nextPage(int nowPageNumber);
/**
* 尾页
* @return
*/
List getEndPageRow();
}
-------------------------------
package org.sl.mulitPage.bean;
import java.util.List;
/**
* 抽象多页类<br>
* 子类一般实现此类方法便可以实现分页<br>
* 代理模式
* @author sl
*
* @param <V>
*/
public abstract class AbstractMultPage<V> implements MoreMultPageOperation {
protected List<V> dataList = null;
protected int pageDispRowSize = 0;
protected MoreMultPage moreMulitPage = null;
public AbstractMultPage(){
this.pageDispRowSize = 5;
}
public AbstractMultPage(int pageDispRowSize){
this.pageDispRowSize = pageDispRowSize;
}
@SuppressWarnings("unchecked")
protected MoreMultPage getMoreMultPage(){
if(null == dataList){
dataList = getRow();
}
if(moreMulitPage == null){
moreMulitPage = new MoreMultPage(dataList, pageDispRowSize);
}
return moreMulitPage;
}
protected abstract List<V> getRow();
public void setPageDispRowSize(int pageDispRowSize){
this.pageDispRowSize = pageDispRowSize;
}
public List getEndPageRow() {
return getMoreMultPage().getEndPageRow();
}
@SuppressWarnings("unchecked")
public List<V> getTopPageRow() {
return getMoreMultPage().getTopPageRow();
}
@SuppressWarnings("unchecked")
public List<V> nextPage(int nowPageNumber) {
return getMoreMultPage().nextPage(nowPageNumber);
}
@SuppressWarnings("unchecked")
public List<V> previousPage(int nowPageNumber) {
return getMoreMultPage().previousPage(nowPageNumber);
}
public int getPageCount() {
return getMoreMultPage().getPageCount();
}
public int getPageDispRowSize() {
return getMoreMultPage().getPageDispRowSize();
}
@SuppressWarnings("unchecked")
public List<V> getPageNumberRows(int pageNumber) {
return getMoreMultPage().getPageNumberRows(pageNumber);
}
public int getRowSize() {
return getMoreMultPage().getRowSize();
}
}
package org.sl.mulitPage.bean;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 分页<br>
* 实现基础分页操作
* @serial
* @author sl
*
* @param <V> 任何值
*/
public class BaseMulitPage<V> implements BaseMultPageOperation{
private List<V> dataList = null;
private int pageDispRowSize = 0;
/**
* 构造一个多页对象
* @param dataList 所有记录
* @param _pageDispRowSize 每页允许显示的记录数
*/
public BaseMulitPage(V[] datas, int pageDispRowSize){
this.dataList = new ArrayList<V>(datas.length);
dataList.addAll(Arrays.asList(datas));
setPageDispRowSize(pageDispRowSize);
}
/**
* 构造一个多页对象
* @param dataList 所有记录
* @param _pageDispRowSize 每页允许显示的记录数
*/
public BaseMulitPage(List<V> dataList, int pageDispRowSize){
this.dataList = dataList;
setPageDispRowSize(pageDispRowSize);
}
/**
* 设置每页显示的记录数
* @param _pageDispRowSize
*/
public void setPageDispRowSize(int _pageDispRowSize){
if(_pageDispRowSize < 1){
throw new RuntimeException("page display row size < 1");
}
pageDispRowSize = _pageDispRowSize;
}
/**
* 返回每页允许显示的记录数<br>
* 此返回值不能<1
* @return 每页允许显示的记录数
*/
public int getPageDispRowSize(){
return pageDispRowSize;
}
/**
* 返回指定页的记录列表
* @param pageNumber 指定的页号<br>
* 此页号必需满足:1<=pageNumber && pageNumber<=getPageCount()<br>
* 首页:1 尾页:getPageCount()
*
* @return 记录列表,若此页号无法通过checkPageNumber()方法则返回null
*/
public List getPageNumberRows(int pageNumber){
int dataListSize = 0;
List<V> pageRowList = null;
int jumpRowCount = 0;
if(checkPageNumber(pageNumber)){
jumpRowCount = (pageNumber - 1) * pageDispRowSize ;
dataListSize = getRowSize();
pageRowList = new ArrayList<V>(pageDispRowSize);
for(int i = jumpRowCount, ii = 0; i < dataListSize && ii < pageDispRowSize; i++, ii++){
pageRowList.add(dataList.get(i));
}
}else{
// pageRowList = new ArrayList<V>(0);
}
return pageRowList;
}
/**
* 返回总页数<br>
* @return 总页数
*/
public int getPageCount(){
int dataListSize = 0;
int pageCount = 0;
if(null != dataList){
dataListSize = getRowSize();
if(dataListSize > pageDispRowSize){
pageCount = dataListSize / pageDispRowSize;
pageCount += dataListSize % pageDispRowSize > 0? 1 : 0;
}else{
pageCount = 1;
}
}else{
pageCount = 0;
}
return pageCount;
}
/**
* 返回总记录数
* @return
*/
public int getRowSize(){
return this.dataList.size();
}
/**
* 检查页号是否溢出<br>
* 1 <= pageNumber && pageNumber <= getPageCount()
* @param pageNumber 页号
* @return
*/
protected boolean checkPageNumber(int pageNumber){
return 1 <= pageNumber && pageNumber <= getPageCount();
}
}
--------------------
package org.sl.mulitPage.bean;
import java.util.List;
/**
* 基础分页操作
* @author sl
*
*/
public interface BaseMultPageOperation {
/**
* 返回每页允许显示的记录数
* @return 每页允许显示的记录数
*/
int getPageDispRowSize();
/**
* 返回指定页的记录列表
* @param pageNumber 指定的页号<br>
* 此页号必需满足:1<=pageNumber && pageNumber<=getPageCount()<br>
* 首页:1 尾页:getPageCount()
*
* @return 记录列表,若此页号无法通过checkPageNumber()方法则返回null
*/
List getPageNumberRows(int pageNumber);
/**
* 返回总页数<br>
* 1为第一页,此方法返回值为尾页
* @return 总页数
*/
int getPageCount();
/**
* 返回总记录数
* @return
*/
int getRowSize();
}
--------------------
package org.sl.mulitPage.bean;
import java.util.List;
/**
* 此类为MulitPage的扩展<br>
* 对象适配器模式
* @serial
* @author sl
* @param <V> 任何值
*/
public class MoreMultPage<V> implements MoreMultPageOperation{
private BaseMulitPage baseMulitPage = null;
@SuppressWarnings("unchecked")
public MoreMultPage(List<V> dataList, int pageDispRowSize) {
this.baseMulitPage = new BaseMulitPage(dataList, pageDispRowSize);
}
@SuppressWarnings("unchecked")
public MoreMultPage(V[] datas, int pageDispRowSize){
this.baseMulitPage = new BaseMulitPage(datas, pageDispRowSize);
}
/**
* 首页
*/
@SuppressWarnings("unchecked")
public List<V> getTopPageRow() {
return baseMulitPage.getPageNumberRows(1);
}
/**
* 上一页
*
* @param nowPageNumber
* @return
*/
@SuppressWarnings("unchecked")
public List<V> previousPage(int nowPageNumber) {
return baseMulitPage.getPageNumberRows(nowPageNumber - 1);
}
/**
* 下一页
*
* @param nowPageNumber
* @return
*/
@SuppressWarnings("unchecked")
public List<V> nextPage(int nowPageNumber) {
return baseMulitPage.getPageNumberRows(nowPageNumber + 1);
}
/**
* 尾页
*/
@SuppressWarnings("unchecked")
public List<V> getEndPageRow() {
return baseMulitPage.getPageNumberRows(baseMulitPage.getPageCount());
}
public int getPageCount() {
return baseMulitPage.getPageCount();
}
public int getPageDispRowSize() {
return baseMulitPage.getPageDispRowSize();
}
public List getPageNumberRows(int pageNumber) {
return baseMulitPage.getPageNumberRows(pageNumber);
}
public int getRowSize() {
return baseMulitPage.getRowSize();
}
}
----------------------------
package org.sl.mulitPage.bean;
import java.util.List;
/**
* 扩展分页操作
* @author sl
*
*/
public interface MoreMultPageOperation extends BaseMultPageOperation{
/**
* 首页
* @return
*/
List getTopPageRow();
/**
* 上一页
* @param nowPageNumber 当前页号
* @return
*/
List previousPage(int nowPageNumber);
/**
* 下一页
* @param nowPageNumber 当前页号
* @return
*/
List nextPage(int nowPageNumber);
/**
* 尾页
* @return
*/
List getEndPageRow();
}
-------------------------------
package org.sl.mulitPage.bean;
import java.util.List;
/**
* 抽象多页类<br>
* 子类一般实现此类方法便可以实现分页<br>
* 代理模式
* @author sl
*
* @param <V>
*/
public abstract class AbstractMultPage<V> implements MoreMultPageOperation {
protected List<V> dataList = null;
protected int pageDispRowSize = 0;
protected MoreMultPage moreMulitPage = null;
public AbstractMultPage(){
this.pageDispRowSize = 5;
}
public AbstractMultPage(int pageDispRowSize){
this.pageDispRowSize = pageDispRowSize;
}
@SuppressWarnings("unchecked")
protected MoreMultPage getMoreMultPage(){
if(null == dataList){
dataList = getRow();
}
if(moreMulitPage == null){
moreMulitPage = new MoreMultPage(dataList, pageDispRowSize);
}
return moreMulitPage;
}
protected abstract List<V> getRow();
public void setPageDispRowSize(int pageDispRowSize){
this.pageDispRowSize = pageDispRowSize;
}
public List getEndPageRow() {
return getMoreMultPage().getEndPageRow();
}
@SuppressWarnings("unchecked")
public List<V> getTopPageRow() {
return getMoreMultPage().getTopPageRow();
}
@SuppressWarnings("unchecked")
public List<V> nextPage(int nowPageNumber) {
return getMoreMultPage().nextPage(nowPageNumber);
}
@SuppressWarnings("unchecked")
public List<V> previousPage(int nowPageNumber) {
return getMoreMultPage().previousPage(nowPageNumber);
}
public int getPageCount() {
return getMoreMultPage().getPageCount();
}
public int getPageDispRowSize() {
return getMoreMultPage().getPageDispRowSize();
}
@SuppressWarnings("unchecked")
public List<V> getPageNumberRows(int pageNumber) {
return getMoreMultPage().getPageNumberRows(pageNumber);
}
public int getRowSize() {
return getMoreMultPage().getRowSize();
}
}
- 基于对象适配器模式的分页组件
- 基于面向对象的分页组件
- 基于SmartGwt的分页组件
- 基于velocity的分页组件
- 适配器模式(对象适配器)
- 适配器模式-对象适配器
- 适配器模式之类的适配器模式与对象的适配器模式
- 适配器模式之对象适配器
- 基于bootstrap pagination 的分页组件
- 基于Vue.js的表格分页组件
- 基于Vue2的分页按钮组件
- 基于vue2的table分页组件
- 基于vue2.0的一个分页组件
- 结构型模式之 类的适配器、对象适配器 笔记
- 适配器模式:类适配器和对象适配器
- 对象适配器模式相关
- php 对象适配器模式
- 对象适配器模式
- Asp.net 数据采集基类(远程抓取,分解,保存,匹配)
- 12月22日——培训第28天
- 查找mp3等url的正则表达式
- 编程
- 实现网页背景变暗,显示信息提示效果!
- 基于对象适配器模式的分页组件
- 开设google板块
- Cookie使用说明
- 学习模式(三)
- Oracle 10g特性之虚拟专用数据库
- MySQL的“SET NAMES x”字符集问题分析
- 12月23日——培训第29天
- div慢慢展开的效果
- J2EE中的用户权限模型(RBAC)的设计