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
`protected AxisProperties` `axisProperties`
`private IAxisDataSeries` `iAxisDataSeries`
`protected XAxis` `xAxis`
`protected YAxis` `yAxis`

### Constructor Summary

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

### Method Summary

Methods
`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 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,
                                          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