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 and Description
    --- | ---
    `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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 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