annotate src/main/java/de/mpiwg/web/jsp/BooksPage.java @ 13:9c6e74761f60

new: link to Edit Toc page
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Wed, 27 May 2015 15:30:09 +0200
parents d57fe2179f61
children 3387d855a194
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 package de.mpiwg.web.jsp;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
2
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
3 import java.sql.Connection;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
4 import java.sql.ResultSet;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
5 import java.sql.Statement;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
6 import java.util.ArrayList;
11
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
7 import java.util.HashMap;
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
8 import java.util.List;
11
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
9 import java.util.Map;
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
11 import javax.servlet.http.HttpServletRequest;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
12 import javax.servlet.http.HttpServletResponse;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
13
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
14 import org.apache.log4j.Logger;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
15
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 import de.mpiwg.gazetteer.db.DBBook;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
17 import de.mpiwg.gazetteer.db.DBSectionVersion;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
18 import de.mpiwg.gazetteer.utils.DBService;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
19
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
20 public class BooksPage extends AbstractJSPPage{
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
21
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
22 private static Logger logger = Logger.getLogger(BooksPage.class);
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
23
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
24 public static String bean = "booksBean";
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
25 public static String page = "pages/books.jsp";
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
26 private List<DBBook> completeBookList;
11
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
27 private Map<String, DBSectionVersion> sectionVersionMap = null;
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
28
13
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
29 private int bookNumber;
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
30
13
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
31
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
32 public int getBookNumber() {
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
33 return bookNumber;
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
34 }
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
35
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
36 public void setBookNumber(int bookNumber) {
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
37 this.bookNumber = bookNumber;
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
38 }
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
39
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
40 public void loadParameters(HttpServletRequest request, HttpServletResponse response){
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
41 this.request = request;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
42 this.response = response;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
43
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
44 }
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
45
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
46 public List<DBBook> getCompleteBookList() {
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
47 return completeBookList;
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
48 }
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
49
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
50 public void loadBooks(){
12
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
51 if(this.completeBookList == null){
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
52 this.forceLoadBooks();
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
53 }
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
54 }
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
55
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
56 public void forceLoadBooks(){
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
57 logger.debug("loadBooks");
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
58
11
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
59 this.loadSectionsVersion();
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
60
12
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
61 logger.debug("loading book list");
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
62 this.completeBookList = new ArrayList<DBBook>();
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
63 if(getSessionBean().getUser() != null){
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
64 // === load book table from db ==
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
65 for(DBBook book : DBService.getInstance().getBooks()){
13
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
66 // set editor and date (current version)
12
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
67 book.setCurrentSectionVersion(sectionVersionMap.get(book.getId()));
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
68
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
69 this.completeBookList.add(book);
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
70 }
13
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
71
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
72 this.setBookNumber(this.completeBookList.size());
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
73 logger.debug(this.getBookNumber());
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
74 logger.debug(Integer.toString(this.getBookNumber()));
9c6e74761f60 new: link to Edit Toc page
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents: 12
diff changeset
75
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
76 }
12
d57fe2179f61 Improvement of book page
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 11
diff changeset
77
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
78 }
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
79
11
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
80 private void loadSectionsVersion(){
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
81 this.sectionVersionMap = new HashMap<String, DBSectionVersion>();
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
82
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
83 try {
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
84 for(DBSectionVersion sv : DBService.getInstance().getSectionVersionList()){
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
85 this.sectionVersionMap.put(sv.getBooks_id(), sv);
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
86 }
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
87 } catch (Exception e) {
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
88 addMsg("There is an internal error: " + e.getLocalizedMessage());
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
89 e.printStackTrace();
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
90 }
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
91
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
92
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
93 }
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
94
11
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
95
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
96
f15b0214cc1c Adding query for table SectionVersion
"jurzua <jurzua@mpiwg-berlin.mpg.de>"
parents: 10
diff changeset
97
10
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
98
efe0e7174139 add BooksPage
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff changeset
99 }