changeset 15:d81a5401b9af

new: sorting in books page
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Mon, 01 Jun 2015 14:35:35 +0200
parents 3387d855a194
children a7e9c1f8edb4
files src/main/java/de/mpiwg/gazetteer/db/DBBook.java src/main/java/de/mpiwg/gazetteer/db/DBSectionVersion.java src/main/java/de/mpiwg/web/jsp/BooksPage.java src/main/java/de/mpiwg/web/jsp/JSPProxy.java src/main/webapp/pages/books.jsp
diffstat 5 files changed, 480 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/gazetteer/db/DBBook.java	Fri May 29 11:00:09 2015 +0200
+++ b/src/main/java/de/mpiwg/gazetteer/db/DBBook.java	Mon Jun 01 14:35:35 2015 +0200
@@ -3,9 +3,7 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
-import com.sun.istack.internal.logging.Logger;
-
-public class DBBook {
+public class DBBook implements Comparable<DBBook>{
 
 	private String id;
 	private String name;
@@ -25,7 +23,7 @@
 	private Integer start_year;
 	private Integer end_year;
 	private String comments;
-	private int toc_correction;
+	private Integer toc_correction;
 	
 	
 
@@ -53,6 +51,11 @@
 		this.toc_correction = rs.getInt("toc_correction");
 		
 	}
+	
+	@Override
+	public int compareTo(DBBook o) {
+		return this.getName().compareTo(o.getName());
+	}
 
 	public Integer getToc_correction() {
 		return toc_correction;
--- a/src/main/java/de/mpiwg/gazetteer/db/DBSectionVersion.java	Fri May 29 11:00:09 2015 +0200
+++ b/src/main/java/de/mpiwg/gazetteer/db/DBSectionVersion.java	Mon Jun 01 14:35:35 2015 +0200
@@ -3,7 +3,7 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
-public class DBSectionVersion {
+public class DBSectionVersion implements Comparable<DBSectionVersion>{
 	
 	private String id;
 	private String version;
@@ -58,9 +58,13 @@
 	public void setBooks_id(String books_id) {
 		this.books_id = books_id;
 	}
-	
+
+	@Override
+	public int compareTo(DBSectionVersion o) {
+		return this.getId().compareTo(o.getId());
 	
-
+	}
+	
 	
 	
 	
--- a/src/main/java/de/mpiwg/web/jsp/BooksPage.java	Fri May 29 11:00:09 2015 +0200
+++ b/src/main/java/de/mpiwg/web/jsp/BooksPage.java	Mon Jun 01 14:35:35 2015 +0200
@@ -2,6 +2,7 @@
 
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -14,6 +15,18 @@
 import de.mpiwg.gazetteer.db.DBBook;
 import de.mpiwg.gazetteer.db.DBSectionVersion;
 import de.mpiwg.gazetteer.utils.DBService;
+import de.mpiwg.web.books.SortBooksByAdminType;
+import de.mpiwg.web.books.SortBooksByBookId;
+import de.mpiwg.web.books.SortBooksByDate;
+import de.mpiwg.web.books.SortBooksByDynasty;
+import de.mpiwg.web.books.SortBooksByEdition;
+import de.mpiwg.web.books.SortBooksByEditor;
+import de.mpiwg.web.books.SortBooksByLevel1;
+import de.mpiwg.web.books.SortBooksByLevel2;
+import de.mpiwg.web.books.SortBooksByName;
+import de.mpiwg.web.books.SortBooksByPeriod;
+import de.mpiwg.web.books.SortBooksByStartYear;
+import de.mpiwg.web.books.SortBooksByTocCorrection;
 
 public class BooksPage extends AbstractJSPPage{
 
@@ -131,6 +144,139 @@
 		
 	}
 
-	
+	public void sortByBookIdUp() {
+		Collections.sort(this.completeBookList, new SortBooksByBookId());
+		//filter();
+	}
+
+	public void sortByBookIdDown() {
+		Collections.sort(this.completeBookList, new SortBooksByBookId());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
 
+	public void sortByBookNameUp(){
+		Collections.sort(this.completeBookList, new SortBooksByName());
+		//filter();
+	}
+	
+	public void sortByBookNameDown(){
+		Collections.sort(this.completeBookList, new SortBooksByName());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+	
+	public void sortByLevel1Up(){
+		Collections.sort(this.completeBookList, new SortBooksByLevel1());
+		//filter();
+	}
+	
+	public void sortByLevel1Down(){
+		Collections.sort(this.completeBookList, new SortBooksByLevel1());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+	public void sortByLevel2Up(){
+		Collections.sort(this.completeBookList, new SortBooksByLevel2());
+		//filter();
+	}
+	
+	public void sortByLevel2Down(){
+		Collections.sort(this.completeBookList, new SortBooksByLevel2());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+	
+	public void sortByPeriodUp(){
+		Collections.sort(this.completeBookList, new SortBooksByPeriod());
+		//filter();
+	}
+	
+	public void sortByPeriodDown(){
+		Collections.sort(this.completeBookList, new SortBooksByPeriod());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+	
+	public void sortByAdminTypeUp(){
+		Collections.sort(this.completeBookList, new SortBooksByAdminType());
+		//filter();
+	}
+	
+	public void sortByAdminTypeDown(){
+		Collections.sort(this.completeBookList, new SortBooksByAdminType());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+	
+	public void sortByStartYearUp(){
+		Collections.sort(this.completeBookList, new SortBooksByStartYear());
+		//filter();
+	}
+	
+	public void sortByStartYearDown(){
+		Collections.sort(this.completeBookList, new SortBooksByStartYear());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+	
+	public void sortByDynastyUp(){
+		Collections.sort(this.completeBookList, new SortBooksByDynasty());
+		//filter();
+	}
+	
+	public void sortByDynastyDown(){
+		Collections.sort(this.completeBookList, new SortBooksByDynasty());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+	public void sortByEditionUp(){
+		Collections.sort(this.completeBookList, new SortBooksByEdition());
+		//filter();
+	}
+	
+	public void sortByEditionDown(){
+		Collections.sort(this.completeBookList, new SortBooksByEdition());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+
+	
+	
+	public void sortByEditorUp(){
+		Collections.sort(this.completeBookList, new SortBooksByEditor());
+		//filter();
+	}
+	
+	public void sortByEditorDown(){
+		Collections.sort(this.completeBookList, new SortBooksByEditor());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+	
+	public void sortByDateUp(){
+		Collections.sort(this.completeBookList, new SortBooksByDate());
+		//filter();
+	}
+	
+	public void sortByDateDown(){
+		Collections.sort(this.completeBookList, new SortBooksByDate());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+
+	public void sortByTocCorrectionUp(){
+		Collections.sort(this.completeBookList, new SortBooksByTocCorrection());
+		//filter();
+	}
+	
+	public void sortByTocCorrectionDown(){
+		Collections.sort(this.completeBookList, new SortBooksByTocCorrection());
+		Collections.reverse(completeBookList);
+		//filter();
+	}
+	
+	
+	
+	
 }
--- a/src/main/java/de/mpiwg/web/jsp/JSPProxy.java	Fri May 29 11:00:09 2015 +0200
+++ b/src/main/java/de/mpiwg/web/jsp/JSPProxy.java	Mon Jun 01 14:35:35 2015 +0200
@@ -155,8 +155,70 @@
 					getSessionBean().getBooksPage().setTocCorrection();
 				} else if (StringUtils.equals(action, "unSetTocCorrection")){
 					getSessionBean().getBooksPage().unSetTocCorrection();
+				
 				} else if (StringUtils.equals(action, "forceReloadBooks")) {
 					getSessionBean().getBooksPage().forceLoadBooks();
+				
+				// Sorting
+				} else if(StringUtils.equals(action, "sortByBookIdUp")){
+					getSessionBean().getBooksPage().sortByBookIdUp();
+				} else if(StringUtils.equals(action, "sortByBookIdDown")){
+					getSessionBean().getBooksPage().sortByBookIdDown();
+					
+				} else if(StringUtils.equals(action, "sortByBookNameUp")){
+					getSessionBean().getBooksPage().sortByBookNameUp();
+				} else if(StringUtils.equals(action, "sortByBookNameDown")){
+					getSessionBean().getBooksPage().sortByBookNameDown();
+					
+				} else if(StringUtils.equals(action, "sortByLevel1Up")){
+					getSessionBean().getBooksPage().sortByLevel1Up();
+				} else if(StringUtils.equals(action, "sortByLevel1Down")){
+					getSessionBean().getBooksPage().sortByLevel1Down();
+					
+				} else if(StringUtils.equals(action, "sortByLevel2Up")){
+					getSessionBean().getBooksPage().sortByLevel2Up();
+				} else if(StringUtils.equals(action, "sortByLevel2Down")){
+					getSessionBean().getBooksPage().sortByLevel2Down();
+					
+				} else if(StringUtils.equals(action, "sortByPeriodUp")){
+					getSessionBean().getBooksPage().sortByPeriodUp();
+				} else if(StringUtils.equals(action, "sortByPeriodDown")){
+					getSessionBean().getBooksPage().sortByPeriodDown();
+					
+				} else if(StringUtils.equals(action, "sortByDynastyUp")){
+					getSessionBean().getBooksPage().sortByDynastyUp();
+				} else if(StringUtils.equals(action, "sortByDynastyDown")){
+					getSessionBean().getBooksPage().sortByDynastyDown();
+					
+				} else if(StringUtils.equals(action, "sortByAdminTypeUp")){
+					getSessionBean().getBooksPage().sortByAdminTypeUp();
+				} else if(StringUtils.equals(action, "sortByAdminTypeDown")){
+					getSessionBean().getBooksPage().sortByAdminTypeDown();
+				
+				} else if(StringUtils.equals(action, "sortByStartYearUp")){
+					getSessionBean().getBooksPage().sortByStartYearUp();
+				} else if(StringUtils.equals(action, "sortByStartYearDown")){
+					getSessionBean().getBooksPage().sortByStartYearDown();
+				
+				} else if(StringUtils.equals(action, "sortByEditionUp")){
+					getSessionBean().getBooksPage().sortByEditionUp();
+				} else if(StringUtils.equals(action, "sortByEditionDown")){
+					getSessionBean().getBooksPage().sortByEditionDown();
+				
+				} else if(StringUtils.equals(action, "sortByTocCorrectionUp")){
+					getSessionBean().getBooksPage().sortByTocCorrectionUp();
+				} else if(StringUtils.equals(action, "sortByTocCorrectionDown")){
+					getSessionBean().getBooksPage().sortByTocCorrectionDown();
+				
+				} else if(StringUtils.equals(action, "sortByEditorUp")){
+					getSessionBean().getBooksPage().sortByEditorUp();
+				} else if(StringUtils.equals(action, "sortByEditorDown")){
+					getSessionBean().getBooksPage().sortByEditorDown();
+				
+				} else if(StringUtils.equals(action, "sortByDateUp")){
+					getSessionBean().getBooksPage().sortByDateUp();
+				} else if(StringUtils.equals(action, "sortByDateDown")){
+					getSessionBean().getBooksPage().sortByDateDown();
 				}
 				
 				return BooksPage.page;
--- a/src/main/webapp/pages/books.jsp	Fri May 29 11:00:09 2015 +0200
+++ b/src/main/webapp/pages/books.jsp	Mon Jun 01 14:35:35 2015 +0200
@@ -185,24 +185,266 @@
 				
 				<table style="width: 90%; margin-left: auto;margin-right: auto;"  class="pageTable">
 					<tr>
-						<td><label class="tableTitle">Book ID</label></td>
-						<td><label class="tableTitle">Book Name</label></td> 
-						<td><label class="tableTitle">Edition</label></td>
-						<td><label class="tableTitle">Level 1</label></td>
-						<td><label class="tableTitle">Level 2</label></td>
-						<td><label class="tableTitle">Period</label></td>
-						<td><label class="tableTitle">Dynasty</label></td>
-						<td><label class="tableTitle">Admin Type</label></td>
-						<td><label class="tableTitle">Start Year</label></td>
+					<td>
+						<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Book ID</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image" 
+													onclick="setAction('sortByBookIdUp', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByBookIdDown', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																				
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+					
+						</td>
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Book Name</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByBookNameUp', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByBookNameDown', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+						</td> 
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Edition</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByEditionUp', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByEditionDown', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Level 1</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByLevel1Up', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByLevel1Down', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Level 2</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByLevel2Up', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByLevel2Down', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Period</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByPeriodUp', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByPeriodDown', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Dynasty</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByDynastyUp', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByDynastyDown', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Admin Type</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByAdminTypeUp', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByAdminTypeDown', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Start Year</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByStartYearUp', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByStartYearDown', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+						</td>
 						
 						<td><label class="tableTitle">Edit TOC</label></td> <!-- go to toc page -->
-						<td><label class="tableTitle">TOC Finished</label>
-							<input type="image"
-								onclick="setAction('forceReloadBooks', 'booksForm');"
-								src="<%=sessionBean.getApplicationBean().getRefreshImage()%>" width="20" height="20"/>
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">TOC Finished
+										<input type="image"
+										onclick="setAction('forceReloadBooks', 'booksForm');"
+										src="<%=sessionBean.getApplicationBean().getRefreshImage()%>" width="20" height="20"/>
+										</label>
+									</td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByTocCorrectionUp', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByTocCorrectionDown', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
 						</td> <!-- finished or not -->
-						<td><label class="tableTitle">Last Editor</label></td>
-						<td><label class="tableTitle">Edit Time</label></td>
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Last Editor</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByEditorUp', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByEditorDown', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							<table class="sortTable">
+								<tr>
+									<td><label class="tableTitle">Edit Time</label></td>
+									<td>
+										<table>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByDateUp', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getUpImage()%>"/>										
+											</td></tr>
+											<tr><td>
+												<input type="image"
+													onclick="setAction('sortByDateDown', 'booksForm');"
+													src="<%=sessionBean.getApplicationBean().getDownImage()%>"/>																	
+											</td></tr>
+										</table>
+									</td>
+								</tr>
+							</table>
+						</td>
 						
 					</tr>