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
`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 and Description
`Chart(LegendProperties legendProperties, ChartProperties chartProperties, int pixelWidth, int pixelHeight)` Constructor

### Method Summary

Methods
`BufferedImage` `getBufferedImage()` Returns the BufferedImage used to generate the ImageMap.
`ChartProperties` `getChartProperties()` Returns the general properties Object.
`boolean` `getGenerateImageMapFlag()` Returns flag indicating whether to generate an ImageMap
`Graphics2D` `getGraphics2D()` Shortcut method to get Graphics2D.
`int` `getImageHeight()` Returns the BufferedImage height
`ImageMap` `getImageMap()`
`int` `getImageWidth()` Returns the BufferedImage width
`protected Legend` `getLegend()` Returns the Legend.
`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.
`void` `setGraphics2D(Graphics2D graphics2D)` Sets the graphics object to render the chart on by the encoder.
`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 Detail

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

#### Chart

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

Constructor

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

### Method Detail

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