comparison src/main/java/de/mpiwg/web/jsp/BooksPage.java @ 75:e5697f7775b2

Display columns named "source" and "year" and implement filter & sorting on them. Hide the column "Start Year"
author Calvin Yeh <cyeh@mpiwg-berlin.mpg.de>
date Mon, 27 Mar 2017 17:50:58 +0200
parents b8ad346e39a0
children 141fa833d126
comparison
equal deleted inserted replaced
74:92cb98332794 75:e5697f7775b2
30 import de.mpiwg.web.books.SortBooksByTocCorrection; 30 import de.mpiwg.web.books.SortBooksByTocCorrection;
31 31
32 public class BooksPage extends AbstractJSPPage{ 32 public class BooksPage extends AbstractJSPPage{
33 33
34 private static Logger logger = Logger.getLogger(BooksPage.class); 34 private static Logger logger = Logger.getLogger(BooksPage.class);
35 35
36 public static String bean = "booksBean"; 36 public static String bean = "booksBean";
37 public static String page = "pages/books.jsp"; 37 public static String page = "pages/books.jsp";
38 private List<DBBook> completeBookList; 38 private List<DBBook> completeBookList;
39 39
40 private List<DBBook> filteredBookList; 40 private List<DBBook> filteredBookList;
41 private List<DBBook> displayBookList; 41 private List<DBBook> displayBookList;
42 42
43 private Map<String, DBSectionVersion> sectionVersionMap = null; 43 private Map<String, DBSectionVersion> sectionVersionMap = null;
44 private int bookNumber; 44 private int bookNumber;
45 45
46 private DataPaginator paginator = new DataPaginator(); 46 private DataPaginator paginator = new DataPaginator();
47 47
48 48
49 private String tocBookId = new String(); 49 private String tocBookId = new String();
50 50
51 private String bookNameFilter = new String(); 51 private String bookNameFilter = new String();
52 private String dynastyFilter = new String(); 52 private String dynastyFilter = new String();
53 private String adminTypeFilter = new String(); 53 private String adminTypeFilter = new String();
54 private String level1Filter = new String(); 54 private String level1Filter = new String();
55 private String level2Filter = new String(); 55 private String level2Filter = new String();
56 private String periodFilter = new String(); 56 private String periodFilter = new String();
57 private String editionFilter = new String(); 57 private String editionFilter = new String();
58 private String lastEditorFilter = new String(); 58 private String lastEditorFilter = new String();
59 private String editTimeFilter = new String(); 59 private String editTimeFilter = new String();
60 60 private String yearFilter = new String();
61 61 private String sourceFilter = new String();
62
63
62 64
63 65
64 private String filteringMessage; 66 private String filteringMessage;
65 67
66 68
67 public void loadParameters(HttpServletRequest request, HttpServletResponse response){ 69 public void loadParameters(HttpServletRequest request, HttpServletResponse response){
68 this.request = request; 70 this.request = request;
69 this.response = response; 71 this.response = response;
70 72
71 this.tocBookId = getParameter("tocBookId"); 73 this.tocBookId = getParameter("tocBookId");
72 this.bookNameFilter = getParameter("bookNameFilter"); 74 this.bookNameFilter = getParameter("bookNameFilter");
73 this.dynastyFilter = getParameter("dynastyFilter"); 75 this.dynastyFilter = getParameter("dynastyFilter");
74 this.adminTypeFilter = getParameter("adminTypeFilter"); 76 this.adminTypeFilter = getParameter("adminTypeFilter");
75 this.level1Filter = getParameter("level1Filter"); 77 this.level1Filter = getParameter("level1Filter");
76 this.level2Filter = getParameter("level2Filter"); 78 this.level2Filter = getParameter("level2Filter");
77 this.periodFilter = getParameter("periodFilter"); 79 this.periodFilter = getParameter("periodFilter");
78 this.editionFilter = getParameter("editionFilter"); 80 this.editionFilter = getParameter("editionFilter");
79 this.lastEditorFilter = getParameter("lastEditorFilter"); 81 this.lastEditorFilter = getParameter("lastEditorFilter");
80 this.editTimeFilter = getParameter("editTimeFilter"); 82 this.editTimeFilter = getParameter("editTimeFilter");
81 83 this.yearFilter = getParameter("yearFilter");
82 } 84 this.sourceFilter = getParameter("sourceFilter");
83 85
84 86 }
87
88
85 89
86 public void filter(){ 90 public void filter(){
87 91
88 this.filteredBookList = new ArrayList<DBBook>(); 92 this.filteredBookList = new ArrayList<DBBook>();
89 for(DBBook book : this.completeBookList){ 93 for(DBBook book : this.completeBookList){
90 if(!this.filteredBookList.contains(book)){ 94 if(!this.filteredBookList.contains(book)){
91 95
92 if( //(StringUtils.isEmpty(dynastyFilter) || StringUtils.startsWith(book.getDynasty(), dynastyFilter)) && 96 if( //(StringUtils.isEmpty(dynastyFilter) || StringUtils.startsWith(book.getDynasty(), dynastyFilter)) &&
93 (StringUtils.isEmpty(level1Filter) || StringUtils.contains(book.getLevel1(), level1Filter)) && 97 (StringUtils.isEmpty(level1Filter) || StringUtils.contains(book.getLevel1(), level1Filter)) &&
94 (StringUtils.isEmpty(level2Filter) || StringUtils.contains(book.getLevel2(), level2Filter)) && 98 (StringUtils.isEmpty(level2Filter) || StringUtils.contains(book.getLevel2(), level2Filter)) &&
95 (StringUtils.isEmpty(periodFilter) || StringUtils.contains(book.getPeriod(), periodFilter)) && 99 (StringUtils.isEmpty(periodFilter) || StringUtils.contains(book.getPeriod(), periodFilter)) &&
96 (StringUtils.isEmpty(editionFilter) || StringUtils.contains(book.getEdition(), editionFilter)) && 100 (StringUtils.isEmpty(editionFilter) || StringUtils.contains(book.getEdition(), editionFilter)) &&
97 (StringUtils.isEmpty(bookNameFilter) || StringUtils.contains(book.getName(), bookNameFilter)) && 101 (StringUtils.isEmpty(bookNameFilter) || StringUtils.contains(book.getName(), bookNameFilter)) &&
98 (StringUtils.isEmpty(dynastyFilter) || StringUtils.contains(book.getDynasty(), dynastyFilter)) && 102 (StringUtils.isEmpty(dynastyFilter) || StringUtils.contains(book.getDynasty(), dynastyFilter)) &&
99 (StringUtils.isEmpty(adminTypeFilter) || StringUtils.contains(book.getAdmin_type(), adminTypeFilter)) 103 (StringUtils.isEmpty(adminTypeFilter) || StringUtils.contains(book.getAdmin_type(), adminTypeFilter)) &&
104 (StringUtils.isEmpty(yearFilter) || StringUtils.contains(book.getYear(), yearFilter)) &&
105 (StringUtils.isEmpty(sourceFilter) || StringUtils.contains(book.getSource(), sourceFilter))
100 ){ 106 ){
101 String lastEditor = new String(); 107 String lastEditor = new String();
102 String editTime = new String(); 108 String editTime = new String();
103 if ( book.getCurrentSectionVersion() != null) { 109 if ( book.getCurrentSectionVersion() != null) {
104 lastEditor = book.getCurrentSectionVersion().getEditor(); 110 lastEditor = book.getCurrentSectionVersion().getEditor();
105 editTime = book.getCurrentSectionVersion().getDate(); 111 editTime = book.getCurrentSectionVersion().getDate();
106 } 112 }
107 113
108 if( (StringUtils.isEmpty(lastEditorFilter) || StringUtils.contains(lastEditor, lastEditorFilter)) && 114 if( (StringUtils.isEmpty(lastEditorFilter) || StringUtils.contains(lastEditor, lastEditorFilter)) &&
109 (StringUtils.isEmpty(editTimeFilter) || StringUtils.contains(editTime, editTimeFilter)) 115 (StringUtils.isEmpty(editTimeFilter) || StringUtils.contains(editTime, editTimeFilter))
110 116
111 ){ 117 ){
112 this.filteredBookList.add(book); 118 this.filteredBookList.add(book);
113 119
114 } 120 }
115 121
116 //this.filteredBookList.add(book); 122 //this.filteredBookList.add(book);
117 123
118 } 124 }
119 } 125 }
120 } 126 }
121 127
122 if(completeBookList.size() > 0){ 128 if(completeBookList.size() > 0){
123 this.filteringMessage = this.filteredBookList.size() + " book(s) listed after filtering"; 129 this.filteringMessage = this.filteredBookList.size() + " book(s) listed after filtering";
124 this.paginator.setCurrentPage(0); 130 this.paginator.setCurrentPage(0);
125 this.paginator.resetNumberOfPages(filteredBookList.size()); 131 this.paginator.resetNumberOfPages(filteredBookList.size());
126 this.updateCurrentBooks(); 132 this.updateCurrentBooks();
127 }else{ 133 }else{
128 this.filteredBookList = null; 134 this.filteredBookList = null;
129 } 135 }
130 136
131 } 137 }
132 138
133 139
134 private void updateCurrentBooks() { 140 private void updateCurrentBooks() {
135 // update displayBookList using paginator 141 // update displayBookList using paginator
136 142
137 this.paginator.initCount(); 143 this.paginator.initCount();
138 int startRecord = this.paginator.getCurrentPage() 144 int startRecord = this.paginator.getCurrentPage()
139 * this.paginator.getItemsPerPage(); 145 * this.paginator.getItemsPerPage();
140 146
141 if(this.paginator.getNumberOfPages() == 0){ 147 if(this.paginator.getNumberOfPages() == 0){
142 this.displayBookList = new ArrayList<DBBook>(); 148 this.displayBookList = new ArrayList<DBBook>();
143 }else if((this.paginator.getCurrentPage() + 1) == this.paginator.getNumberOfPages()){ 149 }else if((this.paginator.getCurrentPage() + 1) == this.paginator.getNumberOfPages()){
144 int mod = this.filteredBookList.size() % paginator.getItemsPerPage(); 150 int mod = this.filteredBookList.size() % paginator.getItemsPerPage();
145 if(mod == 0){ 151 if(mod == 0){
146 this.displayBookList = filteredBookList.subList(startRecord, startRecord + this.paginator.getItemsPerPage()); 152 this.displayBookList = filteredBookList.subList(startRecord, startRecord + this.paginator.getItemsPerPage());
147 }else{ 153 }else{
148 this.displayBookList = filteredBookList.subList(startRecord, startRecord + mod); 154 this.displayBookList = filteredBookList.subList(startRecord, startRecord + mod);
149 } 155 }
150 156
151 }else{ 157 }else{
152 this.displayBookList = filteredBookList.subList(startRecord, startRecord + this.paginator.getItemsPerPage()); 158 this.displayBookList = filteredBookList.subList(startRecord, startRecord + this.paginator.getItemsPerPage());
153 } 159 }
154 160
155 } 161 }
156 162
157 163
158 public List<DBBook> getDisplayBookList() { 164 public List<DBBook> getDisplayBookList() {
159 return displayBookList; 165 return displayBookList;
160 } 166 }
161 167
163 169
164 public void setDisplayBookList(List<DBBook> displayBookList) { 170 public void setDisplayBookList(List<DBBook> displayBookList) {
165 this.displayBookList = displayBookList; 171 this.displayBookList = displayBookList;
166 } 172 }
167 173
168 174
169 public String getDynastyFilter() { 175 public String getDynastyFilter() {
170 return dynastyFilter; 176 return dynastyFilter;
171 } 177 }
172 178
173 179
193 199
194 public void setLevel1Filter(String level1Filter) { 200 public void setLevel1Filter(String level1Filter) {
195 this.level1Filter = level1Filter; 201 this.level1Filter = level1Filter;
196 } 202 }
197 203
198 204 public String getYearFilter() {
205 return yearFilter;
206 }
207
208
209 public void setYearFilter(String yearFilter) {
210 this.yearFilter = yearFilter;
211 }
212
213 public String getSourceFilter() {
214 return yearFilter;
215 }
216
217
218 public void setSourceFilter(String sourceFilter) {
219 this.sourceFilter = sourceFilter;
220 }
221
222
199 public String getTocBookId() { 223 public String getTocBookId() {
200 return tocBookId; 224 return tocBookId;
201 } 225 }
202 226
203 public void setTocBookId(String tocBookId) { 227 public void setTocBookId(String tocBookId) {
210 234
211 public void setBookNumber(int bookNumber) { 235 public void setBookNumber(int bookNumber) {
212 this.bookNumber = bookNumber; 236 this.bookNumber = bookNumber;
213 } 237 }
214 238
215 239
216 public List<DBBook> getCompleteBookList() { 240 public List<DBBook> getCompleteBookList() {
217 return completeBookList; 241 return completeBookList;
218 } 242 }
219 243
220 public void loadBooks(){ 244 public void loadBooks(){
221 if(this.completeBookList == null){ 245 if(this.completeBookList == null){
222 this.forceLoadBooks(); 246 this.forceLoadBooks();
223 this.filteringMessage = null; 247 this.filteringMessage = null;
224 } 248 }
225 } 249 }
226 250
227 public void forceLoadBooks(){ 251 public void forceLoadBooks(){
228 logger.debug("force loadBooks"); 252 logger.debug("force loadBooks");
229 253
230 this.loadSectionsVersion(); 254 this.loadSectionsVersion();
231 255
232 this.completeBookList = new ArrayList<DBBook>(); 256 this.completeBookList = new ArrayList<DBBook>();
233 if(getSessionBean().getUser() != null){ 257 if(getSessionBean().getUser() != null){
234 logger.debug("loading book list"); 258 logger.debug("loading book list");
235 // === load book table from db == 259 // === load book table from db ==
236 260
237 for(DBBook book : DBService.getInstance().getBooks()){ 261 for(DBBook book : DBService.getInstance().getBooks()){
238 // set editor and date (current version) 262 // set editor and date (current version)
239 book.setCurrentSectionVersion(sectionVersionMap.get(book.getId())); 263 book.setCurrentSectionVersion(sectionVersionMap.get(book.getId()));
240 264
241 this.completeBookList.add(book); 265 this.completeBookList.add(book);
242 } 266 }
243 267
244 this.setBookNumber(this.completeBookList.size()); 268 this.setBookNumber(this.completeBookList.size());
245 269
246 } 270 }
247 271
248 sortByBookIdUp(); //bookId ascend as default sorting 272 sortByBookIdUp(); //bookId ascend as default sorting
249 // Note that every sortXYZ() function has filter() in it, so it will also force reload filteredList and displayList 273 // Note that every sortXYZ() function has filter() in it, so it will also force reload filteredList and displayList
250 274
251 275
252 276
253 277
254 } 278 }
255 279
256 private void loadSectionsVersion(){ 280 private void loadSectionsVersion(){
257 this.sectionVersionMap = new HashMap<String, DBSectionVersion>(); 281 this.sectionVersionMap = new HashMap<String, DBSectionVersion>();
258 282
259 try { 283 try {
260 for(DBSectionVersion sv : DBService.getInstance().getSectionVersionList()){ 284 for(DBSectionVersion sv : DBService.getInstance().getSectionVersionList()){
261 this.sectionVersionMap.put(sv.getBooks_id(), sv); 285 this.sectionVersionMap.put(sv.getBooks_id(), sv);
262 } 286 }
263 } catch (Exception e) { 287 } catch (Exception e) {
264 addMsg("There is an internal error: " + e.getLocalizedMessage()); 288 addMsg("There is an internal error: " + e.getLocalizedMessage());
265 e.printStackTrace(); 289 e.printStackTrace();
266 } 290 }
267 291
268 292
269 } 293 }
270 294
271 public void setTocCorrection() { 295 public void setTocCorrection() {
272 String tocBookId = this.getTocBookId(); 296 String tocBookId = this.getTocBookId();
273 logger.debug("tocFinishedBookId=" + tocBookId); 297 logger.debug("tocFinishedBookId=" + tocBookId);
274 try { 298 try {
275 // update toc correction status to DB 299 // update toc correction status to DB
276 DBService.getInstance().updateTocCorrection(tocBookId, "1"); 300 DBService.getInstance().updateTocCorrection(tocBookId, "1");
277 301
278 // update toc correction status 302 // update toc correction status
279 DBService.getInstance().getBook(tocBookId).setTocCorrection("1"); 303 DBService.getInstance().getBook(tocBookId).setTocCorrection("1");
280 304
281 }catch (Exception e) { 305 }catch (Exception e) {
282 addMsg("There is an internal error: " + e.getLocalizedMessage()); 306 addMsg("There is an internal error: " + e.getLocalizedMessage());
283 e.printStackTrace(); 307 e.printStackTrace();
284 } 308 }
285 309
286 //logger.debug("toc_correction:"+DBService.getInstance().getBook(tocBookId).getTocCorrection()); 310 //logger.debug("toc_correction:"+DBService.getInstance().getBook(tocBookId).getTocCorrection());
287 311
288 } 312 }
289 313
290 314
291 public void unSetTocCorrection() { 315 public void unSetTocCorrection() {
292 String tocBookId = this.getTocBookId(); 316 String tocBookId = this.getTocBookId();
293 logger.debug("tocFinishedBookId=" + tocBookId); 317 logger.debug("tocFinishedBookId=" + tocBookId);
294 try { 318 try {
295 DBService.getInstance().updateTocCorrection(tocBookId, "0"); 319 DBService.getInstance().updateTocCorrection(tocBookId, "0");
296 DBService.getInstance().getBook(tocBookId).setTocCorrection("0"); 320 DBService.getInstance().getBook(tocBookId).setTocCorrection("0");
297 321
298 }catch (Exception e) { 322 }catch (Exception e) {
299 addMsg("There is an internal error: " + e.getLocalizedMessage()); 323 addMsg("There is an internal error: " + e.getLocalizedMessage());
300 e.printStackTrace(); 324 e.printStackTrace();
301 } 325 }
302 326
303 } 327 }
304 328
305 public void saveComment() { 329 public void saveComment() {
306 330
307 String bookComment = getParameter("bookComment"); 331 String bookComment = getParameter("bookComment");
308 String currentBookId = getParameter("currentBookId"); 332 String currentBookId = getParameter("currentBookId");
309 333
310 logger.debug("saveComment. currentBookId=" + currentBookId + ", bookComment: "+ bookComment); 334 logger.debug("saveComment. currentBookId=" + currentBookId + ", bookComment: "+ bookComment);
311 335
312 try { 336 try {
313 DBService.getInstance().updateComment(currentBookId, bookComment); 337 DBService.getInstance().updateComment(currentBookId, bookComment);
314 //DBService.getInstance().getBook(currentBookId).setComments(bookComment); 338 //DBService.getInstance().getBook(currentBookId).setComments(bookComment);
315 339
316 } catch (Exception e) { 340 } catch (Exception e) {
317 addMsg("There is an internal error: " + e.getLocalizedMessage()); 341 addMsg("There is an internal error: " + e.getLocalizedMessage());
318 e.printStackTrace(); 342 e.printStackTrace();
319 } 343 }
320 344
321 } 345 }
322 346
323 347
324 348
325 public void sortByBookIdUp() { 349 public void sortByBookIdUp() {
326 Collections.sort(this.completeBookList, new SortBooksByBookId()); 350 Collections.sort(this.completeBookList, new SortBooksByBookId());
327 filter(); 351 filter();
328 } 352 }
329 353
335 359
336 public void sortByBookNameUp(){ 360 public void sortByBookNameUp(){
337 Collections.sort(this.completeBookList, new SortBooksByName()); 361 Collections.sort(this.completeBookList, new SortBooksByName());
338 filter(); 362 filter();
339 } 363 }
340 364
341 public void sortByBookNameDown(){ 365 public void sortByBookNameDown(){
342 Collections.sort(this.completeBookList, new SortBooksByName()); 366 Collections.sort(this.completeBookList, new SortBooksByName());
343 Collections.reverse(completeBookList); 367 Collections.reverse(completeBookList);
344 filter(); 368 filter();
345 } 369 }
346 370
347 public void sortByLevel1Up(){ 371 public void sortByLevel1Up(){
348 Collections.sort(this.completeBookList, new SortBooksByLevel1()); 372 Collections.sort(this.completeBookList, new SortBooksByLevel1());
349 filter(); 373 filter();
350 } 374 }
351 375
352 public void sortByLevel1Down(){ 376 public void sortByLevel1Down(){
353 Collections.sort(this.completeBookList, new SortBooksByLevel1()); 377 Collections.sort(this.completeBookList, new SortBooksByLevel1());
354 Collections.reverse(completeBookList); 378 Collections.reverse(completeBookList);
355 filter(); 379 filter();
356 } 380 }
357 public void sortByLevel2Up(){ 381 public void sortByLevel2Up(){
358 Collections.sort(this.completeBookList, new SortBooksByLevel2()); 382 Collections.sort(this.completeBookList, new SortBooksByLevel2());
359 filter(); 383 filter();
360 } 384 }
361 385
362 public void sortByLevel2Down(){ 386 public void sortByLevel2Down(){
363 Collections.sort(this.completeBookList, new SortBooksByLevel2()); 387 Collections.sort(this.completeBookList, new SortBooksByLevel2());
364 Collections.reverse(completeBookList); 388 Collections.reverse(completeBookList);
365 filter(); 389 filter();
366 } 390 }
367 391
368 public void sortByPeriodUp(){ 392 public void sortByPeriodUp(){
369 Collections.sort(this.completeBookList, new SortBooksByPeriod()); 393 Collections.sort(this.completeBookList, new SortBooksByPeriod());
370 filter(); 394 filter();
371 } 395 }
372 396
373 public void sortByPeriodDown(){ 397 public void sortByPeriodDown(){
374 Collections.sort(this.completeBookList, new SortBooksByPeriod()); 398 Collections.sort(this.completeBookList, new SortBooksByPeriod());
375 Collections.reverse(completeBookList); 399 Collections.reverse(completeBookList);
376 filter(); 400 filter();
377 } 401 }
378 402
379 public void sortByAdminTypeUp(){ 403 public void sortByAdminTypeUp(){
380 Collections.sort(this.completeBookList, new SortBooksByAdminType()); 404 Collections.sort(this.completeBookList, new SortBooksByAdminType());
381 filter(); 405 filter();
382 } 406 }
383 407
384 public void sortByAdminTypeDown(){ 408 public void sortByAdminTypeDown(){
385 Collections.sort(this.completeBookList, new SortBooksByAdminType()); 409 Collections.sort(this.completeBookList, new SortBooksByAdminType());
386 Collections.reverse(completeBookList); 410 Collections.reverse(completeBookList);
387 filter(); 411 filter();
388 } 412 }
389 413
390 public void sortByStartYearUp(){ 414 public void sortByStartYearUp(){
391 Collections.sort(this.completeBookList, new SortBooksByStartYear()); 415 Collections.sort(this.completeBookList, new SortBooksByStartYear());
392 filter(); 416 filter();
393 } 417 }
394 418
395 public void sortByStartYearDown(){ 419 public void sortByStartYearDown(){
396 Collections.sort(this.completeBookList, new SortBooksByStartYear()); 420 Collections.sort(this.completeBookList, new SortBooksByStartYear());
397 Collections.reverse(completeBookList); 421 Collections.reverse(completeBookList);
398 filter(); 422 filter();
399 } 423 }
400 424
401 public void sortByDynastyUp(){ 425 public void sortByDynastyUp(){
402 Collections.sort(this.completeBookList, new SortBooksByDynasty()); 426 Collections.sort(this.completeBookList, new SortBooksByDynasty());
403 filter(); 427 filter();
404 } 428 }
405 429
406 public void sortByDynastyDown(){ 430 public void sortByDynastyDown(){
407 Collections.sort(this.completeBookList, new SortBooksByDynasty()); 431 Collections.sort(this.completeBookList, new SortBooksByDynasty());
408 Collections.reverse(completeBookList); 432 Collections.reverse(completeBookList);
409 filter(); 433 filter();
410 } 434 }
411 public void sortByEditionUp(){ 435 public void sortByEditionUp(){
412 Collections.sort(this.completeBookList, new SortBooksByEdition()); 436 Collections.sort(this.completeBookList, new SortBooksByEdition());
413 filter(); 437 filter();
414 } 438 }
415 439
416 public void sortByEditionDown(){ 440 public void sortByEditionDown(){
417 Collections.sort(this.completeBookList, new SortBooksByEdition()); 441 Collections.sort(this.completeBookList, new SortBooksByEdition());
418 Collections.reverse(completeBookList); 442 Collections.reverse(completeBookList);
419 filter(); 443 filter();
420 } 444 }
421 445
422 446
423 447
424 public void sortByEditorUp(){ 448 public void sortByEditorUp(){
425 Collections.sort(this.completeBookList, new SortBooksByEditor()); 449 Collections.sort(this.completeBookList, new SortBooksByEditor());
426 filter(); 450 filter();
427 } 451 }
428 452
429 public void sortByEditorDown(){ 453 public void sortByEditorDown(){
430 Collections.sort(this.completeBookList, new SortBooksByEditor()); 454 Collections.sort(this.completeBookList, new SortBooksByEditor());
431 Collections.reverse(completeBookList); 455 Collections.reverse(completeBookList);
432 filter(); 456 filter();
433 } 457 }
434 458
435 public void sortByDateUp(){ 459 public void sortByDateUp(){
436 Collections.sort(this.completeBookList, new SortBooksByDate()); 460 Collections.sort(this.completeBookList, new SortBooksByDate());
437 filter(); 461 filter();
438 } 462 }
439 463
440 public void sortByDateDown(){ 464 public void sortByDateDown(){
441 Collections.sort(this.completeBookList, new SortBooksByDate()); 465 Collections.sort(this.completeBookList, new SortBooksByDate());
442 Collections.reverse(completeBookList); 466 Collections.reverse(completeBookList);
443 filter(); 467 filter();
444 } 468 }
445 469
446 public void sortByTocCorrectionUp(){ 470 public void sortByTocCorrectionUp(){
447 Collections.sort(this.completeBookList, new SortBooksByTocCorrection()); 471 Collections.sort(this.completeBookList, new SortBooksByTocCorrection());
448 filter(); 472 filter();
449 } 473 }
450 474
451 public void sortByTocCorrectionDown(){ 475 public void sortByTocCorrectionDown(){
452 Collections.sort(this.completeBookList, new SortBooksByTocCorrection()); 476 Collections.sort(this.completeBookList, new SortBooksByTocCorrection());
453 Collections.reverse(completeBookList); 477 Collections.reverse(completeBookList);
454 filter(); 478 filter();
455 } 479 }
456 480
481 public void sortByYearUp(){
482 Collections.sort(this.completeBookList, new SortBooksByYear());
483 filter();
484 }
485
486 public void sortByYearDown(){
487 Collections.sort(this.completeBookList, new SortBooksByYear());
488 Collections.reverse(completeBookList);
489 filter();
490 }
491
492 public void sortBySourceUp(){
493 Collections.sort(this.completeBookList, new SortBooksBySource());
494 filter();
495 }
496
497 public void sortBySourceDown(){
498 Collections.sort(this.completeBookList, new SortBooksBySource());
499 Collections.reverse(completeBookList);
500 filter();
501 }
502
457 public String getBookNameFilter() { 503 public String getBookNameFilter() {
458 return bookNameFilter; 504 return bookNameFilter;
459 } 505 }
460 506
461 507
537 } 583 }
538 584
539 public void setPaginator(DataPaginator paginator) { 585 public void setPaginator(DataPaginator paginator) {
540 this.paginator = paginator; 586 this.paginator = paginator;
541 } 587 }
542 588
543 589
544 590
545 public String getFilteringMessage() { 591 public String getFilteringMessage() {
546 return filteringMessage; 592 return filteringMessage;
547 } 593 }