001: /***********************************************************************************************
002: * File Info: $Id: AxisProperties.java,v 1.1 2003/05/17 17:00:32 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.test.HTMLGenerator;
041: import org.krysalis.jcharts.test.HTMLTestable;
042:
043: import java.lang.reflect.Field;
044:
045: final public class AxisProperties extends Properties implements
046: HTMLTestable {
047: private AxisTypeProperties xAxisProperties;
048: private AxisTypeProperties yAxisProperties;
049:
050: private boolean isPlotHorizontal = false;
051:
052: private boolean xAxisLabelsAreVertical = false;
053:
054: /***********************************************************************************************
055: *
056: * @param xAxis
057: * @param yAxis
058: ************************************************************************************************/
059: public AxisProperties(LabelAxisProperties xAxis,
060: LabelAxisProperties yAxis) {
061: this .xAxisProperties = xAxis;
062: this .yAxisProperties = yAxis;
063: }
064:
065: /***********************************************************************************************
066: *
067: * @param isHorizontalPlot
068: ************************************************************************************************/
069: public AxisProperties(boolean isHorizontalPlot) {
070: super ();
071:
072: this .isPlotHorizontal = isHorizontalPlot;
073:
074: if (isHorizontalPlot) {
075: this .xAxisProperties = new DataAxisProperties();
076: this .yAxisProperties = new LabelAxisProperties();
077: } else {
078: this .xAxisProperties = new LabelAxisProperties();
079: this .yAxisProperties = new DataAxisProperties();
080: }
081: }
082:
083: /***********************************************************************************************
084: *
085: ************************************************************************************************/
086: public AxisProperties() {
087: super ();
088:
089: this .isPlotHorizontal = false;
090: this .xAxisProperties = new LabelAxisProperties();
091: this .yAxisProperties = new DataAxisProperties();
092: }
093:
094: public AxisTypeProperties getXAxisProperties() {
095: return xAxisProperties;
096: }
097:
098: public AxisTypeProperties getYAxisProperties() {
099: return yAxisProperties;
100: }
101:
102: public boolean isPlotHorizontal() {
103: return isPlotHorizontal;
104: }
105:
106: public boolean xAxisLabelsAreVertical() {
107: return xAxisLabelsAreVertical;
108: }
109:
110: public void setXAxisLabelsAreVertical(boolean xAxisLabelsAreVertical) {
111: this .xAxisLabelsAreVertical = xAxisLabelsAreVertical;
112: }
113:
114: /*********************************************************************************************
115: * Enables the testing routines to display the contents of this Object.
116: *
117: * @param htmlGenerator
118: **********************************************************************************************/
119: public void toHTML(HTMLGenerator htmlGenerator) {
120: htmlGenerator.propertiesTableStart(this .getClass().getName());
121: super .toHTML(htmlGenerator);
122:
123: Field[] fields = this .getClass().getDeclaredFields();
124: for (int i = 0; i < fields.length; i++) {
125: try {
126: htmlGenerator.addField(fields[i].getName(), fields[i]
127: .get(this ));
128: } catch (IllegalAccessException illegalAccessException) {
129: illegalAccessException.printStackTrace();
130: }
131: }
132:
133: htmlGenerator.innerTableRowStart();
134: this.xAxisProperties.toHTML(htmlGenerator);
135: htmlGenerator.innerTableRowEnd();
136:
137: htmlGenerator.innerTableRowStart();
138: this.yAxisProperties.toHTML(htmlGenerator);
139: htmlGenerator.innerTableRowEnd();
140:
141: htmlGenerator.propertiesTableEnd();
142: }
143:
144: }
|