Further work on statistics display
[jabaws.git] / webservices / compbio / stat / servlet / DisplayStat.java
index 9f88069..957dd7b 100644 (file)
@@ -2,11 +2,13 @@ package compbio.stat.servlet;
 \r
 import java.io.IOException;\r
 import java.sql.SQLException;\r
-import java.sql.Timestamp;\r
+import java.text.DateFormat;\r
+import java.text.ParseException;\r
+import java.text.SimpleDateFormat;\r
 import java.util.Calendar;\r
 import java.util.Date;\r
+import java.util.GregorianCalendar;\r
 import java.util.Map;\r
-import java.util.TreeMap;\r
 \r
 import javax.servlet.RequestDispatcher;\r
 import javax.servlet.ServletException;\r
@@ -14,54 +16,36 @@ import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
 \r
-import compbio.stat.collector.StatDB;\r
-import compbio.stat.collector.StatProcessor;\r
-import compbio.ws.client.Services;\r
+import compbio.stat.servlet.util.StatCollection;\r
+import compbio.stat.servlet.util.Totals;\r
 \r
 public class DisplayStat extends HttpServlet {\r
 \r
        @Override\r
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)\r
                        throws ServletException, IOException {\r
-               // TODO\r
-               Calendar startTime = Calendar.getInstance();\r
-               startTime.roll(Calendar.YEAR, false);\r
-               Timestamp startDate = new Timestamp(startTime.getTimeInMillis());\r
-               Timestamp stopDate = new Timestamp(new Date().getTime());\r
-               StatDB statdb = null;\r
-               try {\r
-                       statdb = new StatDB();\r
-\r
-                       Map<Services, StatProcessor> stats = new TreeMap<Services, StatProcessor>();\r
-                       for (Services service : Services.values()) {\r
-                               stats.put(\r
-                                               service,\r
-                                               new StatProcessor(statdb.readData(startDate, stopDate,\r
-                                                               service, null)));\r
-                       }\r
-\r
-                       Map<Services, StatProcessor> statsCluster = new TreeMap<Services, StatProcessor>();\r
-                       for (Services service : Services.values()) {\r
-                               statsCluster.put(\r
-                                               service,\r
-                                               new StatProcessor(statdb.readData(startDate, stopDate,\r
-                                                               service, true)));\r
-                       }\r
-\r
-                       Map<Services, StatProcessor> statsLocal = new TreeMap<Services, StatProcessor>();\r
-                       for (Services service : Services.values()) {\r
-                               statsLocal.put(\r
-                                               service,\r
-                                               new StatProcessor(statdb.readData(startDate, stopDate,\r
-                                                               service, false)));\r
-                       }\r
-                       req.setAttribute("stat", stats);\r
-                       req.setAttribute("statTotal", Totals.sumStats(stats));\r
+               String month = req.getParameter("month");\r
+               System.out.println("? " + month);\r
+               DateFormat df = SimpleDateFormat.getInstance();\r
 \r
-                       req.setAttribute("statCluster", statsCluster);\r
-                       req.setAttribute("statLocal", statsLocal);\r
-                       req.setAttribute("startDate", startDate.getTime());\r
-                       req.setAttribute("stopDate", stopDate.getTime());\r
+               try {\r
+                       Date fromDate = df.parse(month);\r
+                       Map<Date, StatCollection> statsMap = StatCollection\r
+                                       .getStats(fromDate);\r
+                       assert statsMap.size() == 1;\r
+                       StatCollection stats = statsMap.values().iterator().next();\r
+                       req.setAttribute("stat", stats.getAllStat());\r
+                       req.setAttribute("statTotal", Totals.sumStats(stats.getAllStat()));\r
+                       req.setAttribute("statTotalCluster",\r
+                                       Totals.sumStats(stats.getClusterStat()));\r
+                       req.setAttribute("statTotalLocal",\r
+                                       Totals.sumStats(stats.getLocalStat()));\r
+\r
+                       req.setAttribute("startDate", fromDate.getTime());\r
+                       Calendar c = GregorianCalendar.getInstance();\r
+                       c.setTime(fromDate);\r
+                       c.add(Calendar.MONTH, 1);\r
+                       req.setAttribute("stopDate", c.getTime());\r
 \r
                        RequestDispatcher dispatcher = req\r
                                        .getRequestDispatcher("statpages/Statistics.jsp");\r
@@ -70,8 +54,10 @@ public class DisplayStat extends HttpServlet {
                } catch (SQLException e) {\r
                        // TODO Auto-generated catch block\r
                        e.printStackTrace();\r
+               } catch (ParseException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
                }\r
 \r
        }\r
-\r
 }\r