Further work on statistics display
[jabaws.git] / webservices / compbio / stat / servlet / DisplayStat.java
1 package compbio.stat.servlet;\r
2 \r
3 import java.io.IOException;\r
4 import java.sql.SQLException;\r
5 import java.text.DateFormat;\r
6 import java.text.ParseException;\r
7 import java.text.SimpleDateFormat;\r
8 import java.util.Calendar;\r
9 import java.util.Date;\r
10 import java.util.GregorianCalendar;\r
11 import java.util.Map;\r
12 \r
13 import javax.servlet.RequestDispatcher;\r
14 import javax.servlet.ServletException;\r
15 import javax.servlet.http.HttpServlet;\r
16 import javax.servlet.http.HttpServletRequest;\r
17 import javax.servlet.http.HttpServletResponse;\r
18 \r
19 import compbio.stat.servlet.util.StatCollection;\r
20 import compbio.stat.servlet.util.Totals;\r
21 \r
22 public class DisplayStat extends HttpServlet {\r
23 \r
24         @Override\r
25         protected void doGet(HttpServletRequest req, HttpServletResponse resp)\r
26                         throws ServletException, IOException {\r
27                 String month = req.getParameter("month");\r
28                 System.out.println("? " + month);\r
29                 DateFormat df = SimpleDateFormat.getInstance();\r
30 \r
31                 try {\r
32                         Date fromDate = df.parse(month);\r
33                         Map<Date, StatCollection> statsMap = StatCollection\r
34                                         .getStats(fromDate);\r
35                         assert statsMap.size() == 1;\r
36                         StatCollection stats = statsMap.values().iterator().next();\r
37                         req.setAttribute("stat", stats.getAllStat());\r
38                         req.setAttribute("statTotal", Totals.sumStats(stats.getAllStat()));\r
39                         req.setAttribute("statTotalCluster",\r
40                                         Totals.sumStats(stats.getClusterStat()));\r
41                         req.setAttribute("statTotalLocal",\r
42                                         Totals.sumStats(stats.getLocalStat()));\r
43 \r
44                         req.setAttribute("startDate", fromDate.getTime());\r
45                         Calendar c = GregorianCalendar.getInstance();\r
46                         c.setTime(fromDate);\r
47                         c.add(Calendar.MONTH, 1);\r
48                         req.setAttribute("stopDate", c.getTime());\r
49 \r
50                         RequestDispatcher dispatcher = req\r
51                                         .getRequestDispatcher("statpages/Statistics.jsp");\r
52                         dispatcher.forward(req, resp);\r
53 \r
54                 } catch (SQLException e) {\r
55                         // TODO Auto-generated catch block\r
56                         e.printStackTrace();\r
57                 } catch (ParseException e) {\r
58                         // TODO Auto-generated catch block\r
59                         e.printStackTrace();\r
60                 }\r
61 \r
62         }\r
63 }\r