diff src/main/java/de/mpiwg/web/jsp/SearchPage.java @ 94:d0dcbe8254f5

New Feature: Add book year and edition year in section searching page, also prevent from book not existing exception
author Calvin Yeh <cyeh@mpipw-berlin.mpg.com>
date Mon, 03 Jul 2017 23:43:44 +0200
parents 910cfd8521dd
children
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/web/jsp/SearchPage.java	Wed Jun 21 06:25:34 2017 +0200
+++ b/src/main/java/de/mpiwg/web/jsp/SearchPage.java	Mon Jul 03 23:43:44 2017 +0200
@@ -9,6 +9,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import de.mpiwg.web.search.*;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 
@@ -17,19 +18,6 @@
 import de.mpiwg.gazetteer.db.DBSection;
 import de.mpiwg.gazetteer.utils.DBService;
 import de.mpiwg.gazetteer.utils.DataProvider;
-import de.mpiwg.web.search.SortSectionByAdminType;
-import de.mpiwg.web.search.SortSectionByAuthor;
-import de.mpiwg.web.search.SortSectionByBookId;
-import de.mpiwg.web.search.SortSectionByBookName;
-import de.mpiwg.web.search.SortSectionByDynasty;
-import de.mpiwg.web.search.SortSectionByEdition;
-import de.mpiwg.web.search.SortSectionById;
-import de.mpiwg.web.search.SortSectionByLevel1;
-import de.mpiwg.web.search.SortSectionByLevel2;
-import de.mpiwg.web.search.SortSectionByPeriod;
-import de.mpiwg.web.search.SortSectionByStartPage;
-import de.mpiwg.web.search.SortSectionByVolume;
-import de.mpiwg.web.search.SortSectionBySource;
 
 public class SearchPage extends AbstractJSPPage{
 
@@ -60,6 +48,8 @@
 	private String bookNameFilter = new String();
 	private String periodFilter = new String();
 	private String sectionNameFilter = new String();
+    private String bookYearFilter = new String();
+    private String editionYearFilter = new String();
 	private String sourceFilter = new String();
 
 	private DataPaginator paginator = new DataPaginator();
@@ -88,6 +78,8 @@
 		this.bookNameFilter = getParameter("bookNameFilter");
 		this.periodFilter = getParameter("periodFilter");
 		this.sectionNameFilter = getParameter("sectionNameFilter");
+        this.bookYearFilter = getParameter("bookYearFilter");
+		this.editionYearFilter = getParameter("editionYearFilter");
 		this.sourceFilter = getParameter("sourceFilter");
 
 		this.searchIn = getIntParameter("searchIn");
@@ -155,7 +147,9 @@
 							(StringUtils.isEmpty(bookNameFilter) || StringUtils.startsWith(section.getBook().getName(), bookNameFilter)) &&
 							(StringUtils.isEmpty(periodFilter) || StringUtils.startsWith(section.getBook().getPeriod(), periodFilter)) &&
 							(StringUtils.isEmpty(sectionNameFilter) || StringUtils.startsWith(section.getName(), sectionNameFilter)) &&
-              (StringUtils.isEmpty(sourceFilter) || StringUtils.contains(section.getBook().getSource(), sourceFilter)) &&
+                            (StringUtils.isEmpty(bookYearFilter) || section.getBook().getBookYear() == Integer.parseInt(bookYearFilter)) &&
+                            (StringUtils.isEmpty(editionYearFilter) || section.getBook().getEditionYear() == Integer.parseInt(editionYearFilter)) &&
+                            (StringUtils.isEmpty(sourceFilter) || StringUtils.contains(section.getBook().getSource(), sourceFilter)) &&
 							(StringUtils.isEmpty(adminTypeFilter) || StringUtils.startsWith(section.getBook().getAdmin_type(), adminTypeFilter))
 									){
 						this.filteredSectionList.add(section);
@@ -533,6 +527,24 @@
 		this.periodFilter = periodFilter;
 	}
 
+    public String getBookYearFilter() {
+        return bookYearFilter;
+    }
+
+
+    public void setBookYearFilter(String bookYearFilter) {
+        this.bookYearFilter = bookYearFilter;
+    }
+
+    public String getEditionYearFilter() {
+        return editionYearFilter;
+    }
+
+
+    public void setEditionYearFilter(String editionYearFilter) {
+        this.editionYearFilter = editionYearFilter;
+    }
+
 	public String getSourceFilter() {
 		return sourceFilter;
 	}
@@ -689,6 +701,28 @@
 		filter();
 	}
 
+    public void sortByBookYearUp(){
+        Collections.sort(this.completeSectionList, new SortSectionByBookYear());
+        filter();
+    }
+
+    public void sortByBookYearDown(){
+        Collections.sort(this.completeSectionList, new SortSectionByBookYear());
+        Collections.reverse(completeSectionList);
+        filter();
+    }
+
+    public void sortByEditionYearUp(){
+        Collections.sort(this.completeSectionList, new SortSectionByEditionYear());
+        filter();
+    }
+
+    public void sortByEditionYearDown(){
+        Collections.sort(this.completeSectionList, new SortSectionByEditionYear());
+        Collections.reverse(completeSectionList);
+        filter();
+    }
+
 	public void sortBySourceUp(){
 		Collections.sort(this.completeSectionList, new SortSectionBySource());
 		filter();
@@ -701,4 +735,6 @@
 	}
 
 
+
+
 }