ChartServlet.java
上传用户:mingda
上传日期:2017-06-20
资源大小:27691k
文件大小:5k
源码类别:

OA系统

开发平台:

Java

  1. // Decompiled by DJ v2.9.9.60 Copyright 2000 Atanas Neshkov  Date: 2002-12-05 9:36:14
  2. // Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
  3. // Decompiler options: packimports(3) 
  4. // Source File Name:   ChartServlet.java
  5. package cn.com.fcsoft.chart;
  6. import cn.com.fcsoft.chart.jpeg.JpegEncoder;
  7. import java.awt.*;
  8. import java.io.IOException;
  9. import java.io.OutputStream;
  10. import java.util.Enumeration;
  11. import java.util.StringTokenizer;
  12. import javax.servlet.*;
  13. // Referenced classes of package com.objectplanet.chart:
  14. //            ChartApplet, Chart, BarChartApplet, LineChartApplet, 
  15. //            PieChartApplet
  16. public class ChartServlet extends GenericServlet
  17. {
  18.     public String encodeChartImage(Image image, OutputStream outputstream)
  19.         throws IOException
  20.     {
  21.         if(image != null && outputstream != null)
  22.         {
  23.             JpegEncoder jpegencoder = new JpegEncoder(image, 75, outputstream);
  24.             jpegencoder.Compress();
  25.             outputstream.flush();
  26.         }
  27.         return "image/jpeg";
  28.     }
  29.     public ChartServlet()
  30.     {
  31.     }
  32.     private final boolean hasValidLicense()
  33.     {
  34.         return true;
  35.     }
  36.     protected static Double[] getDoubleValues(String s)
  37.     {
  38.         Double adouble[] = null;
  39.         if(s != null && !s.equals(""))
  40.         {
  41.             StringTokenizer stringtokenizer = new StringTokenizer(s, ",");
  42.             adouble = new Double[stringtokenizer.countTokens()];
  43.             for(int i = 0; i < adouble.length; i++)
  44.                 try
  45.                 {
  46.                     adouble[i] = new Double(stringtokenizer.nextToken());
  47.                 }
  48.                 catch(NumberFormatException _ex) { }
  49.         }
  50.         return adouble;
  51.     }
  52.     public synchronized void service(ServletRequest servletrequest, ServletResponse servletresponse)
  53.         throws ServletException, IOException
  54.     {
  55.         Object obj = null;
  56.         String s = servletrequest.getParameter("chart");
  57.         s = s == null ? "bar" : s;
  58.         if(s.equals("bar"))
  59.             obj = barChart;
  60.         else
  61.         if(s.equals("line"))
  62.             obj = lineChart;
  63.         else
  64.         if(s.equals("pie"))
  65.             obj = pieChart;
  66.         if(obj == null)
  67.             return;
  68.         ((ChartApplet) (obj)).theChart.setSize(300, 200);
  69.         ((ChartApplet) (obj)).reset();
  70.         ((ChartApplet) (obj)).setParameter("seriesCount", servletrequest.getParameter("seriesCount"));
  71.         String s1 = servletrequest.getParameter("sampleCount");
  72.         if(s1 == null || s1.trim().length() == 0)
  73.         {
  74.             Double adouble[] = getDoubleValues(servletrequest.getParameter("sampleValues"));
  75.             int i = adouble == null ? 0 : adouble.length;
  76.             int j = ((ChartApplet) (obj)).theChart.getSeriesCount();
  77.             for(int k = 0; k < j; k++)
  78.             {
  79.                 Double adouble1[] = getDoubleValues(servletrequest.getParameter("sampleValues_" + k));
  80.                 i = adouble1 == null ? i : Math.max(i, adouble1.length);
  81.             }
  82.             ((ChartApplet) (obj)).setParameter("sampleCount", i + "");
  83.         } else
  84.         {
  85.             ((ChartApplet) (obj)).setParameter("sampleCount", s1);
  86.         }
  87.         String s2;
  88.         String s3;
  89.         for(Enumeration enumeration = servletrequest.getParameterNames(); enumeration.hasMoreElements(); ((ChartApplet) (obj)).setParameter(s2, s3))
  90.         {
  91.             s2 = (String)enumeration.nextElement();
  92.             s3 = servletrequest.getParameter(s2);
  93.         }
  94.         ((ChartApplet) (obj)).setParameter("rangeStep", servletrequest.getParameter("rangeStep"));
  95.         ((ChartApplet) (obj)).setParameter("range", servletrequest.getParameter("range"));
  96.         ((ChartApplet) (obj)).setParameter("lowerRange", servletrequest.getParameter("lowerRange"));
  97.         ((ChartApplet) (obj)).setParameter("rangeStep_2", servletrequest.getParameter("rangeStep_2"));
  98.         ((ChartApplet) (obj)).setParameter("range_2", servletrequest.getParameter("range_2"));
  99.         ((ChartApplet) (obj)).setParameter("lowerRange_2", servletrequest.getParameter("lowerRange_2"));
  100.         Dimension dimension = ((ChartApplet) (obj)).theChart.getSize();
  101.         Image image = ((ChartApplet) (obj)).theChart.getImage(dimension.width, dimension.height);
  102.         if(!hasValidLicense())
  103.         {
  104.             Graphics g = image.getGraphics();
  105.             g.setColor(Color.white);
  106.             g.fillRect(0, dimension.height - 8, dimension.width, 8);
  107.             g.setColor(Color.gray);
  108.             g.setFont(new Font("Arial", 0, 9));
  109.             g.drawString("www.fcsoft.com.cn www.fcsoft.com.cn www.fcsoft.com.cn www.fcsoft.com.cn www.fcsoft.com.cn", 0, dimension.height - 2);
  110.         }
  111.         String s4 = encodeChartImage(image, servletresponse.getOutputStream());
  112.         if(s4 != null && s4.length() > 0)
  113.             servletresponse.setContentType(s4);
  114.         else
  115.             servletresponse.setContentType("image");
  116.     }
  117.     public void init(ServletConfig servletconfig)
  118.     {
  119.         try
  120.         {
  121.             super.init(servletconfig);
  122.         }
  123.         catch(ServletException _ex) { }
  124.         barChart = new BarChartApplet();
  125.         lineChart = new LineChartApplet();
  126.         pieChart = new PieChartApplet();
  127.         barChart.init();
  128.         lineChart.init();
  129.         pieChart.init();
  130.     }
  131.     protected BarChartApplet barChart;
  132.     protected LineChartApplet lineChart;
  133.     protected PieChartApplet pieChart;
  134. }