KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quikj > application > communicator > applications > webtalk > controller > TrafficData


1 /*
2  * TrafficData.java
3  *
4  * Created on March 14, 2003, 9:20 PM
5  */

6
7 package com.quikj.application.communicator.applications.webtalk.controller;
8
9 import com.quikj.application.communicator.applications.webtalk.model.*;
10
11 import java.sql.*;
12 import java.util.*;
13 import java.io.*;
14 import java.text.*;
15
16 import javax.servlet.*;
17 import javax.servlet.http.*;
18
19 import org.jfree.chart.*;
20 import org.jfree.chart.axis.*;
21 import org.jfree.chart.plot.*;
22 import org.jfree.chart.renderer.*;
23 import org.jfree.data.time.*;
24 /**
25  *
26  * @author Vinod Batra
27  */

28 public class TrafficData extends HttpServlet
29 {
30     private java.util.List JavaDoc list1 = new ArrayList();
31     private java.util.List JavaDoc list2 = new ArrayList();
32     private java.util.List JavaDoc list3 = new ArrayList();
33     private java.util.List JavaDoc list4 = new ArrayList();
34     private ServletContext context = null;
35     
36     /** Creates a new instance of TrafficData */
37     public TrafficData()
38     {
39     }
40     
41     protected void doGet(HttpServletRequest request, HttpServletResponse response)
42     throws ServletException, IOException
43     {
44         response.setContentType("image/png");
45         
46         TrafficDataBean bean = (TrafficDataBean)request.getAttribute("trafficData");
47         
48         String JavaDoc title = "Traffic Pattern Report for Group '"
49         + bean.getGroupid() + "'";
50         
51         int width = bean.getWidth();
52         int height = bean.getHeight();
53         
54         java.util.List JavaDoc lists = bean.getResult();
55         
56         java.util.Iterator JavaDoc it = lists.iterator();
57         list1 = (java.util.List JavaDoc)it.next();
58         list2 = (java.util.List JavaDoc)it.next();
59         list3 = (java.util.List JavaDoc)it.next();
60         list4 = (java.util.List JavaDoc)it.next();
61         
62         TimeSeriesCollection dataset = new TimeSeriesCollection();
63         
64         // plot all the series
65
TimeSeries s1 = new TimeSeries("# Active Operators", Second.class);
66         TimeSeries s2 = new TimeSeries("# Queue size", Second.class);
67         TimeSeries s3 = new TimeSeries("# Conversations", Second.class);
68         
69         Iterator iter = list1.iterator();
70         int index = 0;
71         while (iter.hasNext() == true)
72         {
73             Timestamp ts = (Timestamp)iter.next();
74             Second sec = new Second(new java.util.Date JavaDoc(ts.getTime()));
75             s1.add(sec, ((Integer JavaDoc)list2.get(index)).doubleValue());
76             s2.add(sec, ((Integer JavaDoc)list3.get(index)).doubleValue());
77             s3.add(sec, ((Integer JavaDoc)list4.get(index)).doubleValue());
78             
79             index++;
80         }
81         
82         dataset.addSeries(s1);
83         dataset.addSeries(s2);
84         dataset.addSeries(s3);
85         
86         JFreeChart chart = ChartFactory.createTimeSeriesChart(
87         title,
88         "Time",
89         "Count",
90         dataset,
91         true,
92         true,
93         false);
94         
95         StandardLegend sl = (StandardLegend) chart.getLegend();
96         sl.setDisplaySeriesShapes(true);
97         XYPlot plot = chart.getXYPlot();
98         XYItemRenderer renderer = plot.getRenderer();
99         if (renderer instanceof StandardXYItemRenderer)
100         {
101             StandardXYItemRenderer rr = (StandardXYItemRenderer) renderer;
102             rr.setPlotShapes(true);
103             rr.setDefaultShapesFilled(new Boolean JavaDoc(true));
104         }
105         
106         DateAxis axis = (DateAxis) plot.getDomainAxis();
107         axis.setDateFormatOverride(new SimpleDateFormat("MMM-dd-yy HH:mm"));
108         
109         // change the auto tick unit selection to integer units only...
110
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
111         rangeAxis.setStandardTickUnits(TickUnits.createIntegerTickUnits());
112         
113         OutputStream out = response.getOutputStream();
114         
115         // finally create an PNG image
116
ChartUtilities.writeChartAsPNG(out, chart, width, height);
117         out.close();
118     }
119     
120     /** Handles the HTTP <code>POST</code> method.
121      * @param request servlet request
122      * @param response servlet response
123      */

124     protected void doPost(HttpServletRequest request, HttpServletResponse response)
125     throws ServletException, IOException
126     {
127         //processRequest(request, response);
128
doGet(request, response);
129         
130     }
131     
132     /** Returns a short description of the servlet.
133      */

134     public String JavaDoc getServletInfo()
135     {
136         return "Traffic Report Servlet";
137     }
138     
139 }
140
Popular Tags