KickJava   Java API By Example, From Geeks To Geeks.

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


1 /***********************************************************************************************
2  * File Info: $Id: AxisChartTypeProperties.java,v 1.1 2003/05/17 17:00:31 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.test.HTMLTestable;
44 import org.krysalis.jcharts.chartData.interfaces.IAxisPlotDataSet;
45 import org.krysalis.jcharts.axisChart.customRenderers.axisValue.*;
46
47
48 import java.util.ArrayList JavaDoc;
49
50
51 /********************************************************************************************
52  * Common parent for all Chart type specific properties Objects.
53  *
54  *
55  *******************************************************************************************/

56 public abstract class AxisChartTypeProperties extends ChartTypeProperties implements HTMLTestable {
57     private ArrayList JavaDoc preRenderEventListeners;
58     private ArrayList JavaDoc postRenderEventListeners;
59
60
61     public abstract void validate( IAxisPlotDataSet iAxisPlotDataSet ) throws PropertyException;
62
63
64     /**************************************************************************************
65      * Allows you to get callbacks for custom implementations to render on the axis and to
66      * control the renderering on the axis before a value is drawn.
67      *
68      * @param preRenderListener
69      *************************************************************************************/

70     public void addPreRenderEventListener( PreAxisValueRenderListener preRenderListener ) {
71         if( this.preRenderEventListeners == null ) {
72             this.preRenderEventListeners = new ArrayList JavaDoc();
73         }
74
75         this.preRenderEventListeners.add( preRenderListener );
76     }
77
78
79     /**************************************************************************************
80      *
81      * @param axisValueRenderEvent
82      *************************************************************************************/

83     public void firePreRender( AxisValueRenderEvent axisValueRenderEvent ) {
84         if( this.preRenderEventListeners != null ) {
85             PreAxisValueRenderListener preRenderListener;
86             for( int i = 0; i < this.preRenderEventListeners.size(); i++ ) {
87                 preRenderListener = (PreAxisValueRenderListener) this.preRenderEventListeners.get( i );
88                 preRenderListener.preRender( axisValueRenderEvent );
89             }
90         }
91     }
92
93
94     /**************************************************************************************
95      * Allows you to get callbacks for custom implementations to render on the axis and to
96      * control the renderering on the axis after a value is drawn.
97      *
98      * @param postRenderListener
99      *************************************************************************************/

100     public void addPostRenderEventListener( PostAxisValueRenderListener postRenderListener ) {
101         if( this.postRenderEventListeners == null ) {
102             this.postRenderEventListeners = new ArrayList JavaDoc();
103         }
104
105         this.postRenderEventListeners.add( postRenderListener );
106     }
107
108
109     /**************************************************************************************
110      *
111      * @param axisValueRenderEvent
112      *************************************************************************************/

113     public void firePostRender( AxisValueRenderEvent axisValueRenderEvent ) {
114         if( this.postRenderEventListeners != null ) {
115             PostAxisValueRenderListener postRenderListener;
116             for( int i = 0; i < this.postRenderEventListeners.size(); i++ ) {
117                 postRenderListener = (PostAxisValueRenderListener) this.postRenderEventListeners.get( i );
118                 postRenderListener.postRender( axisValueRenderEvent );
119             }
120         }
121     }
122
123 }
124
Popular Tags