Added UI (JSF) and JPA to bayesian network entities.
[simdecs.git] / src / java / org / ufcspa / simdecs / bn / ui / util / PaginationHelper.java
1 package org.ufcspa.simdecs.bn.ui.util;
2
3 import javax.faces.model.DataModel;
4
5 public abstract class PaginationHelper {
6
7     private int pageSize;
8     private int page;
9
10     public PaginationHelper(int pageSize) {
11         this.pageSize = pageSize;
12     }
13
14     public abstract int getItemsCount();
15
16     public abstract DataModel createPageDataModel();
17
18     public int getPageFirstItem() {
19         return page * pageSize;
20     }
21
22     public int getPageLastItem() {
23         int i = getPageFirstItem() + pageSize - 1;
24         int count = getItemsCount() - 1;
25         if (i > count) {
26             i = count;
27         }
28         if (i < 0) {
29             i = 0;
30         }
31         return i;
32     }
33
34     public boolean isHasNextPage() {
35         return (page + 1) * pageSize + 1 <= getItemsCount();
36     }
37
38     public void nextPage() {
39         if (isHasNextPage()) {
40             page++;
41         }
42     }
43
44     public boolean isHasPreviousPage() {
45         return page > 0;
46     }
47
48     public void previousPage() {
49         if (isHasPreviousPage()) {
50             page--;
51         }
52     }
53
54     public int getPageSize() {
55         return pageSize;
56     }
57 }