Mercurial > hg > LGServices
diff 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 |
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/web/jsp/BooksPage.java Mon Jun 01 14:40:48 2015 +0200 +++ b/src/main/java/de/mpiwg/web/jsp/BooksPage.java Tue Jun 02 11:56:45 2015 +0200 @@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import de.mpiwg.gazetteer.db.DBBook; @@ -36,21 +37,143 @@ public static String page = "pages/books.jsp"; private List<DBBook> completeBookList; + private List<DBBook> filteredBookList; + private List<DBBook> displayBookList; private Map<String, DBSectionVersion> sectionVersionMap = null; private int bookNumber; private String tocBookId = new String(); - + + private String bookNameFilter = new String(); + private String dynastyFilter = new String(); + private String adminTypeFilter = new String(); + private String level1Filter = new String(); + private String level2Filter = new String(); + private String periodFilter = new String(); + private String editionFilter = new String(); + public void loadParameters(HttpServletRequest request, HttpServletResponse response){ this.request = request; this.response = response; this.tocBookId = getParameter("tocBookId"); + + this.bookNameFilter = getParameter("bookNameFilter"); + this.dynastyFilter = getParameter("dynastyFilter"); + this.adminTypeFilter = getParameter("adminTypeFilter"); + this.level1Filter = getParameter("level1Filter"); + this.level2Filter = getParameter("level2Filter"); + this.periodFilter = getParameter("periodFilter"); + this.editionFilter = getParameter("editionFilter"); + + } + + + + public void filter(){ + + this.filteredBookList = new ArrayList<DBBook>(); + for(DBBook book : this.completeBookList){ + if(!this.filteredBookList.contains(book)){ + + if( (StringUtils.isEmpty(dynastyFilter) || StringUtils.startsWith(book.getDynasty(), dynastyFilter)) && + (StringUtils.isEmpty(level1Filter) || StringUtils.startsWith(book.getLevel1(), level1Filter)) && + (StringUtils.isEmpty(level2Filter) || StringUtils.startsWith(book.getLevel2(), level2Filter)) && + (StringUtils.isEmpty(periodFilter) || StringUtils.startsWith(book.getPeriod(), periodFilter)) && + (StringUtils.isEmpty(editionFilter) || StringUtils.startsWith(book.getEdition(), editionFilter)) && + (StringUtils.isEmpty(bookNameFilter) || StringUtils.startsWith(book.getName(), bookNameFilter)) && + (StringUtils.isEmpty(adminTypeFilter) || StringUtils.startsWith(book.getAdmin_type(), adminTypeFilter)) + ){ + this.filteredBookList.add(book); + + } + } + } + + if(completeBookList.size() > 0){ + //this.searchMessage = completeSectionList.size() + " section(s) found for the term(s): " + this.searchTerm; + //this.filteringMessage = this.filteredSectionList.size() + " section(s) listed after the filtering"; + //this.paginator.setCurrentPage(0); + //this.paginator.resetNumberOfPages(filteredSectionList.size()); + this.updateCurrentBooks(); + }else{ + //this.searchMessage = "No sections found for the term(s): " + this.searchTerm; + this.filteredBookList = null; + } + } + private void updateCurrentBooks() { + this.displayBookList = this.filteredBookList; + /*this.paginator.initCount(); + int startRecord = this.paginator.getCurrentPage() + * this.paginator.getItemsPerPage(); + + if(this.paginator.getNumberOfPages() == 0){ + this.displaySectionList = new ArrayList<DBSection>(); + }else if((this.paginator.getCurrentPage() + 1) == this.paginator.getNumberOfPages()){ + int mod = this.filteredSectionList.size() % paginator.getItemsPerPage(); + if(mod == 0){ + this.displaySectionList = filteredSectionList.subList(startRecord, startRecord + this.paginator.getItemsPerPage()); + }else{ + this.displaySectionList = filteredSectionList.subList(startRecord, startRecord + mod); + } + + }else{ + this.displaySectionList = filteredSectionList.subList(startRecord, startRecord + this.paginator.getItemsPerPage()); + } + + for(DBSection section : this.displaySectionList){ + section.setBranches(this.branchesMap.get(section.getId())); + } + */ + } + + + public List<DBBook> getDisplayBookList() { + return displayBookList; + } + + + + public void setDisplayBookList(List<DBBook> displayBookList) { + this.displayBookList = displayBookList; + } + + + public String getDynastyFilter() { + return dynastyFilter; + } + + + public void setDynastyFilter(String dynastyFilter) { + this.dynastyFilter = dynastyFilter; + } + + + public String getAdminTypeFilter() { + return adminTypeFilter; + } + + + public void setAdminTypeFilter(String adminTypeFilter) { + this.adminTypeFilter = adminTypeFilter; + } + + + public String getLevel1Filter() { + return level1Filter; + } + + + public void setLevel1Filter(String level1Filter) { + this.level1Filter = level1Filter; + } + + public String getTocBookId() { return tocBookId; } @@ -75,7 +198,9 @@ public void loadBooks(){ if(this.completeBookList == null){ this.forceLoadBooks(); - } + filter(); + } + } public void forceLoadBooks(){ @@ -146,137 +271,184 @@ public void sortByBookIdUp() { Collections.sort(this.completeBookList, new SortBooksByBookId()); - //filter(); + filter(); } public void sortByBookIdDown() { Collections.sort(this.completeBookList, new SortBooksByBookId()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByBookNameUp(){ Collections.sort(this.completeBookList, new SortBooksByName()); - //filter(); + filter(); } public void sortByBookNameDown(){ Collections.sort(this.completeBookList, new SortBooksByName()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByLevel1Up(){ Collections.sort(this.completeBookList, new SortBooksByLevel1()); - //filter(); + filter(); } public void sortByLevel1Down(){ Collections.sort(this.completeBookList, new SortBooksByLevel1()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByLevel2Up(){ Collections.sort(this.completeBookList, new SortBooksByLevel2()); - //filter(); + filter(); } public void sortByLevel2Down(){ Collections.sort(this.completeBookList, new SortBooksByLevel2()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByPeriodUp(){ Collections.sort(this.completeBookList, new SortBooksByPeriod()); - //filter(); + filter(); } public void sortByPeriodDown(){ Collections.sort(this.completeBookList, new SortBooksByPeriod()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByAdminTypeUp(){ Collections.sort(this.completeBookList, new SortBooksByAdminType()); - //filter(); + filter(); } public void sortByAdminTypeDown(){ Collections.sort(this.completeBookList, new SortBooksByAdminType()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByStartYearUp(){ Collections.sort(this.completeBookList, new SortBooksByStartYear()); - //filter(); + filter(); } public void sortByStartYearDown(){ Collections.sort(this.completeBookList, new SortBooksByStartYear()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByDynastyUp(){ Collections.sort(this.completeBookList, new SortBooksByDynasty()); - //filter(); + filter(); } public void sortByDynastyDown(){ Collections.sort(this.completeBookList, new SortBooksByDynasty()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByEditionUp(){ Collections.sort(this.completeBookList, new SortBooksByEdition()); - //filter(); + filter(); } public void sortByEditionDown(){ Collections.sort(this.completeBookList, new SortBooksByEdition()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByEditorUp(){ Collections.sort(this.completeBookList, new SortBooksByEditor()); - //filter(); + filter(); } public void sortByEditorDown(){ Collections.sort(this.completeBookList, new SortBooksByEditor()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByDateUp(){ Collections.sort(this.completeBookList, new SortBooksByDate()); - //filter(); + filter(); } public void sortByDateDown(){ Collections.sort(this.completeBookList, new SortBooksByDate()); Collections.reverse(completeBookList); - //filter(); + filter(); } public void sortByTocCorrectionUp(){ Collections.sort(this.completeBookList, new SortBooksByTocCorrection()); - //filter(); + filter(); } public void sortByTocCorrectionDown(){ Collections.sort(this.completeBookList, new SortBooksByTocCorrection()); Collections.reverse(completeBookList); - //filter(); + filter(); } - - + public String getBookNameFilter() { + return bookNameFilter; + } + + + + public void setBookNameFilter(String bookNameFilter) { + this.bookNameFilter = bookNameFilter; + } + + + + public String getLevel2Filter() { + return level2Filter; + } + + + + public void setLevel2Filter(String level2Filter) { + this.level2Filter = level2Filter; + } + + + + public String getPeriodFilter() { + return periodFilter; + } + + + + public void setPeriodFilter(String periodFilter) { + this.periodFilter = periodFilter; + } + + + + public String getEditionFilter() { + return editionFilter; + } + + + + public void setEditionFilter(String editionFilter) { + this.editionFilter = editionFilter; + } + + + + }