changeset 11:f15b0214cc1c

Adding query for table SectionVersion
author "jurzua <jurzua@mpiwg-berlin.mpg.de>"
date Tue, 26 May 2015 14:59:37 +0200
parents efe0e7174139
children d57fe2179f61
files src/main/java/de/mpiwg/gazetteer/db/DBBook.java src/main/java/de/mpiwg/gazetteer/db/DBSectionVersion.java src/main/java/de/mpiwg/gazetteer/utils/DBService.java src/main/java/de/mpiwg/web/jsp/BooksPage.java src/main/java/de/mpiwg/web/jsp/JSPProxy.java
diffstat 5 files changed, 242 insertions(+), 136 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/gazetteer/db/DBBook.java	Tue May 26 14:39:34 2015 +0200
+++ b/src/main/java/de/mpiwg/gazetteer/db/DBBook.java	Tue May 26 14:59:37 2015 +0200
@@ -25,6 +25,8 @@
 	private String comments;
 	private Integer toc_correction;
 	
+	private DBSectionVersion currentSectionVersion;
+	
 	public DBBook(ResultSet rs) throws SQLException{
 		this.name = rs.getString("name");
 		this.id = rs.getString("id");
@@ -200,6 +202,16 @@
 	public void setEnd_year(Integer end_year) {
 		this.end_year = end_year;
 	}
+
+
+	public DBSectionVersion getCurrentSectionVersion() {
+		return currentSectionVersion;
+	}
+
+
+	public void setCurrentSectionVersion(DBSectionVersion currentSectionVersion) {
+		this.currentSectionVersion = currentSectionVersion;
+	}
 	
 	
 }
--- a/src/main/java/de/mpiwg/gazetteer/db/DBSectionVersion.java	Tue May 26 14:39:34 2015 +0200
+++ b/src/main/java/de/mpiwg/gazetteer/db/DBSectionVersion.java	Tue May 26 14:59:37 2015 +0200
@@ -1,12 +1,68 @@
 package de.mpiwg.gazetteer.db;
 
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
 public class DBSectionVersion {
+	
 	private String id;
 	private String version;
 	private String editor;
 	private String date;
 	private String books_id;
 	
+	public DBSectionVersion(ResultSet rs) throws SQLException{
+		this.id = rs.getString("id");
+		this.version = rs.getString("version");
+		this.editor = rs.getString("editor");
+		this.date = rs.getString("date");
+		this.books_id = rs.getString("books_id");
+	}
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public String getVersion() {
+		return version;
+	}
+
+	public void setVersion(String version) {
+		this.version = version;
+	}
+
+	public String getEditor() {
+		return editor;
+	}
+
+	public void setEditor(String editor) {
+		this.editor = editor;
+	}
+
+	public String getDate() {
+		return date;
+	}
+
+	public void setDate(String date) {
+		this.date = date;
+	}
+
+	public String getBooks_id() {
+		return books_id;
+	}
+
+	public void setBooks_id(String books_id) {
+		this.books_id = books_id;
+	}
+	
+	
+
+	
+	
 	
 
 }
--- a/src/main/java/de/mpiwg/gazetteer/utils/DBService.java	Tue May 26 14:39:34 2015 +0200
+++ b/src/main/java/de/mpiwg/gazetteer/utils/DBService.java	Tue May 26 14:59:37 2015 +0200
@@ -601,22 +601,27 @@
 				PropertiesUtils.getPropValue("db_gazetter_password"));
 	}
 
-	public static List<DBSectionVersion> getSectionsVersionsByBooksId(String id) throws SQLException {
-	
+
+	public List<DBSectionVersion> getSectionVersionList() throws SQLException {
 		List<DBSectionVersion> section_version = new ArrayList<DBSectionVersion>();
 		// select editor, date from sections_versions where books_id = book.getId() order by version desc??
 		Connection con = null;
 		try{
 			con = getNewConnection();
 			Statement stmt = con.createStatement();
-			String query = "SELECT editor, date from sections_versions WHERE books_id='"+id+"' ORDER BY version DESC";
+			
+			String query = "";
+			
 			ResultSet rs = stmt.executeQuery(query);
-			if(rs.next()){
-				logger.debug("book id= "+id);
-				logger.debug(rs.getString("editor") + ", date: " + rs.getString("date"));
+			while(rs.next()){
+				
+				DBSectionVersion sv = new DBSectionVersion(rs);
+				section_version.add(sv);
+				
+				//logger.debug("book id= "+id);
+				//logger.debug(rs.getString("editor") + ", date: " + rs.getString("date"));
 
 			}
-			
 		} catch (Exception e) {
 			e.printStackTrace();
 		} finally {
--- a/src/main/java/de/mpiwg/web/jsp/BooksPage.java	Tue May 26 14:39:34 2015 +0200
+++ b/src/main/java/de/mpiwg/web/jsp/BooksPage.java	Tue May 26 14:59:37 2015 +0200
@@ -4,7 +4,9 @@
 import java.sql.ResultSet;
 import java.sql.Statement;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -22,6 +24,7 @@
 	public static String bean = "booksBean";
 	public static String page = "pages/books.jsp";
 	private List<DBBook> completeBookList;
+	private Map<String, DBSectionVersion> sectionVersionMap = null;
 
 	
 	public void loadParameters(HttpServletRequest request, HttpServletResponse response){
@@ -37,6 +40,8 @@
 	public void loadBooks(){
 		logger.debug("loadBooks");
 
+		this.loadSectionsVersion();
+		
 		if(this.completeBookList == null){
 			logger.debug("loading book list");
 			this.completeBookList = new ArrayList<DBBook>();
@@ -45,6 +50,8 @@
 				for(DBBook book : DBService.getInstance().getBooks()){		
 					// TODO: get editor and date by book id
 					
+					book.setCurrentSectionVersion(sectionVersionMap.get(book.getId()));
+					
 					this.completeBookList.add(book);
 				}	
 			}
@@ -53,6 +60,23 @@
 		}
 	}
 	
+	private void loadSectionsVersion(){
+		this.sectionVersionMap = new HashMap<String, DBSectionVersion>();
+		
+		try {
+			for(DBSectionVersion sv : DBService.getInstance().getSectionVersionList()){
+				this.sectionVersionMap.put(sv.getBooks_id(), sv);
+			}	
+		} catch (Exception e) {
+			addMsg("There is an internal error: " + e.getLocalizedMessage());
+			e.printStackTrace();
+		}
+		
+		
+	}
 
+	
+
+	
 
 }
--- a/src/main/java/de/mpiwg/web/jsp/JSPProxy.java	Tue May 26 14:39:34 2015 +0200
+++ b/src/main/java/de/mpiwg/web/jsp/JSPProxy.java	Tue May 26 14:59:37 2015 +0200
@@ -30,137 +30,146 @@
 		
 		logger.info("processRequest [bean= " + bean + ", action=" + action +"]");
 		
-		if(StringUtils.equals(bean, BranchPage.bean)){
-			
-			getSessionBean().getBranchPage().loadParameters(request, response);
-			
-			if(StringUtils.equals(action, "addContributor")){
-				getSessionBean().getBranchPage().addContributor();
-			} else if(StringUtils.equals(action, "removeContributor")){
-				getSessionBean().getBranchPage().removeContributor();
-			}else if(StringUtils.equals(action, "deleteFile")){
-				getSessionBean().getBranchPage().deleteFile();
-			}else if(StringUtils.equals(action, "publishFile")){
-				getSessionBean().getBranchPage().publishFile();
-			}
-			
-			return BranchPage.page;
-			
-			
-		}else if(StringUtils.equals(bean, CreateFilePage.bean)){
-			
-			getSessionBean().getCreateFilePage().loadParameters(request, response);
-			
-			if(StringUtils.equals(action, "loadSection")){
-				getSessionBean().getCreateFilePage().loadSection();
-			}else if(StringUtils.equals(action, "reset")){
-				getSessionBean().getCreateFilePage().reset();
-			}
-			
-			return CreateFilePage.page;
-			
-		}else if(StringUtils.equals(bean, HomePage.bean)){
-			
-			getSessionBean().getHomePage().loadParameters(request, response);
-			
-			if(StringUtils.equals(action, "deleteBranch")){
-				getSessionBean().getHomePage().deleteBranch();
-			}else if(StringUtils.equals(action, "reloadBranches")){
-				getSessionBean().getHomePage().reloadBranches();
-			}
-			
-			return HomePage.page;
-			
-		}else if(StringUtils.equals(bean, "loginBean")){
-			getSessionBean().loadParameters(request, response);
-			
-			if(StringUtils.equals(action, "login")){
-				getSessionBean().login();
-			}else if(StringUtils.equals(action, "logout")){
-				getSessionBean().logout();
-			}
-			
-			return "pages/home.jsp";
-			
-		}else if(StringUtils.equals(bean, SearchPage.bean)){
-			getSessionBean().getSearchPage().loadParameters(request, response);
+		try{
+			if(StringUtils.equals(bean, BranchPage.bean)){
+				
+				getSessionBean().getBranchPage().loadParameters(request, response);
+				
+				if(StringUtils.equals(action, "addContributor")){
+					getSessionBean().getBranchPage().addContributor();
+				} else if(StringUtils.equals(action, "removeContributor")){
+					getSessionBean().getBranchPage().removeContributor();
+				}else if(StringUtils.equals(action, "deleteFile")){
+					getSessionBean().getBranchPage().deleteFile();
+				}else if(StringUtils.equals(action, "publishFile")){
+					getSessionBean().getBranchPage().publishFile();
+				}
+				
+				return BranchPage.page;
+				
+				
+			}else if(StringUtils.equals(bean, CreateFilePage.bean)){
+				
+				getSessionBean().getCreateFilePage().loadParameters(request, response);
+				
+				if(StringUtils.equals(action, "loadSection")){
+					getSessionBean().getCreateFilePage().loadSection();
+				}else if(StringUtils.equals(action, "reset")){
+					getSessionBean().getCreateFilePage().reset();
+				}
+				
+				return CreateFilePage.page;
+				
+			}else if(StringUtils.equals(bean, HomePage.bean)){
+				
+				getSessionBean().getHomePage().loadParameters(request, response);
+				
+				if(StringUtils.equals(action, "deleteBranch")){
+					getSessionBean().getHomePage().deleteBranch();
+				}else if(StringUtils.equals(action, "reloadBranches")){
+					getSessionBean().getHomePage().reloadBranches();
+				}
+				
+				return HomePage.page;
+				
+			}else if(StringUtils.equals(bean, "loginBean")){
+				getSessionBean().loadParameters(request, response);
+				
+				if(StringUtils.equals(action, "login")){
+					getSessionBean().login();
+				}else if(StringUtils.equals(action, "logout")){
+					getSessionBean().logout();
+				}
+				
+				return "pages/home.jsp";
+				
+			}else if(StringUtils.equals(bean, SearchPage.bean)){
+				getSessionBean().getSearchPage().loadParameters(request, response);
+				
+				if(StringUtils.equals(action, "search")){
+					getSessionBean().getSearchPage().search();
+				} else if(StringUtils.equals(action, "filter")){
+					getSessionBean().getSearchPage().filter();
+				//PAGINATOR
+				} else if(StringUtils.equals(action, "firstPage")){
+					getSessionBean().getSearchPage().firstPage();
+				} else if(StringUtils.equals(action, "fastRewind")){
+					getSessionBean().getSearchPage().fastRewind();
+				} else if(StringUtils.equals(action, "previousPage")){
+					getSessionBean().getSearchPage().previousPage();
+				} else if(StringUtils.equals(action, "nextPage")){
+					getSessionBean().getSearchPage().nextPage();
+				} else if(StringUtils.equals(action, "fastForward")){
+					getSessionBean().getSearchPage().fastForward();
+				} else if(StringUtils.equals(action, "lastPage")){
+					getSessionBean().getSearchPage().lastPage();
+				
+				//SORTING
+				} else if(StringUtils.equals(action, "sortByBookIdUp")){
+					getSessionBean().getSearchPage().sortByBookIdUp();
+				} else if(StringUtils.equals(action, "sortByBookIdDown")){
+					getSessionBean().getSearchPage().sortByBookIdDown();
+				} else if(StringUtils.equals(action, "sortByBookNameUp")){
+					getSessionBean().getSearchPage().sortByBookNameUp();
+				} else if(StringUtils.equals(action, "sortByBookNameDown")){
+					getSessionBean().getSearchPage().sortByBookNameDown();
+				} else if(StringUtils.equals(action, "sortByDynastyUp")){
+					getSessionBean().getSearchPage().sortByDynastyUp();
+				} else if(StringUtils.equals(action, "sortByDynastyDown")){
+					getSessionBean().getSearchPage().sortByDynastyDown();
+				} else if(StringUtils.equals(action, "sortByPeriodUp")){
+					getSessionBean().getSearchPage().sortByPeriodUp();
+				} else if(StringUtils.equals(action, "sortByPeriodDown")){
+					getSessionBean().getSearchPage().sortByPeriodDown();
+				} else if(StringUtils.equals(action, "sortByVolumeUp")){
+					getSessionBean().getSearchPage().sortByVolumeUp();
+				} else if(StringUtils.equals(action, "sortByVolumeDown")){
+					getSessionBean().getSearchPage().sortByVolumeDown();
+				} else if(StringUtils.equals(action, "sortBySectionNameUp")){
+					getSessionBean().getSearchPage().sortBySectionNameUp();
+				} else if(StringUtils.equals(action, "sortBySectionNameDown")){
+					getSessionBean().getSearchPage().sortBySectionNameDown();
+				
+				} else if(StringUtils.equals(action, "sortByLevel1Up")){
+					getSessionBean().getSearchPage().sortByLevel1Up();
+				} else if(StringUtils.equals(action, "sortByLevel1Down")){
+					getSessionBean().getSearchPage().sortByLevel1Down();
+					
+				} else if(StringUtils.equals(action, "sortByAdminTypeUp")){
+					getSessionBean().getSearchPage().sortByAdminTypeUp();
+				} else if(StringUtils.equals(action, "sortByAdminTypeDown")){
+					getSessionBean().getSearchPage().sortByAdminTypeDown();
+				
+				} else if(StringUtils.equals(action, "sortByStartPageUp")){
+					getSessionBean().getSearchPage().sortByStartPageUp();
+				} else if(StringUtils.equals(action, "sortByStartPageDown")){
+					getSessionBean().getSearchPage().sortByStartPageDown();
+				} 
+					
+				return SearchPage.page;
+				
+			} else if(StringUtils.equals(bean, BooksPage.bean)){
+				
+				getSessionBean().getBooksPage().loadParameters(request, response);
+				
+				if(StringUtils.equals(action, "editToc")) {
+					logger.info("toc page here...");
+					// TODO: more information here needed: book_id, user info...
+					
+					// TODO: TOCPage
+					// return TOCPage.page;
+				}
+				
+				return HomePage.page;
+			} 
 			
-			if(StringUtils.equals(action, "search")){
-				getSessionBean().getSearchPage().search();
-			} else if(StringUtils.equals(action, "filter")){
-				getSessionBean().getSearchPage().filter();
-			//PAGINATOR
-			} else if(StringUtils.equals(action, "firstPage")){
-				getSessionBean().getSearchPage().firstPage();
-			} else if(StringUtils.equals(action, "fastRewind")){
-				getSessionBean().getSearchPage().fastRewind();
-			} else if(StringUtils.equals(action, "previousPage")){
-				getSessionBean().getSearchPage().previousPage();
-			} else if(StringUtils.equals(action, "nextPage")){
-				getSessionBean().getSearchPage().nextPage();
-			} else if(StringUtils.equals(action, "fastForward")){
-				getSessionBean().getSearchPage().fastForward();
-			} else if(StringUtils.equals(action, "lastPage")){
-				getSessionBean().getSearchPage().lastPage();
-			
-			//SORTING
-			} else if(StringUtils.equals(action, "sortByBookIdUp")){
-				getSessionBean().getSearchPage().sortByBookIdUp();
-			} else if(StringUtils.equals(action, "sortByBookIdDown")){
-				getSessionBean().getSearchPage().sortByBookIdDown();
-			} else if(StringUtils.equals(action, "sortByBookNameUp")){
-				getSessionBean().getSearchPage().sortByBookNameUp();
-			} else if(StringUtils.equals(action, "sortByBookNameDown")){
-				getSessionBean().getSearchPage().sortByBookNameDown();
-			} else if(StringUtils.equals(action, "sortByDynastyUp")){
-				getSessionBean().getSearchPage().sortByDynastyUp();
-			} else if(StringUtils.equals(action, "sortByDynastyDown")){
-				getSessionBean().getSearchPage().sortByDynastyDown();
-			} else if(StringUtils.equals(action, "sortByPeriodUp")){
-				getSessionBean().getSearchPage().sortByPeriodUp();
-			} else if(StringUtils.equals(action, "sortByPeriodDown")){
-				getSessionBean().getSearchPage().sortByPeriodDown();
-			} else if(StringUtils.equals(action, "sortByVolumeUp")){
-				getSessionBean().getSearchPage().sortByVolumeUp();
-			} else if(StringUtils.equals(action, "sortByVolumeDown")){
-				getSessionBean().getSearchPage().sortByVolumeDown();
-			} else if(StringUtils.equals(action, "sortBySectionNameUp")){
-				getSessionBean().getSearchPage().sortBySectionNameUp();
-			} else if(StringUtils.equals(action, "sortBySectionNameDown")){
-				getSessionBean().getSearchPage().sortBySectionNameDown();
-			
-			} else if(StringUtils.equals(action, "sortByLevel1Up")){
-				getSessionBean().getSearchPage().sortByLevel1Up();
-			} else if(StringUtils.equals(action, "sortByLevel1Down")){
-				getSessionBean().getSearchPage().sortByLevel1Down();
-				
-			} else if(StringUtils.equals(action, "sortByAdminTypeUp")){
-				getSessionBean().getSearchPage().sortByAdminTypeUp();
-			} else if(StringUtils.equals(action, "sortByAdminTypeDown")){
-				getSessionBean().getSearchPage().sortByAdminTypeDown();
-			
-			} else if(StringUtils.equals(action, "sortByStartPageUp")){
-				getSessionBean().getSearchPage().sortByStartPageUp();
-			} else if(StringUtils.equals(action, "sortByStartPageDown")){
-				getSessionBean().getSearchPage().sortByStartPageDown();
-			} 
-				
-			return SearchPage.page;
-			
-		} else if(StringUtils.equals(bean, BooksPage.bean)){
-			
-			getSessionBean().getBooksPage().loadParameters(request, response);
-			
-			if(StringUtils.equals(action, "editToc")) {
-				logger.info("toc page here...");
-				// TODO: more information here needed: book_id, user info...
-				
-				// TODO: TOCPage
-				// return TOCPage.page;
-			}
-			
+		}catch(Exception e){
+			e.printStackTrace();
+			addMsg("There is an internal error: " + e.getLocalizedMessage());
 			return HomePage.page;
-		} 
+		}
+		
+		
 		
 		//Default Page
 		return "pages/search.jsp";