KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > krysalis > jcharts > demo > simpleservlet > PieChart2DServlet


1 /***********************************************************************************************
2  * File Info: $Id: PieChart2DServlet.java,v 1.1 2003/08/28 01:17:36 nathaniel_auvil Exp $
3  * Copyright (C) 2000
4  * Author: Nathaniel G. Auvil
5  * Contributor(s):
6  *
7  * Copyright 2002 (C) Nathaniel G. Auvil. All Rights Reserved.
8  *
9  * Redistribution and use of this software and associated documentation ("Software"), with or
10  * without modification, are permitted provided that the following conditions are met:
11  *
12  * 1. Redistributions of source code must retain copyright statements and notices.
13  * Redistributions must also contain a copy of this document.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright notice, this list of
16  * conditions and the following disclaimer in the documentation and/or other materials
17  * provided with the distribution.
18  *
19  * 3. The name "jCharts" or "Nathaniel G. Auvil" must not be used to endorse or promote
20  * products derived from this Software without prior written permission of Nathaniel G.
21  * Auvil. For written permission, please contact nathaniel_auvil@users.sourceforge.net
22  *
23  * 4. Products derived from this Software may not be called "jCharts" nor may "jCharts" appear
24  * in their names without prior written permission of Nathaniel G. Auvil. jCharts is a
25  * registered trademark of Nathaniel G. Auvil.
26  *
27  * 5. Due credit should be given to the jCharts Project (http://jcharts.sourceforge.net/).
28  *
29  * THIS SOFTWARE IS PROVIDED BY Nathaniel G. Auvil AND CONTRIBUTORS ``AS IS'' AND ANY
30  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
31  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
32  * jCharts OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
33  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
34  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,STRICT LIABILITY, OR TORT
36  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
37  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
38  ************************************************************************************************/

39
40 package org.krysalis.jcharts.demo.simpleservlet;
41
42
43 import org.krysalis.jcharts.chartData.ChartDataException;
44 import org.krysalis.jcharts.chartData.PieChartDataSet;
45 import org.krysalis.jcharts.encoders.ServletEncoderHelper;
46 import org.krysalis.jcharts.nonAxisChart.PieChart2D;
47 import org.krysalis.jcharts.properties.ChartProperties;
48 import org.krysalis.jcharts.properties.LegendProperties;
49 import org.krysalis.jcharts.properties.PieChart2DProperties;
50
51 import javax.servlet.ServletException JavaDoc;
52 import javax.servlet.http.HttpServlet JavaDoc;
53 import javax.servlet.http.HttpServletRequest JavaDoc;
54 import javax.servlet.http.HttpServletResponse JavaDoc;
55 import java.awt.*;
56 import java.io.IOException JavaDoc;
57
58
59 public class PieChart2DServlet extends HttpServlet JavaDoc
60 {
61     //---all of my pie charts serviced by this Servlet will have the same properties.
62
private PieChart2DProperties properties;
63     private LegendProperties legendProperties;
64     private ChartProperties chartProperties;
65
66     private int width = 550;
67     private int height = 350;
68
69
70     /**********************************************************************************************
71      *
72      **********************************************************************************************/

73     public void init()
74     {
75         //---all charts of this type of pie chart are going to share the same properties.
76
this.properties = new PieChart2DProperties();
77
78         this.legendProperties = new LegendProperties();
79         this.legendProperties.setNumColumns( 2 );
80         this.legendProperties.setPlacement( LegendProperties.RIGHT );
81
82         this.chartProperties = new ChartProperties();
83     }
84
85
86     /**********************************************************************************************
87      *
88      **********************************************************************************************/

89     public void service( HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc response ) throws ServletException JavaDoc, IOException JavaDoc
90     {
91         try
92         {
93             PieChart2D pieChart2D = new PieChart2D( this.getData(), this.legendProperties, this.chartProperties, this.width, this.height );
94             ServletEncoderHelper.encodeJPEG13( pieChart2D, 1.0f, response );
95         }
96         catch( Throwable JavaDoc throwable )
97         {
98             //HACK do your error handling here...
99
throwable.printStackTrace();
100         }
101     }
102
103
104     /******************************************************************************************
105      * Returns a Tests a 'real' data set and usage.
106      *
107      * @throws ChartDataException
108      ******************************************************************************************/

109     private PieChartDataSet getData() throws ChartDataException
110     {
111         double[] data = new double[]{40, 15, 35, 65, 59};
112         Paint[] paints = new Paint[]{Color.blue, Color.red, Color.green, Color.yellow, Color.white};
113         String JavaDoc[] labels = {"BMW", "Honda", "Lexus", "Audi", "Acura"};
114         return new PieChartDataSet( "Cars That Own!", data, labels, paints, this.properties );
115     }
116 }
117
Popular Tags