package com.page.util;

import java.util.List;

/**
 * 
 * 
 * @param <T>
 */
@SuppressWarnings({ "unused" })
public class PageUtil<T> {

 private int page;// 当前页,默认为1
 private int pageSize;// 每页数据量
 private int maxCount;// 数据总条数
 private int maxPage;// 最大页数
 private int ago;// 上一页
 private int after;// 下一页
 private List<T> list;// 封装数据的list集合T为泛型

 /**
  * 得到当前页
  * 
  * @return
  */
 public int getPage() {
  return page;
 }

 public void setPage(int page) {
  this.page = page;
 }

 /**
  * 每页数据条数
  * 
  * @return
  */
 public int getPageSize() {
  return pageSize;
 }

 public void setPageSize(int pageSize) {
  this.pageSize = pageSize;
 }

 /**
  * 数据总条数
  * 
  * @return
  */
 public int getMaxCount() {
  return maxCount;
 }

 public void setMaxCount(int maxCount) {
  this.maxCount = maxCount;
 }

 /**
  * 最大页数
  * 
  * @return
  */
 public int getMaxPage() {
  return maxCount % pageSize > 0 ? (maxCount / pageSize) + 1 : maxCount
    / pageSize < 1 ? 1 : maxCount / pageSize;
 }

 public void setMaxPage(int maxPage) {
  this.maxPage = maxPage;
 }

 /**
  * 上一页
  * 
  * @return
  */
 public int getAgo() {
  return page - 1 < 1 ? 1 : page - 1;
 }

 public void setAgo(int ago) {
  this.ago = ago;
 }

 /**
  * 下一页
  * 
  * @return
  */
 public int getAfter() {
  return page + 1 > this.getMaxPage() ? this.getMaxPage() : page + 1;
 }

 public void setAfter(int after) {
  this.after = after;
 }

 /**
  * 封装的list集合
  * 
  * @return
  */
 public List<T> getList() {
  return list;
 }

 public void setList(List<T> list) {
  this.list = list;
 }

 /**
  * 判断是否是首页
  * 
  * @return
  */
 public boolean isFirst() {
  return (this.getPage() == 1) ? true : false;
 }

 /**
  * 判断是否是最后一页
  * 
  * @return
  */
 public boolean isLast() {
  return (this.getPage() == this.getMaxPage()) ? true : false;
 }

 /**
  * 客户端显示的工具条
  */
 public String getToolBar(String url) {
  StringBuffer sub = new StringBuffer();
  String temp;

  // 用于判断url中是否存在?
  if (url.indexOf("?") == -1) {
   temp = "?";
  } else {
   temp = "&";
  }

  sub.append("<script type=\"text/javascript\">"
    + "function goPage(page) {" + "var fom = document.forms[0];"
    + "fom.action  = \"" + url + temp + "page=\"+ page;"
    + "fom.submit();}");
  sub.append("</script>");
  // sub.append("<form method='post' name='frmPage' action='" + url +
  // "'> ");
  sub.append("<p align='right' id='page'>");
  sub.append("<span style='font-size: 14px; font-weight: bold;color:red'>");

  sub.append("共&nbsp;" + this.getMaxPage()
    + "&nbsp;页&nbsp;|&nbsp;当前第&nbsp;" + this.page
    + "&nbsp;页&nbsp;|&nbsp;");
  // 判断是否首页,如果是首页,首页和上一页有超链接
  if (isFirst()) {
   sub.append("首页&nbsp;&nbsp;上一页&nbsp;&nbsp;");
  } else {
   sub.append("<a href=\"javascript:goPage('1')\">首页</a>&nbsp;&nbsp;");
   sub.append("<a href=\"javascript:goPage('" + this.getAgo()
     + "')\">上一页</a>&nbsp;&nbsp;");
  }

  // 判断是否是最后一页

  if (isLast()) {
   sub.append("下一页&nbsp;&nbsp;尾页&nbsp;&nbsp;");

  } else {
     sub.append("<a href=\"javascript:goPage('" + this.getAfter()
     + "')\">下一页</a>&nbsp;&nbsp;");
   sub.append("<a href=\"javascript:goPage('" + this.getMaxPage()
     + "')\">尾页</a>&nbsp;&nbsp;");

  }

  // sub.append("&nbsp;共<b>" + this.getMaxCount() + "</b>条记录&nbsp;");

  sub.append("</span></p>");
  // sub.append("</form>");
  return sub.toString();
 }

}