001: /***********************************************************************************************
002: * File Info: $Id: ChartProperties.java,v 1.2 2003/05/18 18:06:04 nathaniel_auvil Exp $
003: * Copyright (C) 2002
004: * Author: Nathaniel G. Auvil
005: * Contributor(s):
006: *
007: * Copyright 2002 (C) Nathaniel G. Auvil. All Rights Reserved.
008: *
009: * Redistribution and use of this software and associated documentation ("Software"), with or
010: * without modification, are permitted provided that the following conditions are met:
011: *
012: * 1. Redistributions of source code must retain copyright statements and notices.
013: * Redistributions must also contain a copy of this document.
014: *
015: * 2. Redistributions in binary form must reproduce the above copyright notice, this list of
016: * conditions and the following disclaimer in the documentation and/or other materials
017: * provided with the distribution.
018: *
019: * 3. The name "jCharts" or "Nathaniel G. Auvil" must not be used to endorse or promote
020: * products derived from this Software without prior written permission of Nathaniel G.
021: * Auvil. For written permission, please contact nathaniel_auvil@users.sourceforge.net
022: *
023: * 4. Products derived from this Software may not be called "jCharts" nor may "jCharts" appear
024: * in their names without prior written permission of Nathaniel G. Auvil. jCharts is a
025: * registered trademark of Nathaniel G. Auvil.
026: *
027: * 5. Due credit should be given to the jCharts Project (http://jcharts.sourceforge.net/).
028: *
029: * THIS SOFTWARE IS PROVIDED BY Nathaniel G. Auvil AND CONTRIBUTORS ``AS IS'' AND ANY
030: * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
031: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
032: * jCharts OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
033: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
034: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
035: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,STRICT LIABILITY, OR TORT
036: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
037: * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
038: ************************************************************************************************/package org.krysalis.jcharts.properties;
039:
040: import org.krysalis.jcharts.properties.util.ChartFont;
041: import org.krysalis.jcharts.test.HTMLGenerator;
042: import org.krysalis.jcharts.test.HTMLTestable;
043:
044: import java.lang.reflect.Field;
045:
046: public class ChartProperties extends AreaProperties implements
047: HTMLTestable {
048: public ChartFont titleChartFont = ChartFont.DEFAULT_CHART_TITLE;
049:
050: //---number of pixels between the chart title and the plotted chart
051: private float titlePadding = 5f;
052:
053: //---flag allows you to toggle validations to spare extra CPU cycles after development is over.
054: private boolean validate = true;
055:
056: private boolean useAntiAliasing = true;
057:
058: /******************************************************************************************
059: *
060: * @return ChartFont
061: ******************************************************************************************/
062: public ChartFont getTitleFont() {
063: return this .titleChartFont;
064: }
065:
066: public void setTitleFont(ChartFont titleFont) {
067: this .titleChartFont = titleFont;
068: }
069:
070: /******************************************************************************************
071: * Returns the number of pixels between the Chart Title and the axis plot area
072: *
073: * @return float
074: ******************************************************************************************/
075: public float getTitlePadding() {
076: return this .titlePadding;
077: }
078:
079: public void setTitlePadding(float pixels) {
080: this .titlePadding = pixels;
081: }
082:
083: /******************************************************************************************
084: *
085: * @return boolean
086: * @since 0.7.0
087: ******************************************************************************************/
088: public boolean validate() {
089: return validate;
090: }
091:
092: /******************************************************************************************
093: * Toggles the validation of data and properties for the charts. This should be false for
094: * production systems as it will run slightly faster. Anything for speed, right? ;)
095: *
096: * @param validate
097: * @since 0.7.0
098: ******************************************************************************************/
099: public void setValidate(boolean validate) {
100: this .validate = validate;
101: }
102:
103: /*****************************************************************************************
104: *
105: * @return boolean
106: * @since 1.0.0
107: ****************************************************************************************/
108: public boolean useAntiAliasing() {
109: return useAntiAliasing;
110: }
111:
112: /*****************************************************************************************
113: * Sets flag on whether the charts will render with Anti-Aliasing enabled. If you are
114: * embeding a chart image in a PDF file, you should set this to 'false' to get a
115: * 'cleaner' image.
116: *
117: * @param useAntiAliasing
118: * @since 1.0.0
119: ****************************************************************************************/
120: public void setUseAntiAliasing(boolean useAntiAliasing) {
121: this .useAntiAliasing = useAntiAliasing;
122: }
123:
124: /*********************************************************************************************
125: * Enables the testing routines to display the contents of this Object.
126: *
127: * @param htmlGenerator
128: **********************************************************************************************/
129: public void toHTML(HTMLGenerator htmlGenerator) {
130: htmlGenerator.propertiesTableStart(this .getClass().getName());
131: super .toHTML(htmlGenerator);
132:
133: Field[] fields = this .getClass().getDeclaredFields();
134: for (int i = 0; i < fields.length; i++) {
135: try {
136: htmlGenerator.addField(fields[i].getName(), fields[i]
137: .get(this ));
138: } catch (IllegalAccessException illegalAccessException) {
139: illegalAccessException.printStackTrace();
140: }
141: }
142:
143: htmlGenerator.propertiesTableEnd();
144:
145: /*
146:
147: super.toHTML( htmlGenerator );
148: htmlGenerator.addTableRow( "ChartProperties-Title Padding", Float.toString( this.getTitlePadding() ) );
149: htmlGenerator.addTableRow( "ChartProperties-Title Font", this.getTitleFont() );
150: htmlGenerator.addTableRow( "ChartProperties-Title Paint", this.getTitlePaint() );
151: htmlGenerator.addTableRow( "ChartProperties-Title Paint", this.getTitlePaint() );
152: */
153: }
154:
155: }
|