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

  - ### Method Summary

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