KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > krysalis > jcharts > properties > LineChartProperties


1 /***********************************************************************************************
2  * File Info: $Id: LineChartProperties.java,v 1.2 2003/08/08 08:51:27 nicolaken Exp $
3  * Copyright (C) 2002
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.properties;
41
42
43 import java.awt.BasicStroke JavaDoc;
44 import java.awt.Shape JavaDoc;
45 import java.awt.Stroke JavaDoc;
46
47 import org.krysalis.jcharts.chartData.interfaces.IAxisPlotDataSet;
48 import org.krysalis.jcharts.test.HTMLGenerator;
49
50
51 final public class LineChartProperties extends AxisChartTypeProperties
52 {
53     public static final Stroke JavaDoc DEFAULT_LINE_STROKE=new BasicStroke JavaDoc( 1.5f );
54
55     private Stroke JavaDoc[] lineStrokes;
56     private Shape JavaDoc[] shapes;
57
58
59     /******************************************************************************************
60      * Constructor
61      *
62      * @param lineStrokes
63      * @param shapes if any of the shapes are NULL, they will not be drawn. If the passed
64      * Array is NULL, no shpaes will be drawn. There are some Shapes defined in
65      * PointChartProperties Object.
66      *****************************************************************************************/

67     public LineChartProperties( Stroke JavaDoc[] lineStrokes, Shape JavaDoc[] shapes )
68     {
69         this.lineStrokes=lineStrokes;
70         this.shapes=shapes;
71     }
72
73
74     public Stroke JavaDoc[] getLineStrokes()
75     {
76         return this.lineStrokes;
77     }
78
79
80     public Shape JavaDoc[] getShapes()
81     {
82         return this.shapes;
83     }
84
85
86     /*********************************************************************************************
87      * Enables the testing routines to display the contents of this Object.
88      *
89      * @param htmlGenerator
90      **********************************************************************************************/

91     public void toHTML( HTMLGenerator htmlGenerator )
92     {
93         htmlGenerator.propertiesTableStart( "LineChartProperties" );
94         //htmlGenerator.addTableRow( "Zero Degree Offset", Double.toString( this.getZeroDegreeOffset() ) );
95
htmlGenerator.propertiesTableEnd();
96     }
97
98
99     /******************************************************************************************
100      * Validates the properties.
101      *
102      * @throws PropertyException
103      *****************************************************************************************/

104     public void validate( IAxisPlotDataSet iAxisPlotDataSet ) throws PropertyException
105     {
106       if( this.lineStrokes == null )
107       {
108           throw new PropertyException( "You must define Stroke Objects for the LineChart in the LineChartProperties Object." );
109       }
110         else
111       {
112           if( iAxisPlotDataSet.getNumberOfDataSets() != this.lineStrokes.length )
113           {
114               throw new PropertyException( "You must define a Stroke Object for each Line in the LineChart." );
115           }
116
117             if( this.shapes != null )
118             {
119                 if( this.shapes.length != this.lineStrokes.length )
120                 {
121                     throw new PropertyException( "The number of Shapes defined in the LineChartProperties Object must equal the number of Lines." );
122                 }
123             }
124       }
125     }
126
127 }
128
Popular Tags