Package org.jCharts

# Class Chart

java.lang.Object
org.jCharts.Chart

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `AxisChart`, `PieChart2D`

public abstract class Chart extends Object implements Serializable
Base class of all charts.

See Also:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`private BufferedImage`
`bufferedImage`
`private ChartProperties`
`chartProperties`
`private boolean`
`generateImageMap`
`private Graphics2D`
`graphics2D`
`private int`
`height`
`private ImageMap`
`imageMap`
`private Legend`
`legend`
`private int`
`width`

## Constructor Summary

Constructors
Constructor
Description
`Chart(LegendProperties legendProperties, ChartProperties chartProperties, int pixelWidth, int pixelHeight)`
Constructor

## Method Summary

Modifier and Type
Method
Description
`BufferedImage`
`getBufferedImage()`
Returns the BufferedImage used to generate the ImageMap.
`final ChartProperties`
`getChartProperties()`
Returns the general properties Object.
`boolean`
`getGenerateImageMapFlag()`
Returns flag indicating whether to generate an ImageMap
`final Graphics2D`
`getGraphics2D()`
Shortcut method to get Graphics2D.
`final int`
`getImageHeight()`
Returns the BufferedImage height
`final ImageMap`
`getImageMap()`
`final int`
`getImageWidth()`
Returns the BufferedImage width
`protected final Legend`
`getLegend()`
Returns the Legend.
`final boolean`
`hasLegend()`
Returns flag indicating if there is a Legend.
`void`
`render()`
Call this to kick off rendering of the chart
`protected abstract void`
`renderChart()`
`protected float`
`renderChartTitle(String chartTitle, FontRenderContext fontRenderContext)`
Displays the chart title and returns the height of the title PLUS title padding.
`void`
`renderWithImageMap()`
Renders the chart into a BufferedImage so that we can calculate all the Image Map coordinates.
`final void`
`setGraphics2D(Graphics2D graphics2D)`
Sets the graphics object to render the chart on by the encoder.
`final void`
`setImageMap(ImageMap imageMap)`
To optimze performance of the ImageMap Object, we create it once we know how many data elements are in the chart which is dependent on the AxisChart or PieChart2D
`void`
`toHTML(HTMLGenerator htmlGenerator, String imageFileName, ImageMap imageMap)`
Enables the testing routines to display the contents of this Object.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### graphics2D

private Graphics2D graphics2D

### width

private int width

### height

private int height

### legend

private Legend legend

### chartProperties

private ChartProperties chartProperties

### generateImageMap

private boolean generateImageMap

### imageMap

private ImageMap imageMap

### bufferedImage

private BufferedImage bufferedImage

## Constructor Details

### Chart

public Chart(LegendProperties legendProperties, ChartProperties chartProperties, int pixelWidth, int pixelHeight)
Constructor

Parameters:
  `legendProperties` -
  `chartProperties` -
  `pixelWidth` -
  `pixelHeight` -

## Method Details

### getGenerateImageMapFlag

public boolean getGenerateImageMapFlag()
Returns flag indicating whether to generate an ImageMap

Returns:
  boolean

### getBufferedImage

public BufferedImage getBufferedImage()
Returns the BufferedImage used to generate the ImageMap. Only should be called on binary format images, such as PNG and JPG, as it will not work on SVG. This is a HACK and the design of jCharts should do better than this!!!!!!

Returns:
  BufferedImage

### renderWithImageMap

public void renderWithImageMap() throws ChartDataException, PropertyException
Renders the chart into a BufferedImage so that we can calculate all the Image Map coordinates.

Throws:
  `ChartDataException`
  `PropertyException`

### render

public void render() throws ChartDataException, PropertyException
Call this to kick off rendering of the chart

Throws:
  `ChartDataException`
  `PropertyException`

### renderChartTitle

protected float renderChartTitle(String chartTitle, FontRenderContext fontRenderContext)
Displays the chart title and returns the height of the title PLUS title padding.

Parameters:
  `chartTitle` -
  `fontRenderContext` -
Returns:
  float the height required by the title. If no title is displayed, zero is returned.

### renderChart

protected abstract void renderChart() throws ChartDataException, PropertyException

Throws:
  `ChartDataException`
  `PropertyException`

### getImageWidth

public final int getImageWidth()
Returns the BufferedImage width

Returns:
  int

### getImageHeight

public final int getImageHeight()
Returns the BufferedImage height

Returns:
  int

### getChartProperties

public final ChartProperties getChartProperties()
Returns the general properties Object.

Returns:
  ChartProperties

### getLegend

protected final Legend getLegend()
Returns the Legend. Will be NULL if no Legend is desired.

Returns:
  Legend

### hasLegend

public final boolean hasLegend()
Returns flag indicating if there is a Legend.

Returns:
  boolean

### setGraphics2D

public final void setGraphics2D(Graphics2D graphics2D)
Sets the graphics object to render the chart on by the encoder.

Parameters:
  `graphics2D` -

### getGraphics2D

public final Graphics2D getGraphics2D()
Shortcut method to get Graphics2D. Be aware that the call BufferedImage.getGraphics() and BufferedImage.createGraphics(), actually create a new Grpahics2D Object on each invocation. This returns the member reference so calls to this are not creating a new Object each time.

Returns:
  Graphics2D

### setImageMap

public final void setImageMap(ImageMap imageMap)
To optimze performance of the ImageMap Object, we create it once we know how many data elements are in the chart which is dependent on the AxisChart or PieChart2D

Parameters:
  `imageMap` -

### getImageMap

public final ImageMap getImageMap()

Returns:
  imageMap

### toHTML

public void toHTML(HTMLGenerator htmlGenerator, String imageFileName, ImageMap imageMap)
Enables the testing routines to display the contents of this Object.

Parameters:
  `htmlGenerator` -
  `imageFileName` -
  `imageMap` - if this is NULL we are not creating image map data in html