org.jCharts.axisChart
Class AxisChart

java.lang.Object
  |
  +--org.jCharts.Chart
        |
        +--org.jCharts.axisChart.AxisChart
All Implemented Interfaces:
HTMLChartTestable, java.io.Serializable
Direct Known Subclasses:
ScatterPlotAxisChart

public class AxisChart
extends Chart
implements HTMLChartTestable

This Class is used to create all axis chart types. This class knows how to render charts based on the ChartType specified in on the iAxisChartDataSet.

See Also:
Serialized Form

Field Summary
protected  AxisProperties axisProperties
           
private  IAxisDataSeries iAxisDataSeries
           
protected  XAxis xAxis
           
protected  YAxis yAxis
           
 
Fields inherited from class org.jCharts.Chart
 
Constructor Summary
AxisChart(IAxisDataSeries iAxisDataSeries, ChartProperties chartProperties, AxisProperties axisProperties, LegendProperties legendProperties, int pixelWidth, int pixelHeight)
          Constructor
 
Method Summary
private  boolean allowHorizontalPlot()
          We only allow horizontal plots for the Bar Chart types in this release.
 AxisChartDataProcessor createAxisChartDataProcessor()
          ScatterPlots create a subclass of AxisChartDataProcessor so we need this method so we can overload it.
protected  void deriveAxisValues()
           
 AxisProperties getAxisProperties()
           
 IAxisDataSeries getIAxisDataSeries()
           
 XAxis getXAxis()
           
 YAxis getYAxis()
           
protected  void overlayCharts()
          Draws the charts over the axis.
protected  void renderChart()
          Implement the method to render the Axis based chart
protected  void setupAxis(AxisChartDataProcessor axisChartDataProcessor, java.awt.font.FontRenderContext fontRenderContext)
           
protected  NumericTagGroup setupDataAxisProperties(Axis axis, DataAxisProperties dataAxisProperties, AxisChartDataProcessor axisChartDataProcessor, java.awt.font.FontRenderContext fontRenderContext)
          Once we determine which axis is the data axis, the logic to set it up is the same whether it is a horizontal or vertical plot.
private  void sizeAndPositionAxis(float xAxisWidth, float yAxisHeight, float chartTitleHeight)
          Finalizes the size of both Axis and sets the origin position
 void toHTML(HTMLGenerator htmlGenerator, java.lang.String imageFileName, ImageMap imageMap)
          Enables the testing routines to display the contents of this Object.
private  void validateHorizontalPlot()
          Currently, we only support the bar chart types being horizontal, and you can not have a horizontally plotted bar chart in a combo chart.
 
Methods inherited from class org.jCharts.Chart
getBufferedImage, getChartProperties, getGenerateImageMapFlag, getGraphics2D, getImageHeight, getImageMap, getImageWidth, getLegend, hasLegend, render, renderChartTitle, renderWithImageMap, setGraphics2D, setImageMap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

xAxis

protected XAxis xAxis

yAxis

protected YAxis yAxis

axisProperties

protected AxisProperties axisProperties

iAxisDataSeries

private IAxisDataSeries iAxisDataSeries
Constructor Detail

AxisChart

public AxisChart(IAxisDataSeries iAxisDataSeries,
                 ChartProperties chartProperties,
                 AxisProperties axisProperties,
                 LegendProperties legendProperties,
                 int pixelWidth,
                 int pixelHeight)
Constructor

Parameters:
iAxisDataSeries -
chartProperties -
axisProperties -
legendProperties - if no legend is desired, pass NULL
pixelWidth -
pixelHeight -
Method Detail

getIAxisDataSeries

public IAxisDataSeries getIAxisDataSeries()
Returns:
IAxisDataSeries

createAxisChartDataProcessor

public AxisChartDataProcessor createAxisChartDataProcessor()
ScatterPlots create a subclass of AxisChartDataProcessor so we need this method so we can overload it.

Returns:
AxisChartDataProcessor

setupDataAxisProperties

protected NumericTagGroup setupDataAxisProperties(Axis axis,
                                                  DataAxisProperties dataAxisProperties,
                                                  AxisChartDataProcessor axisChartDataProcessor,
                                                  java.awt.font.FontRenderContext fontRenderContext)
Once we determine which axis is the data axis, the logic to set it up is the same whether it is a horizontal or vertical plot.

Parameters:
dataAxisProperties -
axisChartDataProcessor -
fontRenderContext -
Returns:
NumericTagGroup need to set this on the right axis

setupAxis

protected void setupAxis(AxisChartDataProcessor axisChartDataProcessor,
                         java.awt.font.FontRenderContext fontRenderContext)
                  throws ChartDataException
Parameters:
axisChartDataProcessor -
fontRenderContext -
ChartDataException

sizeAndPositionAxis

private void sizeAndPositionAxis(float xAxisWidth,
                                 float yAxisHeight,
                                 float chartTitleHeight)
Finalizes the size of both Axis and sets the origin position

Parameters:
xAxisWidth -
yAxisHeight -
chartTitleHeight -

deriveAxisValues

protected void deriveAxisValues()

renderChart

protected void renderChart()
                    throws ChartDataException,
                           PropertyException
Implement the method to render the Axis based chart

Specified by:
renderChart in class Chart
Throws:
ChartDataException
PropertyException - there are several validations done to aid in development of the charts.

overlayCharts

protected void overlayCharts()
                      throws PropertyException,
                             ChartDataException
Draws the charts over the axis. We have to render in a specific order so combo charts get drawn correctly

Throws:
PropertyException
ChartDataException

validateHorizontalPlot

private void validateHorizontalPlot()
                             throws PropertyException
Currently, we only support the bar chart types being horizontal, and you can not have a horizontally plotted bar chart in a combo chart.

Throws:
PropertyException

allowHorizontalPlot

private boolean allowHorizontalPlot()
We only allow horizontal plots for the Bar Chart types in this release.

Returns:
boolean

getAxisProperties

public AxisProperties getAxisProperties()

getXAxis

public XAxis getXAxis()

getYAxis

public YAxis getYAxis()

toHTML

public void toHTML(HTMLGenerator htmlGenerator,
                   java.lang.String imageFileName,
                   ImageMap imageMap)
Enables the testing routines to display the contents of this Object. Override Chart implementation as PieCharts use AreaProperties directly rather than a child.

Specified by:
toHTML in interface HTMLChartTestable
Overrides:
toHTML in class Chart
Parameters:
htmlGenerator -
imageFileName -
imageMap - if this is NULL we are not creating image map data in html