From: Chris M. <ki...@us...> - 2004-07-01 02:06:49
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11406/src/java/org/krysalis/jcharts/test Added Files: DualAxisComboTestDriver.java Log Message: Test case for Dual Y axis changes --- NEW FILE: DualAxisComboTestDriver.java --- /*********************************************************************************************** * Copyright 2002 (C) Nathaniel G. Auvil. All Rights Reserved. * * Redistribution and use of this software and associated documentation ("Software"), with or * without modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain copyright statements and notices. * Redistributions must also contain a copy of this document. * * 2. Redistributions in binary form must reproduce the above copyright notice, this list of * conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * 3. The name "jCharts" or "Nathaniel G. Auvil" must not be used to endorse or promote * products derived from this Software without prior written permission of Nathaniel G. * Auvil. For written permission, please contact nat...@us... * * 4. Products derived from this Software may not be called "jCharts" nor may "jCharts" appear * in their names without prior written permission of Nathaniel G. Auvil. jCharts is a * registered trademark of Nathaniel G. Auvil. * * 5. Due credit should be given to the jCharts Project (http://jcharts.sourceforge.net/). * * THIS SOFTWARE IS PROVIDED BY Nathaniel G. Auvil AND CONTRIBUTORS ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * jCharts OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE ************************************************************************************************/ package org.krysalis.jcharts.test; import java.awt.*; import org.krysalis.jcharts.axisChart.AxisChart; import org.krysalis.jcharts.axisChart.customRenderers.axisValue.renderers.ValueLabelPosition; import org.krysalis.jcharts.axisChart.customRenderers.axisValue.renderers.ValueLabelRenderer; import org.krysalis.jcharts.chartData.*; import org.krysalis.jcharts.chartData.interfaces.IAxisDataSeries; import org.krysalis.jcharts.encoders.*; import org.krysalis.jcharts.imageMap.ImageMap; import org.krysalis.jcharts.properties.*; import org.krysalis.jcharts.properties.util.*; import org.krysalis.jcharts.types.ChartType; /****************************************************************************************** * This file provides examples of how to create all the different chart types provided by * this package. * * @author Chris McKay * @version $Id: DualAxisComboTestDriver.java,v 1.1 2004/07/01 02:06:40 kiwicmc Exp $ *******************************************************************************************/ public class DualAxisComboTestDriver { boolean supportsImageMap() { return true; } public static void main(String[] args) throws PropertyException, ChartDataException { ChartProperties chartProperties = new ChartProperties(); StackedBarChartProperties stackedBarChartProperties = new StackedBarChartProperties();; BarChartProperties barChartProperties = new BarChartProperties(); IAxisDataSeries dataSeries; AxisChartDataSet axisChartDataSet; AxisProperties axisProperties = new AxisProperties(false); ChartFont axisScaleFont; ChartFont axisTitleFont; axisScaleFont = new ChartFont(new Font("Arial", Font.BOLD, 10), Color.black); axisTitleFont = new ChartFont(new Font("Arial", Font.BOLD, 10), Color.black); axisProperties.getYAxisProperties().setShowEndBorder(false); axisProperties.getXAxisProperties().setShowEndBorder(false); axisProperties.getXAxisProperties().setLabelRotationAngle(30); //Dual axis properties ((DataAxisProperties) axisProperties.getYAxisProperties()).setNumItems(9); ((DataAxisProperties) axisProperties.getYAxisProperties()).setUserDefinedScale(0, 25); // LHS axis look and feel axisProperties.getYAxisProperties().setScaleChartFont(axisTitleFont); axisProperties.getYAxisProperties().setTitleChartFont(axisTitleFont); axisProperties.getYAxisProperties().setAxisTitleChartFont(axisTitleFont); axisProperties.getXAxisProperties().setScaleChartFont(axisScaleFont); axisProperties.getXAxisProperties().setTitleChartFont(axisScaleFont); axisProperties.getXAxisProperties().setAxisTitleChartFont(axisScaleFont); axisProperties.getRightYAxisProperties().setShowAxis(true); ((DataAxisProperties) axisProperties.getRightYAxisProperties()).setNumItems(5); ((DataAxisProperties) axisProperties.getRightYAxisProperties()).setUserDefinedScale(0, 25); // RHS axis look and feel axisProperties.getRightYAxisProperties().setTitleChartFont(axisTitleFont); axisProperties.getRightYAxisProperties().setScaleChartFont(axisScaleFont); axisProperties.getRightYAxisProperties().setAxisTitleChartFont(axisTitleFont); axisProperties.getRightYAxisProperties().setPaddingBetweenAxisTitleAndLabels(3); axisProperties.getRightYAxisProperties().setTitleChartFont(axisTitleFont); String[] axisLabels = {"Aug 13", "Aug 14", "Aug 15", "Aug 16", "Aug 17", "Aug 18", "Aug 19", "Aug 20", "Aug 21", "Aug 22", "Aug 23", "Aug 24", "Aug 25", "Aug 26"}; dataSeries = new DataSeries(axisLabels, " ", "Total Backup Events", "Success Percentage", null); stackedBarChartProperties.setShowOutlinesFlag(false); //Bars double[][] barData = { { 11, 120, 163, 150, 107, 148, 152, 169, 144, 140, 159, 131, 176, 66}, { 0, 6, 4, 6, 9, 6, 7, 7, 7, 12, 9, 13, 11, 2}, { 0, 12, 4, 2, 1, 22, 5, 2, 2, 2, 0, 0, 3, 3}}; Paint[] paints = {new Color(0x00, 0x56,0x99), new Color(0xD1,0xD6,0x18), new Color(0xB3,0x05,0x05) }; String[] legendLabels = {"Successful", "Warnings", "Failures"}; axisChartDataSet = new AxisChartDataSet(barData, legendLabels, paints, ChartType.BAR_STACKED, stackedBarChartProperties); // Stroke[] lineStrokes1 = {LineChartProperties.DASHED_LINE_STROKE, LineChartProperties.DASH_DOT_LINE_STROKE, LineChartProperties.DEFAULT_LINE_STROKE}; // Shape[] lineShapes1 = {PointChartProperties.SHAPE_TRIANGLE, PointChartProperties.SHAPE_CIRCLE, PointChartProperties.SHAPE_DIAMOND}; // LineChartProperties lineChartProperties1 = new LineChartProperties(lineStrokes1, lineShapes1); // axisChartDataSet = new AxisChartDataSet(barData, legendLabels, paints, ChartType.LINE, lineChartProperties1); dataSeries.addIAxisPlotDataSet(axisChartDataSet); //Lines double[][] lineData = { {100, 91, 97, 98, 99, 87, 96, 98, 98, 98, 100, 100, 98, 95}, // { 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85}}; { 76, 76, 76, 76, 83, 83, 83, 83, 83, 83, 83, 76, 76, 76}}; Stroke[] lineStrokes = {LineChartProperties.DASHED_LINE_STROKE, LineChartProperties.DASH_DOT_LINE_STROKE}; Shape[] lineShapes = {PointChartProperties.SHAPE_TRIANGLE, PointChartProperties.SHAPE_CIRCLE}; Paint[] linePaints = {Color.GRAY, Color.BLUE}; String[] lineLegendLabels = {"Success Percentage", "Successful Backups Goal - 85.0%"}; LineChartProperties lineChartProperties = new LineChartProperties(lineStrokes, lineShapes); axisChartDataSet = new AxisChartDataSet(lineData, true, lineLegendLabels, linePaints, ChartType.LINE, lineChartProperties); dataSeries.addIAxisPlotDataSet(axisChartDataSet); LegendProperties legendProperties = new LegendProperties(); legendProperties.setBorderStroke(null); legendProperties.setChartFont(axisScaleFont); AxisChart axisChart = new AxisChart(dataSeries, chartProperties, axisProperties, legendProperties, 752, 485 ); axisChart.renderWithImageMap(); ChartTestDriver.exportImage( axisChart, "DualYAxisChart.png" ); } } |