org.jfree.chart.plot
Class XYPlot

java.lang.Object
  |
  +--org.jfree.chart.plot.Plot
        |
        +--org.jfree.chart.plot.XYPlot
All Implemented Interfaces:
AxisChangeListener, AxisConstants, DatasetChangeListener, java.util.EventListener, HorizontalValuePlot, java.beans.PropertyChangeListener, java.io.Serializable, VerticalValuePlot
Direct Known Subclasses:
CombinedXYPlot, OverlaidXYPlot, PeriodMarkerPlot

public class XYPlot
extends Plot
implements HorizontalValuePlot, VerticalValuePlot, java.beans.PropertyChangeListener, java.io.Serializable

A general class for plotting data in the form of (x, y) pairs. This plot can use data from any class that implements the XYDataset interface.

XYPlot makes use of an XYItemRenderer to draw each point on the plot. By using different renderers, various chart types can be produced.

The ChartFactory class contains static methods for creating pre-configured charts.

Author:
David Gilbert
See Also:
Serialized Form

Field Summary
static java.awt.Paint DEFAULT_CROSSHAIR_PAINT
          The default crosshair paint.
static java.awt.Stroke DEFAULT_CROSSHAIR_STROKE
          The default crosshair stroke.
static boolean DEFAULT_CROSSHAIR_VISIBLE
          The default crosshair visibility.
static java.awt.Paint DEFAULT_GRIDLINE_PAINT
          The default grid line paint.
static java.awt.Stroke DEFAULT_GRIDLINE_STROKE
          The default grid line stroke.
 
Fields inherited from class org.jfree.chart.plot.Plot
DEFAULT_BACKGROUND_ALPHA, DEFAULT_BACKGROUND_PAINT, DEFAULT_FOREGROUND_ALPHA, DEFAULT_INSETS, DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, MINIMUM_HEIGHT_TO_DRAW, MINIMUM_WIDTH_TO_DRAW, ZERO
 
Fields inherited from interface org.jfree.chart.axis.AxisConstants
BOTTOM, DEFAULT_AXIS_LABEL_FONT, DEFAULT_AXIS_LABEL_INSETS, DEFAULT_AXIS_LABEL_PAINT, DEFAULT_AXIS_VISIBLE, DEFAULT_TICK_LABEL_FONT, DEFAULT_TICK_LABEL_INSETS, DEFAULT_TICK_LABEL_PAINT, DEFAULT_TICK_LABELS_VISIBLE, DEFAULT_TICK_MARK_INSIDE_LENGTH, DEFAULT_TICK_MARK_OUTSIDE_LENGTH, DEFAULT_TICK_MARK_PAINT, DEFAULT_TICK_MARK_STROKE, DEFAULT_TICK_MARKS_VISIBLE, LEFT, RIGHT, TOP
 
Constructor Summary
XYPlot(XYDataset data, ValueAxis domainAxis, ValueAxis rangeAxis)
          Constructs an XYPlot with the specified axes (other attributes take default values).
XYPlot(XYDataset data, ValueAxis domainAxis, ValueAxis rangeAxis, XYItemRenderer renderer)
          Constructs an XYPlot with the specified axes and renderer (other attributes take default values).
 
Method Summary
 void addAnnotation(XYAnnotation annotation)
          Adds an annotation to the plot.
 void addDomainMarker(Marker marker)
          Adds a marker for the domain axis.
 void addRangeMarker(Marker marker)
          Adds a marker for the range axis.
 void addSecondaryRangeMarker(Marker marker)
          Adds a secondary marker for the range axis.
 void clearAnnotations()
          Clears all the annotations.
 void clearDomainMarkers()
          Clears all the domain markers.
 void clearRangeMarkers()
          Clears all the range markers.
 void clearSecondaryRangeMarkers()
          Clears all the secondary range markers.
 void datasetChanged(DatasetChangeEvent event)
          Receives notification of a change to the plot's dataset.
 void draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, ChartRenderingInfo info)
          Draws the XY plot on a Java 2D graphics device (such as the screen or a printer).
protected  void drawHorizontalLine(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, double value, java.awt.Stroke stroke, java.awt.Paint paint)
          Utility method for drawing a crosshair on the chart (if required).
protected  void drawVerticalLine(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, double value, java.awt.Stroke stroke, java.awt.Paint paint)
          Utility method for drawing a crosshair on the chart (if required).
 boolean equals(java.lang.Object obj)
          Tests this plot for equality with another object.
 ValueAxis getDomainAxis()
          Returns the domain axis for the plot.
 int getDomainAxisLocation()
          Returns the location of the domain axis.
 java.awt.Paint getDomainCrosshairPaint()
          Returns the domain crosshair color.
 java.awt.Stroke getDomainCrosshairStroke()
          Returns the Stroke used to draw the crosshair (if visible).
 double getDomainCrosshairValue()
          Returns the domain crosshair value.
 java.awt.Paint getDomainGridlinePaint()
          Returns the paint for the grid lines (if any) plotted against the domain axis.
 java.awt.Stroke getDomainGridlineStroke()
          Returns the stroke for the grid-lines (if any) plotted against the domain axis.
 HorizontalAxis getHorizontalAxis()
          Returns the horizontal axis.
 Range getHorizontalDataRange(ValueAxis axis)
          Returns the range for the horizontal axis.
 ValueAxis getHorizontalValueAxis()
          Returns the horizontal axis.
 LegendItemCollection getLegendItems()
          Returns the legend items for the plot.
 java.lang.String getPlotType()
          Returns the plot type as a string.
 ValueAxis getRangeAxis()
          Returns the range axis for the plot.
 int getRangeAxisLocation()
          Returns the location of the range axis.
 java.awt.Paint getRangeCrosshairPaint()
          Returns the range crosshair color.
 java.awt.Stroke getRangeCrosshairStroke()
          Returns the Stroke used to draw the crosshair (if visible).
 double getRangeCrosshairValue()
          Returns the range crosshair value.
 java.awt.Paint getRangeGridlinePaint()
          Returns the paint for the grid lines (if any) plotted against the range axis.
 java.awt.Stroke getRangeGridlineStroke()
          Returns the stroke for the grid lines (if any) plotted against the range axis.
 XYItemRenderer getRenderer()
          Returns the item renderer.
 ValueAxis getSecondaryRangeAxis()
          Returns the secondary range axis.
 XYItemRenderer getSecondaryRenderer()
          Returns the secondary item renderer.
 XYDataset getSecondaryXYDataset()
          Returns the secondary dataset (possibly null), cast as an XYDataset.
 int getSeriesCount()
          Returns the number of series in the dataset for this plot.
 VerticalAxis getVerticalAxis()
          Returns the vertical axis.
 Range getVerticalDataRange(ValueAxis axis)
          Returns the range for the vertical axis.
 ValueAxis getVerticalValueAxis()
          Returns the vertical axis.
 int getWeight()
          Returns the weight for this plot when it is used as a subplot within a combined plot.
 XYDataset getXYDataset()
          A convenience method that returns the dataset for the plot, cast as an XYDataset.
 void handleClick(int x, int y, ChartRenderingInfo info)
          Handles a 'click' on the plot by updating the anchor values...
 boolean isCompatibleDomainAxis(ValueAxis axis)
          Checks the compatibility of a domain axis, returning true if the axis is compatible with the plot, and false otherwise.
 boolean isCompatibleRangeAxis(ValueAxis axis)
          Checks the compatibility of a range axis, returning true if the axis is compatible with the plot, and false otherwise.
 boolean isDomainCrosshairLockedOnData()
          Returns a flag indicating whether or not the crosshair should "lock-on" to actual data values.
 boolean isDomainCrosshairVisible()
          Returns a flag indicating whether or not the domain crosshair is visible.
 boolean isDomainGridlinesVisible()
          Returns true if the domain gridlines are visible, and false otherwise.
 boolean isRangeCrosshairLockedOnData()
          Returns a flag indicating whether or not the crosshair should "lock-on" to actual data values.
 boolean isRangeCrosshairVisible()
          Returns a flag indicating whether or not the range crosshair is visible.
 boolean isRangeGridlinesVisible()
          Returns true if the range axis grid is visible, and false otherwise.
 void propertyChange(java.beans.PropertyChangeEvent event)
          Notifies all registered listeners of a property change.
 void render(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, ChartRenderingInfo info, CrosshairInfo crosshairInfo)
          Draws a representation of the data within the dataArea region, using the current renderer.
 void render2(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, ChartRenderingInfo info, CrosshairInfo crosshairInfo)
          Draws a representation of the data within the dataArea region, using the current renderer.
 void setDomainAxis(ValueAxis axis)
          Sets the domain axis for the plot (this must be compatible with the plot type or an exception is thrown).
 void setDomainAxisLocation(int location)
          Sets the location of the domain axis.
 void setDomainAxisLocation(int location, boolean notify)
          Sets the location of the domain axis.
 void setDomainCrosshairLockedOnData(boolean flag)
          Sets the flag indicating whether or not the domain crosshair should "lock-on" to actual data values.
 void setDomainCrosshairPaint(java.awt.Paint paint)
          Sets the Paint used to color the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
 void setDomainCrosshairStroke(java.awt.Stroke stroke)
          Sets the Stroke used to draw the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
 void setDomainCrosshairValue(double value)
          Sets the domain crosshair value.
 void setDomainCrosshairValue(double value, boolean notify)
          Sets the domain crosshair value.
 void setDomainCrosshairVisible(boolean flag)
          Sets the flag indicating whether or not the domain crosshair is visible.
 void setDomainGridlinePaint(java.awt.Paint paint)
          Sets the paint for the grid lines plotted against the domain axis.
 void setDomainGridlineStroke(java.awt.Stroke stroke)
          Sets the stroke for the grid lines plotted against the domain axis.
 void setDomainGridlinesVisible(boolean visible)
          Sets the flag that controls whether or not the domain grid-lines are visible.
 void setRangeAxis(ValueAxis axis)
          Sets the range axis for the plot.
 void setRangeAxisLocation(int location)
          Sets the location of the range axis.
 void setRangeAxisLocation(int location, boolean notify)
          Sets the location of the range axis.
 void setRangeCrosshairLockedOnData(boolean flag)
          Sets the flag indicating whether or not the range crosshair should "lock-on" to actual data values.
 void setRangeCrosshairPaint(java.awt.Paint paint)
          Sets the Paint used to color the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
 void setRangeCrosshairStroke(java.awt.Stroke stroke)
          Sets the Stroke used to draw the crosshairs (if visible) and notifies registered listeners that the axis has been modified.
 void setRangeCrosshairValue(double value)
          Sets the domain crosshair value.
 void setRangeCrosshairValue(double value, boolean notify)
          Sets the range crosshair value.
 void setRangeCrosshairVisible(boolean flag)
          Sets the flag indicating whether or not the range crosshair is visible.
 void setRangeGridlinePaint(java.awt.Paint paint)
          Sets the paint for the grid lines plotted against the range axis.
 void setRangeGridlineStroke(java.awt.Stroke stroke)
          Sets the stroke for the grid lines plotted against the range axis.
 void setRangeGridlinesVisible(boolean visible)
          Sets the flag that controls whether or not the range axis grid lines are visible.
 void setRenderer(XYItemRenderer renderer)
          Sets the item renderer, and notifies all listeners of a change to the plot.
 void setSecondaryRangeAxis(ValueAxis axis)
          Sets the secondary range axis for the plot.
 void setSecondaryRenderer(XYItemRenderer renderer)
          Sets the secondary item renderer.
 void setWeight(int weight)
          Sets the weight for the plot.
 void zoom(double percent)
          Zooms the axis ranges by the specified percentage about the anchor point.
 
Methods inherited from class org.jfree.chart.plot.Plot
addChangeListener, axisChanged, drawBackground, drawNoDataMessage, drawOutline, getBackgroundAlpha, getBackgroundImage, getBackgroundImageAlignment, getBackgroundPaint, getDataAreaRatio, getDataset, getDatasetGroup, getForegroundAlpha, getInsets, getNoDataMessage, getNoDataMessageFont, getNoDataMessagePaint, getOppositeAxisLocation, getOutlinePaint, getOutlineStroke, getParent, getRectX, getRectY, getRootPlot, getSecondaryDataset, isSubplot, notifyListeners, removeChangeListener, setBackgroundAlpha, setBackgroundImage, setBackgroundImageAlignment, setBackgroundPaint, setDataAreaRatio, setDataset, setDatasetGroup, setForegroundAlpha, setInsets, setInsets, setNoDataMessage, setNoDataMessageFont, setNoDataMessagePaint, setOutlinePaint, setOutlineStroke, setParent, setSecondaryDataset
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_GRIDLINE_STROKE

public static final java.awt.Stroke DEFAULT_GRIDLINE_STROKE
The default grid line stroke.


DEFAULT_GRIDLINE_PAINT

public static final java.awt.Paint DEFAULT_GRIDLINE_PAINT
The default grid line paint.


DEFAULT_CROSSHAIR_VISIBLE

public static final boolean DEFAULT_CROSSHAIR_VISIBLE
The default crosshair visibility.

See Also:
Constant Field Values

DEFAULT_CROSSHAIR_STROKE

public static final java.awt.Stroke DEFAULT_CROSSHAIR_STROKE
The default crosshair stroke.


DEFAULT_CROSSHAIR_PAINT

public static final java.awt.Paint DEFAULT_CROSSHAIR_PAINT
The default crosshair paint.

Constructor Detail

XYPlot

public XYPlot(XYDataset data,
              ValueAxis domainAxis,
              ValueAxis rangeAxis)
Constructs an XYPlot with the specified axes (other attributes take default values).

Parameters:
data - the dataset.
domainAxis - the domain axis.
rangeAxis - the range axis.

XYPlot

public XYPlot(XYDataset data,
              ValueAxis domainAxis,
              ValueAxis rangeAxis,
              XYItemRenderer renderer)
Constructs an XYPlot with the specified axes and renderer (other attributes take default values).

Parameters:
data - the dataset.
domainAxis - the domain axis.
rangeAxis - the range axis.
renderer - the renderer
Method Detail

getSeriesCount

public int getSeriesCount()
Returns the number of series in the dataset for this plot.

Returns:
the series count.

getLegendItems

public LegendItemCollection getLegendItems()
Returns the legend items for the plot. Each legend item is generated by the plot's renderer, since the renderer is responsible for the visual representation of the data.

Overrides:
getLegendItems in class Plot
Returns:
the legend items.

getWeight

public int getWeight()
Returns the weight for this plot when it is used as a subplot within a combined plot.

Returns:
the weight.

setWeight

public void setWeight(int weight)
Sets the weight for the plot.

Parameters:
weight - the weight.

getRenderer

public XYItemRenderer getRenderer()
Returns the item renderer.

Returns:
the item renderer (possibly null).

setRenderer

public void setRenderer(XYItemRenderer renderer)
Sets the item renderer, and notifies all listeners of a change to the plot.

If the renderer is set to null, no chart will be drawn.

Parameters:
renderer - the new renderer (null permitted).

getSecondaryRenderer

public XYItemRenderer getSecondaryRenderer()
Returns the secondary item renderer. This renderer is responsible for the visual representation of each item in the secondary dataset (if there is one). If no secondary renderer is set, then the primary renderer is used instead.

Returns:
the renderer (possibly null).

setSecondaryRenderer

public void setSecondaryRenderer(XYItemRenderer renderer)
Sets the secondary item renderer. This renderer is responsible for the visual representation of each item in the secondary dataset (if there is one).

You can set this renderer to null, in which case the primary renderer is used instead.

Parameters:
renderer - the new renderer (null permitted).

getSecondaryRangeAxis

public ValueAxis getSecondaryRangeAxis()
Returns the secondary range axis.

Returns:
the axis.

setSecondaryRangeAxis

public void setSecondaryRangeAxis(ValueAxis axis)
Sets the secondary range axis for the plot. The axis will be drawn on the opposite side of the chart to the primary range axis. If there is a secondary dataset, it will be plotted against the secondary range axis, but if there is no secondary dataset, the secondary axis will mirror the values on the primary range axis.

Parameters:
axis - the axis.

getXYDataset

public XYDataset getXYDataset()
A convenience method that returns the dataset for the plot, cast as an XYDataset.

Returns:
the dataset for the plot, cast as an XYDataset.

getSecondaryXYDataset

public XYDataset getSecondaryXYDataset()
Returns the secondary dataset (possibly null), cast as an XYDataset.

Returns:
the secondary dataset.

getDomainAxis

public ValueAxis getDomainAxis()
Returns the domain axis for the plot. If the domain axis for this plot is null, then the method will return the parent plot's domain axis (if there is a parent plot).

Returns:
the domain axis.

setDomainAxis

public void setDomainAxis(ValueAxis axis)
                   throws AxisNotCompatibleException
Sets the domain axis for the plot (this must be compatible with the plot type or an exception is thrown).

Parameters:
axis - the new axis.
Throws:
AxisNotCompatibleException - if the axis is not compatible.

getDomainAxisLocation

public int getDomainAxisLocation()
Returns the location of the domain axis.

Returns:
the location.

setDomainAxisLocation

public void setDomainAxisLocation(int location)
Sets the location of the domain axis.

Use one of the constants LEFT, RIGHT, TOP or BOTTOM.

Parameters:
location - the axis location.

setDomainAxisLocation

public void setDomainAxisLocation(int location,
                                  boolean notify)
Sets the location of the domain axis.

Use one of the constants LEFT, RIGHT, TOP or BOTTOM.

Parameters:
location - the axis location.
notify - a flag that controls whether listeners are notified.

isDomainGridlinesVisible

public boolean isDomainGridlinesVisible()
Returns true if the domain gridlines are visible, and false otherwise.

Returns:
true or false.

setDomainGridlinesVisible

public void setDomainGridlinesVisible(boolean visible)
Sets the flag that controls whether or not the domain grid-lines are visible.

If the flag value is changed, a PlotChangeEvent is sent to all registered listeners.

Parameters:
visible - the new value of the flag.

getDomainGridlineStroke

public java.awt.Stroke getDomainGridlineStroke()
Returns the stroke for the grid-lines (if any) plotted against the domain axis.

Returns:
the stroke.

setDomainGridlineStroke

public void setDomainGridlineStroke(java.awt.Stroke stroke)
Sets the stroke for the grid lines plotted against the domain axis.

If you set this to null, no grid lines will be drawn.

Parameters:
stroke - the stroke (null permitted).

getDomainGridlinePaint

public java.awt.Paint getDomainGridlinePaint()
Returns the paint for the grid lines (if any) plotted against the domain axis.

Returns:
the paint.

setDomainGridlinePaint

public void setDomainGridlinePaint(java.awt.Paint paint)
Sets the paint for the grid lines plotted against the domain axis.

If you set this to null, no grid lines will be drawn.

Parameters:
paint - the paint (null permitted).

getRangeAxis

public ValueAxis getRangeAxis()
Returns the range axis for the plot. If the range axis for this plot is null, then the method will return the parent plot's range axis (if there is a parent plot).

Returns:
the range axis.

setRangeAxis

public void setRangeAxis(ValueAxis axis)
                  throws AxisNotCompatibleException
Sets the range axis for the plot.

An exception is thrown if the new axis and the plot are not mutually compatible.

Parameters:
axis - the new axis (null permitted).
Throws:
AxisNotCompatibleException - if the axis is not compatible.

getRangeAxisLocation

public int getRangeAxisLocation()
Returns the location of the range axis.

Returns:
the location.

setRangeAxisLocation

public void setRangeAxisLocation(int location)
Sets the location of the range axis.

Use one of the constants LEFT, RIGHT, TOP or BOTTOM.

Parameters:
location - the location.

setRangeAxisLocation

public void setRangeAxisLocation(int location,
                                 boolean notify)
Sets the location of the range axis.

Use one of the constants LEFT, RIGHT, TOP or BOTTOM.

Parameters:
location - the location.
notify - a flag that controls whether listeners are notified.

isRangeGridlinesVisible

public boolean isRangeGridlinesVisible()
Returns true if the range axis grid is visible, and false otherwise.

Returns:
true or false.

setRangeGridlinesVisible

public void setRangeGridlinesVisible(boolean visible)
Sets the flag that controls whether or not the range axis grid lines are visible.

If the flag value is changed, a PlotChangeEvent is sent to all registered listeners.

Parameters:
visible - the new value of the flag.

getRangeGridlineStroke

public java.awt.Stroke getRangeGridlineStroke()
Returns the stroke for the grid lines (if any) plotted against the range axis.

Returns:
the stroke.

setRangeGridlineStroke

public void setRangeGridlineStroke(java.awt.Stroke stroke)
Sets the stroke for the grid lines plotted against the range axis.

If you set this to null, no grid lines will be drawn.

Parameters:
stroke - the stroke (null permitted).

getRangeGridlinePaint

public java.awt.Paint getRangeGridlinePaint()
Returns the paint for the grid lines (if any) plotted against the range axis.

Returns:
the paint.

setRangeGridlinePaint

public void setRangeGridlinePaint(java.awt.Paint paint)
Sets the paint for the grid lines plotted against the range axis.

If you set this to null, no grid lines will be drawn.

Parameters:
paint - the paint (null permitted).

addDomainMarker

public void addDomainMarker(Marker marker)
Adds a marker for the domain axis.

Typically a marker will be drawn by the renderer as a line perpendicular to the range axis, however this is entirely up to the renderer.

Parameters:
marker - the marker.

clearDomainMarkers

public void clearDomainMarkers()
Clears all the domain markers.


addRangeMarker

public void addRangeMarker(Marker marker)
Adds a marker for the range axis.

Typically a marker will be drawn by the renderer as a line perpendicular to the range axis, however this is entirely up to the renderer.

Parameters:
marker - The marker.

clearRangeMarkers

public void clearRangeMarkers()
Clears all the range markers.


addSecondaryRangeMarker

public void addSecondaryRangeMarker(Marker marker)
Adds a secondary marker for the range axis.

Typically a marker will be drawn by the renderer as a line perpendicular to the range axis, however this is entirely up to the renderer.

Parameters:
marker - The marker.

clearSecondaryRangeMarkers

public void clearSecondaryRangeMarkers()
Clears all the secondary range markers.


addAnnotation

public void addAnnotation(XYAnnotation annotation)
Adds an annotation to the plot.

Parameters:
annotation - the annotation.

clearAnnotations

public void clearAnnotations()
Clears all the annotations.


isCompatibleDomainAxis

public boolean isCompatibleDomainAxis(ValueAxis axis)
Checks the compatibility of a domain axis, returning true if the axis is compatible with the plot, and false otherwise.

Parameters:
axis - the proposed axis.
Returns:
true if the axis is compatible with the plot.

isCompatibleRangeAxis

public boolean isCompatibleRangeAxis(ValueAxis axis)
Checks the compatibility of a range axis, returning true if the axis is compatible with the plot, and false otherwise.

Parameters:
axis - the proposed axis.
Returns:
true if the axis is compatible with the plot.

draw

public void draw(java.awt.Graphics2D g2,
                 java.awt.geom.Rectangle2D plotArea,
                 ChartRenderingInfo info)
Draws the XY plot on a Java 2D graphics device (such as the screen or a printer).

XYPlot relies on an XYItemRenderer to draw each item in the plot. This allows the visual representation of the data to be changed easily.

The optional info argument collects information about the rendering of the plot (dimensions, tooltip information etc). Just pass in null if you do not need this information.

Specified by:
draw in class Plot
Parameters:
g2 - the graphics device.
plotArea - the area within which the plot (including axis labels) should be drawn.
info - collects chart drawing information (null permitted).

render

public void render(java.awt.Graphics2D g2,
                   java.awt.geom.Rectangle2D dataArea,
                   ChartRenderingInfo info,
                   CrosshairInfo crosshairInfo)
Draws a representation of the data within the dataArea region, using the current renderer.

The info and crosshairInfo arguments may be null.

Parameters:
g2 - the graphics device.
dataArea - the region in which the data is to be drawn.
info - an optional object for collection dimension information.
crosshairInfo - an optional object for collecting crosshair info.

render2

public void render2(java.awt.Graphics2D g2,
                    java.awt.geom.Rectangle2D dataArea,
                    ChartRenderingInfo info,
                    CrosshairInfo crosshairInfo)
Draws a representation of the data within the dataArea region, using the current renderer.

The info and crosshairInfo arguments may be null.

Parameters:
g2 - the graphics device.
dataArea - the region in which the data is to be drawn.
info - an optional object for collection dimension information.
crosshairInfo - an optional object for collecting crosshair info.

drawVerticalLine

protected void drawVerticalLine(java.awt.Graphics2D g2,
                                java.awt.geom.Rectangle2D dataArea,
                                double value,
                                java.awt.Stroke stroke,
                                java.awt.Paint paint)
Utility method for drawing a crosshair on the chart (if required).

Parameters:
g2 - the graphics device.
dataArea - the data area.
value - the coordinate, where to draw the line.
stroke - the stroke to use.
paint - the paint to use.

drawHorizontalLine

protected void drawHorizontalLine(java.awt.Graphics2D g2,
                                  java.awt.geom.Rectangle2D dataArea,
                                  double value,
                                  java.awt.Stroke stroke,
                                  java.awt.Paint paint)
Utility method for drawing a crosshair on the chart (if required).

Parameters:
g2 - the graphics device.
dataArea - the data area.
value - the coordinate, where to draw the line.
stroke - the stroke to use.
paint - the paint to use.

handleClick

public void handleClick(int x,
                        int y,
                        ChartRenderingInfo info)
Handles a 'click' on the plot by updating the anchor values...

Overrides:
handleClick in class Plot
Parameters:
x - x-coordinate, where the click occured.
y - y-coordinate, where the click occured.
info - an object for collection dimension information.

zoom

public void zoom(double percent)
Zooms the axis ranges by the specified percentage about the anchor point.

Overrides:
zoom in class Plot
Parameters:
percent - the amount of the zoom.

getPlotType

public java.lang.String getPlotType()
Returns the plot type as a string.

Specified by:
getPlotType in class Plot
Returns:
a short string describing the type of plot.

getHorizontalDataRange

public Range getHorizontalDataRange(ValueAxis axis)
Returns the range for the horizontal axis.

Specified by:
getHorizontalDataRange in interface HorizontalValuePlot
Parameters:
axis - the axis.
Returns:
the range.

getVerticalDataRange

public Range getVerticalDataRange(ValueAxis axis)
Returns the range for the vertical axis.

Specified by:
getVerticalDataRange in interface VerticalValuePlot
Parameters:
axis - the axis.
Returns:
the range for the vertical axis.

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent event)
Notifies all registered listeners of a property change.

One source of property change events is the plot's renderer.

Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Parameters:
event - information about the property change.

datasetChanged

public void datasetChanged(DatasetChangeEvent event)
Receives notification of a change to the plot's dataset.

The axis ranges are updated if necessary.

Specified by:
datasetChanged in interface DatasetChangeListener
Overrides:
datasetChanged in class Plot
Parameters:
event - information about the event (not used here).

getHorizontalAxis

public HorizontalAxis getHorizontalAxis()
Returns the horizontal axis.

Returns:
the horizontal axis.

getHorizontalValueAxis

public ValueAxis getHorizontalValueAxis()
Returns the horizontal axis.

This method is part of the HorizontalValuePlot interface.

Specified by:
getHorizontalValueAxis in interface HorizontalValuePlot
Returns:
the horizontal axis.

getVerticalAxis

public VerticalAxis getVerticalAxis()
Returns the vertical axis.

Returns:
the vertical axis.

getVerticalValueAxis

public ValueAxis getVerticalValueAxis()
Returns the vertical axis.

This method is part of the VerticalValuePlot interface.

Specified by:
getVerticalValueAxis in interface VerticalValuePlot
Returns:
the vertical axis.

isDomainCrosshairVisible

public boolean isDomainCrosshairVisible()
Returns a flag indicating whether or not the domain crosshair is visible.

Returns:
the flag.

setDomainCrosshairVisible

public void setDomainCrosshairVisible(boolean flag)
Sets the flag indicating whether or not the domain crosshair is visible.

Parameters:
flag - the new value of the flag.

isDomainCrosshairLockedOnData

public boolean isDomainCrosshairLockedOnData()
Returns a flag indicating whether or not the crosshair should "lock-on" to actual data values.

Returns:
the flag.

setDomainCrosshairLockedOnData

public void setDomainCrosshairLockedOnData(boolean flag)
Sets the flag indicating whether or not the domain crosshair should "lock-on" to actual data values.

Parameters:
flag - the flag.

getDomainCrosshairValue

public double getDomainCrosshairValue()
Returns the domain crosshair value.

Returns:
The value.

setDomainCrosshairValue

public void setDomainCrosshairValue(double value)
Sets the domain crosshair value.

Registered listeners are notified that the plot has been modified, but only if the crosshair is visible.

Parameters:
value - the new value.

setDomainCrosshairValue

public void setDomainCrosshairValue(double value,
                                    boolean notify)
Sets the domain crosshair value.

Registered listeners are notified that the axis has been modified, but only if the crosshair is visible.

Parameters:
value - the new value.
notify - a flag that controls whether or not listeners are notified.

getDomainCrosshairStroke

public java.awt.Stroke getDomainCrosshairStroke()
Returns the Stroke used to draw the crosshair (if visible).

Returns:
the crosshair stroke.

setDomainCrosshairStroke

public void setDomainCrosshairStroke(java.awt.Stroke stroke)
Sets the Stroke used to draw the crosshairs (if visible) and notifies registered listeners that the axis has been modified.

Parameters:
stroke - the new crosshair stroke.

getDomainCrosshairPaint

public java.awt.Paint getDomainCrosshairPaint()
Returns the domain crosshair color.

Returns:
the crosshair color.

setDomainCrosshairPaint

public void setDomainCrosshairPaint(java.awt.Paint paint)
Sets the Paint used to color the crosshairs (if visible) and notifies registered listeners that the axis has been modified.

Parameters:
paint - the new crosshair paint.

isRangeCrosshairVisible

public boolean isRangeCrosshairVisible()
Returns a flag indicating whether or not the range crosshair is visible.

Returns:
the flag.

setRangeCrosshairVisible

public void setRangeCrosshairVisible(boolean flag)
Sets the flag indicating whether or not the range crosshair is visible.

Parameters:
flag - the new value of the flag.

isRangeCrosshairLockedOnData

public boolean isRangeCrosshairLockedOnData()
Returns a flag indicating whether or not the crosshair should "lock-on" to actual data values.

Returns:
the flag.

setRangeCrosshairLockedOnData

public void setRangeCrosshairLockedOnData(boolean flag)
Sets the flag indicating whether or not the range crosshair should "lock-on" to actual data values.

Parameters:
flag - the flag.

getRangeCrosshairValue

public double getRangeCrosshairValue()
Returns the range crosshair value.

Returns:
The value.

setRangeCrosshairValue

public void setRangeCrosshairValue(double value)
Sets the domain crosshair value.

Registered listeners are notified that the plot has been modified, but only if the crosshair is visible.

Parameters:
value - the new value.

setRangeCrosshairValue

public void setRangeCrosshairValue(double value,
                                   boolean notify)
Sets the range crosshair value.

Registered listeners are notified that the axis has been modified, but only if the crosshair is visible.

Parameters:
value - the new value.
notify - a flag that controls whether or not listeners are notified.

getRangeCrosshairStroke

public java.awt.Stroke getRangeCrosshairStroke()
Returns the Stroke used to draw the crosshair (if visible).

Returns:
the crosshair stroke.

setRangeCrosshairStroke

public void setRangeCrosshairStroke(java.awt.Stroke stroke)
Sets the Stroke used to draw the crosshairs (if visible) and notifies registered listeners that the axis has been modified.

Parameters:
stroke - the new crosshair stroke.

getRangeCrosshairPaint

public java.awt.Paint getRangeCrosshairPaint()
Returns the range crosshair color.

Returns:
the crosshair color.

setRangeCrosshairPaint

public void setRangeCrosshairPaint(java.awt.Paint paint)
Sets the Paint used to color the crosshairs (if visible) and notifies registered listeners that the axis has been modified.

Parameters:
paint - the new crosshair paint.

equals

public boolean equals(java.lang.Object obj)
Tests this plot for equality with another object.

Overrides:
equals in class Plot
Parameters:
obj - the object.
Returns:
true or false.