package com.java7.service;
/*
*
* 该类用于商品展示进行分页
* */
import java.util.ArrayList;
import java.util.List;
public class PageService {
private static PageService service=null;
private ArrayList<Integer> list=new ArrayList<Integer>();
private int pageSize=0;
private ArrayList al=null;
//单例
public static PageService getService()
{
if(service==null){
service=new PageService();
}
return service;
}
public ArrayList getAl() {
return al;
}
public void setAl(ArrayList al) {
this.al = al;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
///设置访问将要访问的商品的类别
public void setCatecoryidNum(int categoryid){
list.add(categoryid);
}
///获取商品访问的类别
public int getCatecoryidNum(){
return (Integer)list.get((list.size()-1));
}
public int getTotal(){//该方法用来求总共的页数
int total=al.size()/pageSize;
int e=al.size()%pageSize;
if(e!=0){
total=total+1;
}
return total;
}
public int getPagenum(int numstr){//该发法用来返回要打开的页数
int pageNum=0;
int totalPage=getTotal();
if(numstr<=0){
pageNum=1;
return pageNum;
}else if(pageNum>totalPage){
pageNum=totalPage;
return pageNum;
}else{
pageNum=numstr;
return pageNum;
}
}
public ArrayList getPage(int pageNumber){//该方法根据给定的页号得到该页的所有记录信息存入数组
int total=getTotal();
ArrayList list=new ArrayList();
if(pageNumber>=total){//如果所给定的页号大于或等于最大页号,则返回最后几条记录
for(int i=al.size()-1;i>(al.size()-1-pageSize);i--){
list.add(al.get(i));
}
}
else if(pageNumber<=1){//所给定的页号小于1
for(int i=0;i<pageSize;i++){
list.add(al.get(i));
}
}
else{//所给定的页号在1和最大值之间
for(int i=(pageNumber-1)*pageSize;i<pageNumber*pageSize;i++){
list.add(al.get(i));
}
}
return list;
}
}