1 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 28 public class TrafficData extends HttpServlet 29 { 30 private java.util.List list1 = new ArrayList(); 31 private java.util.List list2 = new ArrayList(); 32 private java.util.List list3 = new ArrayList(); 33 private java.util.List list4 = new ArrayList(); 34 private ServletContext context = null; 35 36 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 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 lists = bean.getResult(); 55 56 java.util.Iterator it = lists.iterator(); 57 list1 = (java.util.List )it.next(); 58 list2 = (java.util.List )it.next(); 59 list3 = (java.util.List )it.next(); 60 list4 = (java.util.List )it.next(); 61 62 TimeSeriesCollection dataset = new TimeSeriesCollection(); 63 64 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 (ts.getTime())); 75 s1.add(sec, ((Integer )list2.get(index)).doubleValue()); 76 s2.add(sec, ((Integer )list3.get(index)).doubleValue()); 77 s3.add(sec, ((Integer )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 (true)); 104 } 105 106 DateAxis axis = (DateAxis) plot.getDomainAxis(); 107 axis.setDateFormatOverride(new SimpleDateFormat("MMM-dd-yy HH:mm")); 108 109 NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); 111 rangeAxis.setStandardTickUnits(TickUnits.createIntegerTickUnits()); 112 113 OutputStream out = response.getOutputStream(); 114 115 ChartUtilities.writeChartAsPNG(out, chart, width, height); 117 out.close(); 118 } 119 120 124 protected void doPost(HttpServletRequest request, HttpServletResponse response) 125 throws ServletException, IOException 126 { 127 doGet(request, response); 129 130 } 131 132 134 public String getServletInfo() 135 { 136 return "Traffic Report Servlet"; 137 } 138 139 } 140 | Popular Tags |