PaginationView.java
3.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
package fi.codecrew.moya.web.cdiview;
import java.util.List;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.utilities.SearchQuery;
import fi.codecrew.moya.utilities.SearchResult;
import fi.codecrew.moya.utilities.jpa.ModelInterface;
public abstract class PaginationView<T extends ModelInterface> extends GenericCDIView implements IPaginationView {
private static final long serialVersionUID = -1226554409762987631L;
// protected Integer page = 0;
// protected Integer pagesize = 20;
private SearchQuery searchQuery = new SearchQuery();
protected Long resultcount = 0L;
private Long pagecount = 0L;
// protected String sort;
// protected String search;
private List<T> results;
private ListDataModel<T> resultdatamodel;
private static Logger logger = LoggerFactory.getLogger(PaginationView.class);
// public abstract void initView();
public void setResult(SearchResult<T> products) {
setResultcount(products.getResultcount());
setResults(products.getResults());
}
public String addToPage(Integer count) {
pagechangeCallback();
getSearchQuery().addPage(count);
if (getSearchQuery().getPage() >= pagecount) {
getSearchQuery().setPage(pagecount.intValue() - 1);
}
return null;
}
protected void pagechangeCallback() {
// logger.info("NOT Overriden pagechange callback");
results = null;
resultdatamodel = null;
}
public String gotoFirstpage() {
// logger.info("Setting page to first page");
pagechangeCallback();
getSearchQuery().setPage(0);
return null;
}
public String gotoLastpage() {
// logger.info("Setting page to last page");
pagechangeCallback();
getSearchQuery().setPage(pagecount.intValue() - 1);
return null;
}
public ListDataModel<T> getResultdatamodel() {
if (resultdatamodel == null) {
resultdatamodel = new ListDataModel<T>(results);
}
return resultdatamodel;
}
@Override
public Integer getPage() {
return getSearchQuery().getPage();
}
public void setPage(Integer page) {
getSearchQuery().setPage(page);
}
@Override
public Integer getPagesize() {
return getSearchQuery().getPagesize();
}
public void setPagesize(Integer pagesize) {
getSearchQuery().setPagesize(pagesize);
}
@Override
public Long getResultcount() {
return resultcount;
}
public void setResultcount(Long resultcount) {
this.resultcount = resultcount;
pagecount = ((resultcount + getSearchQuery().getPagesize() - 1) / getSearchQuery().getPagesize());
}
@Override
public Long getPagecount() {
return pagecount;
}
public void setPagecount(Long pagecount) {
this.pagecount = pagecount;
}
public String getSort() {
return getSearchQuery().getSort();
}
public void setSort(String sort) {
getSearchQuery().setSort(sort);
}
public String getSearch() {
return getSearchQuery().getSearch();
}
public void setSearch(String search) {
getSearchQuery().setSearch(search);
}
public String newSearch() {
logger.info("Setting new Search for pagination..");
setPage(0);
setResults(null);
resultdatamodel = null;
return null;
}
public List<T> getResults() {
return results;
}
public void setResults(List<T> results) {
this.results = results;
resultdatamodel = null;
}
public SearchQuery getSearchQuery() {
return searchQuery;
}
public void setSearchQuery(SearchQuery searchQuery) {
this.searchQuery = searchQuery;
}
}