comparison src/main/java/de/mpiwg/web/jsp/BooksPage.java @ 17:372dab740f15

new: filters in books page
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 02 Jun 2015 11:56:45 +0200
parents d81a5401b9af
children 881e7591f3e4
comparison
equal deleted inserted replaced
16:a7e9c1f8edb4 17:372dab740f15
8 import java.util.Map; 8 import java.util.Map;
9 9
10 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse; 11 import javax.servlet.http.HttpServletResponse;
12 12
13 import org.apache.commons.lang.StringUtils;
13 import org.apache.log4j.Logger; 14 import org.apache.log4j.Logger;
14 15
15 import de.mpiwg.gazetteer.db.DBBook; 16 import de.mpiwg.gazetteer.db.DBBook;
16 import de.mpiwg.gazetteer.db.DBSectionVersion; 17 import de.mpiwg.gazetteer.db.DBSectionVersion;
17 import de.mpiwg.gazetteer.utils.DBService; 18 import de.mpiwg.gazetteer.utils.DBService;
34 35
35 public static String bean = "booksBean"; 36 public static String bean = "booksBean";
36 public static String page = "pages/books.jsp"; 37 public static String page = "pages/books.jsp";
37 private List<DBBook> completeBookList; 38 private List<DBBook> completeBookList;
38 39
40 private List<DBBook> filteredBookList;
41 private List<DBBook> displayBookList;
39 42
40 private Map<String, DBSectionVersion> sectionVersionMap = null; 43 private Map<String, DBSectionVersion> sectionVersionMap = null;
41 private int bookNumber; 44 private int bookNumber;
42 45
43 private String tocBookId = new String(); 46 private String tocBookId = new String();
44 47
48 private String bookNameFilter = new String();
49 private String dynastyFilter = new String();
50 private String adminTypeFilter = new String();
51 private String level1Filter = new String();
52 private String level2Filter = new String();
53 private String periodFilter = new String();
54 private String editionFilter = new String();
55
45 56
46 public void loadParameters(HttpServletRequest request, HttpServletResponse response){ 57 public void loadParameters(HttpServletRequest request, HttpServletResponse response){
47 this.request = request; 58 this.request = request;
48 this.response = response; 59 this.response = response;
49 60
50 this.tocBookId = getParameter("tocBookId"); 61 this.tocBookId = getParameter("tocBookId");
51 } 62
52 63 this.bookNameFilter = getParameter("bookNameFilter");
64 this.dynastyFilter = getParameter("dynastyFilter");
65 this.adminTypeFilter = getParameter("adminTypeFilter");
66 this.level1Filter = getParameter("level1Filter");
67 this.level2Filter = getParameter("level2Filter");
68 this.periodFilter = getParameter("periodFilter");
69 this.editionFilter = getParameter("editionFilter");
70
71 }
72
73
74
75 public void filter(){
76
77 this.filteredBookList = new ArrayList<DBBook>();
78 for(DBBook book : this.completeBookList){
79 if(!this.filteredBookList.contains(book)){
80
81 if( (StringUtils.isEmpty(dynastyFilter) || StringUtils.startsWith(book.getDynasty(), dynastyFilter)) &&
82 (StringUtils.isEmpty(level1Filter) || StringUtils.startsWith(book.getLevel1(), level1Filter)) &&
83 (StringUtils.isEmpty(level2Filter) || StringUtils.startsWith(book.getLevel2(), level2Filter)) &&
84 (StringUtils.isEmpty(periodFilter) || StringUtils.startsWith(book.getPeriod(), periodFilter)) &&
85 (StringUtils.isEmpty(editionFilter) || StringUtils.startsWith(book.getEdition(), editionFilter)) &&
86 (StringUtils.isEmpty(bookNameFilter) || StringUtils.startsWith(book.getName(), bookNameFilter)) &&
87 (StringUtils.isEmpty(adminTypeFilter) || StringUtils.startsWith(book.getAdmin_type(), adminTypeFilter))
88 ){
89 this.filteredBookList.add(book);
90
91 }
92 }
93 }
94
95 if(completeBookList.size() > 0){
96 //this.searchMessage = completeSectionList.size() + " section(s) found for the term(s): " + this.searchTerm;
97 //this.filteringMessage = this.filteredSectionList.size() + " section(s) listed after the filtering";
98 //this.paginator.setCurrentPage(0);
99 //this.paginator.resetNumberOfPages(filteredSectionList.size());
100 this.updateCurrentBooks();
101 }else{
102 //this.searchMessage = "No sections found for the term(s): " + this.searchTerm;
103 this.filteredBookList = null;
104 }
105
106 }
107
108
109 private void updateCurrentBooks() {
110 this.displayBookList = this.filteredBookList;
111 /*this.paginator.initCount();
112 int startRecord = this.paginator.getCurrentPage()
113 * this.paginator.getItemsPerPage();
114
115 if(this.paginator.getNumberOfPages() == 0){
116 this.displaySectionList = new ArrayList<DBSection>();
117 }else if((this.paginator.getCurrentPage() + 1) == this.paginator.getNumberOfPages()){
118 int mod = this.filteredSectionList.size() % paginator.getItemsPerPage();
119 if(mod == 0){
120 this.displaySectionList = filteredSectionList.subList(startRecord, startRecord + this.paginator.getItemsPerPage());
121 }else{
122 this.displaySectionList = filteredSectionList.subList(startRecord, startRecord + mod);
123 }
124
125 }else{
126 this.displaySectionList = filteredSectionList.subList(startRecord, startRecord + this.paginator.getItemsPerPage());
127 }
128
129 for(DBSection section : this.displaySectionList){
130 section.setBranches(this.branchesMap.get(section.getId()));
131 }
132 */
133 }
134
135
136 public List<DBBook> getDisplayBookList() {
137 return displayBookList;
138 }
139
140
141
142 public void setDisplayBookList(List<DBBook> displayBookList) {
143 this.displayBookList = displayBookList;
144 }
145
146
147 public String getDynastyFilter() {
148 return dynastyFilter;
149 }
150
151
152 public void setDynastyFilter(String dynastyFilter) {
153 this.dynastyFilter = dynastyFilter;
154 }
155
156
157 public String getAdminTypeFilter() {
158 return adminTypeFilter;
159 }
160
161
162 public void setAdminTypeFilter(String adminTypeFilter) {
163 this.adminTypeFilter = adminTypeFilter;
164 }
165
166
167 public String getLevel1Filter() {
168 return level1Filter;
169 }
170
171
172 public void setLevel1Filter(String level1Filter) {
173 this.level1Filter = level1Filter;
174 }
175
53 176
54 public String getTocBookId() { 177 public String getTocBookId() {
55 return tocBookId; 178 return tocBookId;
56 } 179 }
57 180
73 } 196 }
74 197
75 public void loadBooks(){ 198 public void loadBooks(){
76 if(this.completeBookList == null){ 199 if(this.completeBookList == null){
77 this.forceLoadBooks(); 200 this.forceLoadBooks();
78 } 201 filter();
202 }
203
79 } 204 }
80 205
81 public void forceLoadBooks(){ 206 public void forceLoadBooks(){
82 logger.debug("loadBooks"); 207 logger.debug("loadBooks");
83 208
144 269
145 } 270 }
146 271
147 public void sortByBookIdUp() { 272 public void sortByBookIdUp() {
148 Collections.sort(this.completeBookList, new SortBooksByBookId()); 273 Collections.sort(this.completeBookList, new SortBooksByBookId());
149 //filter(); 274 filter();
150 } 275 }
151 276
152 public void sortByBookIdDown() { 277 public void sortByBookIdDown() {
153 Collections.sort(this.completeBookList, new SortBooksByBookId()); 278 Collections.sort(this.completeBookList, new SortBooksByBookId());
154 Collections.reverse(completeBookList); 279 Collections.reverse(completeBookList);
155 //filter(); 280 filter();
156 } 281 }
157 282
158 public void sortByBookNameUp(){ 283 public void sortByBookNameUp(){
159 Collections.sort(this.completeBookList, new SortBooksByName()); 284 Collections.sort(this.completeBookList, new SortBooksByName());
160 //filter(); 285 filter();
161 } 286 }
162 287
163 public void sortByBookNameDown(){ 288 public void sortByBookNameDown(){
164 Collections.sort(this.completeBookList, new SortBooksByName()); 289 Collections.sort(this.completeBookList, new SortBooksByName());
165 Collections.reverse(completeBookList); 290 Collections.reverse(completeBookList);
166 //filter(); 291 filter();
167 } 292 }
168 293
169 public void sortByLevel1Up(){ 294 public void sortByLevel1Up(){
170 Collections.sort(this.completeBookList, new SortBooksByLevel1()); 295 Collections.sort(this.completeBookList, new SortBooksByLevel1());
171 //filter(); 296 filter();
172 } 297 }
173 298
174 public void sortByLevel1Down(){ 299 public void sortByLevel1Down(){
175 Collections.sort(this.completeBookList, new SortBooksByLevel1()); 300 Collections.sort(this.completeBookList, new SortBooksByLevel1());
176 Collections.reverse(completeBookList); 301 Collections.reverse(completeBookList);
177 //filter(); 302 filter();
178 } 303 }
179 public void sortByLevel2Up(){ 304 public void sortByLevel2Up(){
180 Collections.sort(this.completeBookList, new SortBooksByLevel2()); 305 Collections.sort(this.completeBookList, new SortBooksByLevel2());
181 //filter(); 306 filter();
182 } 307 }
183 308
184 public void sortByLevel2Down(){ 309 public void sortByLevel2Down(){
185 Collections.sort(this.completeBookList, new SortBooksByLevel2()); 310 Collections.sort(this.completeBookList, new SortBooksByLevel2());
186 Collections.reverse(completeBookList); 311 Collections.reverse(completeBookList);
187 //filter(); 312 filter();
188 } 313 }
189 314
190 public void sortByPeriodUp(){ 315 public void sortByPeriodUp(){
191 Collections.sort(this.completeBookList, new SortBooksByPeriod()); 316 Collections.sort(this.completeBookList, new SortBooksByPeriod());
192 //filter(); 317 filter();
193 } 318 }
194 319
195 public void sortByPeriodDown(){ 320 public void sortByPeriodDown(){
196 Collections.sort(this.completeBookList, new SortBooksByPeriod()); 321 Collections.sort(this.completeBookList, new SortBooksByPeriod());
197 Collections.reverse(completeBookList); 322 Collections.reverse(completeBookList);
198 //filter(); 323 filter();
199 } 324 }
200 325
201 public void sortByAdminTypeUp(){ 326 public void sortByAdminTypeUp(){
202 Collections.sort(this.completeBookList, new SortBooksByAdminType()); 327 Collections.sort(this.completeBookList, new SortBooksByAdminType());
203 //filter(); 328 filter();
204 } 329 }
205 330
206 public void sortByAdminTypeDown(){ 331 public void sortByAdminTypeDown(){
207 Collections.sort(this.completeBookList, new SortBooksByAdminType()); 332 Collections.sort(this.completeBookList, new SortBooksByAdminType());
208 Collections.reverse(completeBookList); 333 Collections.reverse(completeBookList);
209 //filter(); 334 filter();
210 } 335 }
211 336
212 public void sortByStartYearUp(){ 337 public void sortByStartYearUp(){
213 Collections.sort(this.completeBookList, new SortBooksByStartYear()); 338 Collections.sort(this.completeBookList, new SortBooksByStartYear());
214 //filter(); 339 filter();
215 } 340 }
216 341
217 public void sortByStartYearDown(){ 342 public void sortByStartYearDown(){
218 Collections.sort(this.completeBookList, new SortBooksByStartYear()); 343 Collections.sort(this.completeBookList, new SortBooksByStartYear());
219 Collections.reverse(completeBookList); 344 Collections.reverse(completeBookList);
220 //filter(); 345 filter();
221 } 346 }
222 347
223 public void sortByDynastyUp(){ 348 public void sortByDynastyUp(){
224 Collections.sort(this.completeBookList, new SortBooksByDynasty()); 349 Collections.sort(this.completeBookList, new SortBooksByDynasty());
225 //filter(); 350 filter();
226 } 351 }
227 352
228 public void sortByDynastyDown(){ 353 public void sortByDynastyDown(){
229 Collections.sort(this.completeBookList, new SortBooksByDynasty()); 354 Collections.sort(this.completeBookList, new SortBooksByDynasty());
230 Collections.reverse(completeBookList); 355 Collections.reverse(completeBookList);
231 //filter(); 356 filter();
232 } 357 }
233 public void sortByEditionUp(){ 358 public void sortByEditionUp(){
234 Collections.sort(this.completeBookList, new SortBooksByEdition()); 359 Collections.sort(this.completeBookList, new SortBooksByEdition());
235 //filter(); 360 filter();
236 } 361 }
237 362
238 public void sortByEditionDown(){ 363 public void sortByEditionDown(){
239 Collections.sort(this.completeBookList, new SortBooksByEdition()); 364 Collections.sort(this.completeBookList, new SortBooksByEdition());
240 Collections.reverse(completeBookList); 365 Collections.reverse(completeBookList);
241 //filter(); 366 filter();
242 } 367 }
243 368
244 369
245 370
246 public void sortByEditorUp(){ 371 public void sortByEditorUp(){
247 Collections.sort(this.completeBookList, new SortBooksByEditor()); 372 Collections.sort(this.completeBookList, new SortBooksByEditor());
248 //filter(); 373 filter();
249 } 374 }
250 375
251 public void sortByEditorDown(){ 376 public void sortByEditorDown(){
252 Collections.sort(this.completeBookList, new SortBooksByEditor()); 377 Collections.sort(this.completeBookList, new SortBooksByEditor());
253 Collections.reverse(completeBookList); 378 Collections.reverse(completeBookList);
254 //filter(); 379 filter();
255 } 380 }
256 381
257 public void sortByDateUp(){ 382 public void sortByDateUp(){
258 Collections.sort(this.completeBookList, new SortBooksByDate()); 383 Collections.sort(this.completeBookList, new SortBooksByDate());
259 //filter(); 384 filter();
260 } 385 }
261 386
262 public void sortByDateDown(){ 387 public void sortByDateDown(){
263 Collections.sort(this.completeBookList, new SortBooksByDate()); 388 Collections.sort(this.completeBookList, new SortBooksByDate());
264 Collections.reverse(completeBookList); 389 Collections.reverse(completeBookList);
265 //filter(); 390 filter();
266 } 391 }
267 392
268 public void sortByTocCorrectionUp(){ 393 public void sortByTocCorrectionUp(){
269 Collections.sort(this.completeBookList, new SortBooksByTocCorrection()); 394 Collections.sort(this.completeBookList, new SortBooksByTocCorrection());
270 //filter(); 395 filter();
271 } 396 }
272 397
273 public void sortByTocCorrectionDown(){ 398 public void sortByTocCorrectionDown(){
274 Collections.sort(this.completeBookList, new SortBooksByTocCorrection()); 399 Collections.sort(this.completeBookList, new SortBooksByTocCorrection());
275 Collections.reverse(completeBookList); 400 Collections.reverse(completeBookList);
276 //filter(); 401 filter();
277 } 402 }
278 403
279 404 public String getBookNameFilter() {
280 405 return bookNameFilter;
406 }
407
408
409
410 public void setBookNameFilter(String bookNameFilter) {
411 this.bookNameFilter = bookNameFilter;
412 }
413
414
415
416 public String getLevel2Filter() {
417 return level2Filter;
418 }
419
420
421
422 public void setLevel2Filter(String level2Filter) {
423 this.level2Filter = level2Filter;
424 }
425
426
427
428 public String getPeriodFilter() {
429 return periodFilter;
430 }
431
432
433
434 public void setPeriodFilter(String periodFilter) {
435 this.periodFilter = periodFilter;
436 }
437
438
439
440 public String getEditionFilter() {
441 return editionFilter;
442 }
443
444
445
446 public void setEditionFilter(String editionFilter) {
447 this.editionFilter = editionFilter;
448 }
449
450
451
452
281 453
282 } 454 }