Mercurial > hg > LGServices
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 } |