KickJava   Java API By Example, From Geeks To Geeks.

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


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

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

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

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