01: /***********************************************************************************************
02: * Copyright 2002 (C) Nathaniel G. Auvil. All Rights Reserved.
03: *
04: * Redistribution and use of this software and associated documentation ("Software"), with or
05: * without modification, are permitted provided that the following conditions are met:
06: *
07: * 1. Redistributions of source code must retain copyright statements and notices.
08: * Redistributions must also contain a copy of this document.
09: *
10: * 2. Redistributions in binary form must reproduce the above copyright notice, this list of
11: * conditions and the following disclaimer in the documentation and/or other materials
12: * provided with the distribution.
13: *
14: * 3. The name "jCharts" or "Nathaniel G. Auvil" must not be used to endorse or promote
15: * products derived from this Software without prior written permission of Nathaniel G.
16: * Auvil. For written permission, please contact nathaniel_auvil@users.sourceforge.net
17: *
18: * 4. Products derived from this Software may not be called "jCharts" nor may "jCharts" appear
19: * in their names without prior written permission of Nathaniel G. Auvil. jCharts is a
20: * registered trademark of Nathaniel G. Auvil.
21: *
22: * 5. Due credit should be given to the jCharts Project (http://jcharts.krysalis.org/).
23: *
24: * THIS SOFTWARE IS PROVIDED BY Nathaniel G. Auvil AND CONTRIBUTORS ``AS IS'' AND ANY
25: * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
26: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
27: * jCharts OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,STRICT LIABILITY, OR TORT
31: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
32: * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
33: ************************************************************************************************/package org.krysalis.jcharts.demo.samples;
34:
35: import org.krysalis.jcharts.Chart;
36: import org.krysalis.jcharts.chartData.ChartDataException;
37: import org.krysalis.jcharts.encoders.PNGEncoder;
38:
39: import java.io.FileOutputStream;
40:
41: /*************************************************************************************
42: *
43: * @author Nathaniel Auvil
44: * @version $Id: Sample.java,v 1.2 2003/08/09 19:46:14 nathaniel_auvil Exp $
45: ************************************************************************************/
46: public abstract class Sample {
47: private static String path;
48: private static final String dir = "/samples/";
49:
50: protected abstract void render() throws ChartDataException;
51:
52: protected abstract String getSubdir();
53:
54: /*************************************************************************************
55: * path to the images directory under the documentation for forrest as in:
56: * /jcharts/krysalis-jcharts/src/documentation/resources/images
57: *
58: * @param args
59: * @throws ChartDataException
60: ************************************************************************************/
61: public static void main(String[] args) throws ChartDataException {
62: Sample.path = args[0];
63:
64: new AreaChartSamples().render();
65: new Pie3DSamples().render();
66: }
67:
68: /******************************************************************************************
69: *
70: * @param chart
71: * @param filename
72: *****************************************************************************************/
73: protected void encode(Chart chart, String filename) {
74: FileOutputStream fileOutputStream;
75:
76: try {
77: fileOutputStream = new FileOutputStream(path + dir
78: + this .getSubdir() + filename + ".png");
79: PNGEncoder.encode(chart, fileOutputStream);
80: fileOutputStream.flush();
81: fileOutputStream.close();
82: } catch (Throwable throwable) {
83: throwable.printStackTrace();
84: }
85: }
86: }
|