Package org.jCharts.axisChart

# Class AxisChart

java.lang.Object
org.jCharts.Chart
org.jCharts.axisChart.AxisChart

All Implemented Interfaces:
  `Serializable`, `HTMLChartTestable`

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

Fields
Modifier and Type
Field
Description
`protected AxisProperties`
`axisProperties`
`private IAxisDataSeries`
`iAxisDataSeries`
`protected XAxis`
`xAxis`
`protected YAxis`
`yAxis`

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`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, FontRenderContext fontRenderContext)`
`protected NumericTagGroup`
`setupDataAxisProperties(Axis axis, DataAxisProperties dataAxisProperties, AxisChartDataProcessor axisChartDataProcessor, 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, 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 Details

### xAxis

protected XAxis xAxis

### yAxis

protected YAxis yAxis

### axisProperties

protected AxisProperties axisProperties

### iAxisDataSeries

private IAxisDataSeries iAxisDataSeries

## Constructor Details

### 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 Details

### 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, 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, FontRenderContext fontRenderContext) throws ChartDataException

Parameters:
  `axisChartDataProcessor` -
  `fontRenderContext` -
Throws:
  `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, 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