Commit | Line | Data |
---|---|---|
c547eea0 MS |
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 | } |