KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > javabb > infra > Paging


1 package org.javabb.infra;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.List JavaDoc;
5 import java.util.Map JavaDoc;
6
7 import com.opensymphony.xwork.ActionContext;
8
9 /*
10  * Copyright 2004 JavaFree.org
11  *
12  * Licensed under the Apache License, Version 2.0 (the "License");
13  * you may not use this file except in compliance with the License.
14  * You may obtain a copy of the License at
15  *
16  * http://www.apache.org/licenses/LICENSE-2.0
17  *
18  * Unless required by applicable law or agreed to in writing, software
19  * distributed under the License is distributed on an "AS IS" BASIS,
20  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  * See the License for the specific language governing permissions and
22  * limitations under the License.
23  */

24
25 /**
26  * $Id: Paging.java,v 1.7.10.2 2006/04/17 17:47:16 daltoncamargo Exp $
27  * @author Dalton Camargo - <a HREF="mailto:dalton@javabb.org">dalton@javabb.org </a> <br>
28  */

29 public class Paging {
30     /**
31      * @param recordsPerPage - Registros por página
32      * @param nroRecords - Número total de registros
33      * @return Retorna o número de páginas
34      */

35     public static int getNroPages(long recordsPerPage, long nroRecords) {
36         double pages = Math.ceil((double) nroRecords / recordsPerPage);
37
38         return (int) Math.round(pages);
39     }
40
41     /**
42      * @param pageNumber
43      * @param totalRows
44      */

45     public static void setPageList(long pageNumber, long totalRows) {
46         ArrayList JavaDoc pages = new ArrayList JavaDoc();
47
48         if ((pageNumber - 3) > 0) {
49             for (long i = (pageNumber - 3); i < pageNumber; i++) {
50                 pages.add("" + i);
51             }
52         } else {
53             for (long i = 1; i < pageNumber; i++) {
54                 pages.add("" + i);
55             }
56         }
57
58         if ((pageNumber + 3) <= totalRows) {
59             for (long i = pageNumber; i <= (pageNumber + 3); i++) {
60                 pages.add("" + i);
61             }
62         } else {
63             for (long i = pageNumber; i <= totalRows; i++) {
64                 pages.add("" + i);
65             }
66         }
67
68         // Insere o conteúdo das páginas na sessão
69
ActionContext ctx = ActionContext.getContext();
70         Map JavaDoc session = ctx.getSession();
71         session.put("pages", pages);
72
73         // Insere a última página na sessão
74
session.put("last_page", new Integer JavaDoc((int) totalRows));
75     }
76
77     /**
78      * Create a list of six pages, when the number of pages will be greater that ten
79      * @param nroPages
80      * @return list
81      */

82     public static List JavaDoc createQuickPaging(int nroPages) {
83         ArrayList JavaDoc pages = new ArrayList JavaDoc();
84         if (nroPages >= 10) {
85             pages.add(new Integer JavaDoc(1));
86             pages.add(new Integer JavaDoc(2));
87             pages.add(new Integer JavaDoc(3));
88             pages.add("...");
89             pages.add(new Integer JavaDoc(nroPages - 2));
90             pages.add(new Integer JavaDoc(nroPages - 1));
91             pages.add(new Integer JavaDoc(nroPages));
92         } else {
93             for (int i = 1; i <= nroPages; i++) {
94                 pages.add(new Integer JavaDoc(i));
95             }
96         }
97         return pages;
98     }
99 }
100
Popular Tags