edu.ucla.stat.SOCR.motionchart
Class MotionBubbleRenderer

java.lang.Object
  extended by org.jfree.chart.renderer.AbstractRenderer
      extended by org.jfree.chart.renderer.xy.AbstractXYItemRenderer
          extended by org.jfree.chart.renderer.xy.XYBubbleRenderer
              extended by edu.ucla.stat.SOCR.motionchart.MotionBubbleRenderer
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.EventListener, org.jfree.chart.event.AxisChangeListener, org.jfree.chart.event.PlotChangeListener, org.jfree.chart.LegendItemSource, org.jfree.chart.renderer.xy.XYItemRenderer, org.jfree.data.general.DatasetChangeListener, org.jfree.util.PublicCloneable

public class MotionBubbleRenderer
extends org.jfree.chart.renderer.xy.XYBubbleRenderer
implements org.jfree.chart.event.PlotChangeListener, org.jfree.chart.event.AxisChangeListener, org.jfree.data.general.DatasetChangeListener

Package: edu.ucla.stat.SOCR.motionchart Date: Dec 2, 2008 Time: 12:36:52 PM

Author:
Jameel
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.jfree.chart.renderer.xy.XYBubbleRenderer
SCALE_ON_BOTH_AXES, SCALE_ON_DOMAIN_AXIS, SCALE_ON_RANGE_AXIS, serialVersionUID
 
Fields inherited from class org.jfree.chart.renderer.AbstractRenderer
DEFAULT_PAINT, DEFAULT_SHAPE, DEFAULT_STROKE, DEFAULT_VALUE_LABEL_FONT, DEFAULT_VALUE_LABEL_PAINT, ZERO
 
Constructor Summary
MotionBubbleRenderer(MotionDataSet dataset)
          Creates a new MotionBubbleRenderer instance.
MotionBubbleRenderer(MotionDataSet dataset, int scaleType)
          Constructs a new MotionBubbleRenderer with the specified type of scaling.
 
Method Summary
 void axisChanged(org.jfree.chart.event.AxisChangeEvent event)
          Receives notification of an axis change event.
protected  java.awt.geom.Point2D calculateLabelAnchorPoint(org.jfree.chart.labels.ItemLabelAnchor anchor, double x, double y, org.jfree.chart.plot.PlotOrientation orientation)
          Calculates the item label anchor point.
 void datasetChanged(org.jfree.data.general.DatasetChangeEvent event)
          Receives notification of an dataset change event.
 void drawItem(java.awt.Graphics2D g2, org.jfree.chart.renderer.xy.XYItemRendererState state, java.awt.geom.Rectangle2D dataArea, org.jfree.chart.plot.PlotRenderingInfo info, org.jfree.chart.plot.XYPlot plot, org.jfree.chart.axis.ValueAxis domainAxis, org.jfree.chart.axis.ValueAxis rangeAxis, org.jfree.data.xy.XYDataset dataset, int series, int item, org.jfree.chart.plot.CrosshairState crosshairState, int pass)
          Draws the visual representation of a single data item.
 java.awt.Paint getItemLabelPaint(int row, int column)
          Returns the paint used to draw an item label.
 java.awt.Paint getItemOutlinePaint(int row, int column)
          Returns the paint used to outline data items as they are drawn.
 java.awt.Stroke getItemOutlineStroke(int row, int column)
          Returns the stroke used to outline data items.
 java.awt.Paint getItemPaint(int row, int column)
          Returns the paint used to fill data items as they are drawn.
 java.awt.Shape getItemShape(int row, int column)
          Returns a shape used to represent a data item.
 java.lang.Boolean getSeriesVisible(int series)
          Returns the flag that controls whether a series is visible.
 java.util.ArrayList<java.lang.Integer> getVisibleSeries()
          Returns indices of all visible series.
 boolean isHighlightedItem(int series, int item)
          Determines whether or not the item in the series is highlighted.
 boolean isItemLabelVisible(int row, int column)
          Returns true if an item label is visible, and false otherwise.
 boolean isSelectedCategory(java.lang.Object category)
          Determines whether or not the category is selected.
 boolean isSelectedItem(int series, int item)
          Determines whether or not the item in the series is selected.
 void plotChanged(org.jfree.chart.event.PlotChangeEvent event)
          Receives notification of a plot change event.
 void setHighlightedItem(int series, int item)
          Sets the item to be highlighted (use (-1, -1) for no highlight).
 void setPlot(org.jfree.chart.plot.XYPlot plot)
          Sets the plot that the renderer is assigned to.
 void setSelectedCategory(java.lang.Object category)
          Sets the category to be selected.
 void setSelectedCategory(java.lang.Object category, boolean selected)
          Sets the category to be selected.
 void setSelectedItem(int series, int item)
          Sets the item to be selected.
 void setSelectedItem(int series, int item, boolean selected)
          Sets the item to be selected.
protected  java.awt.geom.Ellipse2D.Double translateShape(java.awt.geom.Ellipse2D.Double shape, org.jfree.chart.plot.XYPlot plot, java.awt.geom.Rectangle2D dataArea)
          Translates the shape so that it displays correctly given the plot and dataArea.
 
Methods inherited from class org.jfree.chart.renderer.xy.XYBubbleRenderer
clone, equals, getLegendItem, getScaleType
 
Methods inherited from class org.jfree.chart.renderer.xy.AbstractXYItemRenderer
addAnnotation, addAnnotation, addEntity, calculateDomainMarkerTextAnchorPoint, drawAnnotations, drawDomainGridLine, drawDomainLine, drawDomainMarker, drawItemLabel, drawRangeLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findRangeBounds, getBaseItemLabelGenerator, getBaseToolTipGenerator, getDefaultEntityRadius, getDrawingSupplier, getItemLabelGenerator, getItemLabelGenerator, getLegendItemLabelGenerator, getLegendItems, getLegendItemToolTipGenerator, getLegendItemURLGenerator, getPassCount, getPlot, getSeriesItemLabelGenerator, getSeriesToolTipGenerator, getToolTipGenerator, getToolTipGenerator, getURLGenerator, initialise, removeAnnotation, removeAnnotations, setBaseItemLabelGenerator, setBaseToolTipGenerator, setDefaultEntityRadius, setItemLabelGenerator, setLegendItemLabelGenerator, setLegendItemToolTipGenerator, setLegendItemURLGenerator, setSeriesItemLabelGenerator, setSeriesToolTipGenerator, setToolTipGenerator, setURLGenerator, updateCrosshairValues, updateCrosshairValues
 
Methods inherited from class org.jfree.chart.renderer.AbstractRenderer
addChangeListener, fireChangeEvent, getAutoPopulateSeriesFillPaint, getAutoPopulateSeriesOutlinePaint, getAutoPopulateSeriesOutlineStroke, getAutoPopulateSeriesPaint, getAutoPopulateSeriesShape, getAutoPopulateSeriesStroke, getBaseCreateEntities, getBaseFillPaint, getBaseItemLabelFont, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseSeriesVisible, getBaseSeriesVisibleInLegend, getBaseShape, getBaseStroke, getCreateEntities, getItemCreateEntity, getItemFillPaint, getItemLabelAnchorOffset, getItemLabelFont, getItemLabelFont, getItemLabelPaint, getItemStroke, getItemVisible, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesCreateEntities, getSeriesFillPaint, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesVisible, getSeriesVisibleInLegend, getSeriesVisibleInLegend, hashCode, hasListener, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, lookupSeriesFillPaint, lookupSeriesOutlinePaint, lookupSeriesOutlineStroke, lookupSeriesPaint, lookupSeriesShape, lookupSeriesStroke, notifyListeners, removeChangeListener, setAutoPopulateSeriesFillPaint, setAutoPopulateSeriesOutlinePaint, setAutoPopulateSeriesOutlineStroke, setAutoPopulateSeriesPaint, setAutoPopulateSeriesShape, setAutoPopulateSeriesStroke, setBaseCreateEntities, setBaseCreateEntities, setBaseFillPaint, setBaseFillPaint, setBaseItemLabelFont, setBaseItemLabelFont, setBaseItemLabelPaint, setBaseItemLabelPaint, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlinePaint, setBaseOutlineStroke, setBaseOutlineStroke, setBasePaint, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, setBaseSeriesVisible, setBaseSeriesVisible, setBaseSeriesVisibleInLegend, setBaseSeriesVisibleInLegend, setBaseShape, setBaseShape, setBaseStroke, setBaseStroke, setCreateEntities, setCreateEntities, setFillPaint, setFillPaint, setItemLabelAnchorOffset, setItemLabelFont, setItemLabelFont, setItemLabelPaint, setItemLabelPaint, setItemLabelsVisible, setItemLabelsVisible, setItemLabelsVisible, setNegativeItemLabelPosition, setNegativeItemLabelPosition, setOutlinePaint, setOutlinePaint, setOutlineStroke, setOutlineStroke, setPaint, setPaint, setPositiveItemLabelPosition, setPositiveItemLabelPosition, setSeriesCreateEntities, setSeriesCreateEntities, setSeriesFillPaint, setSeriesFillPaint, setSeriesItemLabelFont, setSeriesItemLabelFont, setSeriesItemLabelPaint, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesOutlineStroke, setSeriesPaint, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesShape, setSeriesStroke, setSeriesStroke, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setShape, setShape, setStroke, setStroke
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jfree.chart.renderer.xy.XYItemRenderer
addAnnotation, addAnnotation, addChangeListener, drawAnnotations, drawDomainGridLine, drawDomainMarker, drawRangeLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findRangeBounds, getBaseItemLabelFont, getBaseItemLabelGenerator, getBaseItemLabelPaint, getBaseItemLabelsVisible, getBaseNegativeItemLabelPosition, getBaseOutlinePaint, getBaseOutlineStroke, getBasePaint, getBasePositiveItemLabelPosition, getBaseSeriesVisible, getBaseSeriesVisibleInLegend, getBaseShape, getBaseStroke, getBaseToolTipGenerator, getItemLabelFont, getItemLabelFont, getItemLabelGenerator, getItemLabelPaint, getItemStroke, getItemVisible, getLegendItemLabelGenerator, getNegativeItemLabelPosition, getNegativeItemLabelPosition, getPassCount, getPlot, getPositiveItemLabelPosition, getPositiveItemLabelPosition, getSeriesItemLabelFont, getSeriesItemLabelGenerator, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesToolTipGenerator, getSeriesVisible, getSeriesVisibleInLegend, getSeriesVisibleInLegend, getToolTipGenerator, getURLGenerator, initialise, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, removeAnnotation, removeAnnotations, removeChangeListener, setBaseItemLabelFont, setBaseItemLabelGenerator, setBaseItemLabelPaint, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseItemLabelsVisible, setBaseNegativeItemLabelPosition, setBaseNegativeItemLabelPosition, setBaseOutlinePaint, setBaseOutlineStroke, setBasePaint, setBasePositiveItemLabelPosition, setBasePositiveItemLabelPosition, setBaseSeriesVisible, setBaseSeriesVisible, setBaseSeriesVisibleInLegend, setBaseSeriesVisibleInLegend, setBaseShape, setBaseStroke, setBaseToolTipGenerator, setItemLabelFont, setItemLabelGenerator, setItemLabelPaint, setItemLabelsVisible, setItemLabelsVisible, setItemLabelsVisible, setLegendItemLabelGenerator, setNegativeItemLabelPosition, setNegativeItemLabelPosition, setOutlinePaint, setOutlineStroke, setPaint, setPositiveItemLabelPosition, setPositiveItemLabelPosition, setSeriesItemLabelFont, setSeriesItemLabelGenerator, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesStroke, setSeriesToolTipGenerator, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setShape, setStroke, setToolTipGenerator, setURLGenerator
 
Methods inherited from interface org.jfree.chart.LegendItemSource
getLegendItems
 

Constructor Detail

MotionBubbleRenderer

public MotionBubbleRenderer(MotionDataSet dataset)
Creates a new MotionBubbleRenderer instance.

Parameters:
dataset - the dataset to be rendered (an MotionDataSet is expected).

MotionBubbleRenderer

public MotionBubbleRenderer(MotionDataSet dataset,
                            int scaleType)
Constructs a new MotionBubbleRenderer with the specified type of scaling.

Parameters:
dataset - the dataset that the renderer will use
scaleType - the type of scaling (must be one of: XYBubbleRenderer.SCALE_ON_BOTH_AXES, XYBubbleRenderer.SCALE_ON_DOMAIN_AXIS, XYBubbleRenderer.SCALE_ON_RANGE_AXIS).
Method Detail

drawItem

public void drawItem(java.awt.Graphics2D g2,
                     org.jfree.chart.renderer.xy.XYItemRendererState state,
                     java.awt.geom.Rectangle2D dataArea,
                     org.jfree.chart.plot.PlotRenderingInfo info,
                     org.jfree.chart.plot.XYPlot plot,
                     org.jfree.chart.axis.ValueAxis domainAxis,
                     org.jfree.chart.axis.ValueAxis rangeAxis,
                     org.jfree.data.xy.XYDataset dataset,
                     int series,
                     int item,
                     org.jfree.chart.plot.CrosshairState crosshairState,
                     int pass)
Draws the visual representation of a single data item.

Specified by:
drawItem in interface org.jfree.chart.renderer.xy.XYItemRenderer
Overrides:
drawItem in class org.jfree.chart.renderer.xy.XYBubbleRenderer
Parameters:
g2 - the graphics device.
state - the renderer state.
dataArea - the area within which the data is being drawn.
info - collects information about the drawing.
plot - the plot (can be used to obtain standard color information etc).
domainAxis - the domain (horizontal) axis.
rangeAxis - the range (vertical) axis.
dataset - the dataset (a MotionDataSet is expected).
series - the series index (zero-based).
item - the item index (zero-based).
crosshairState - crosshair information for the plot (null permitted).
pass - the pass index.

translateShape

protected java.awt.geom.Ellipse2D.Double translateShape(java.awt.geom.Ellipse2D.Double shape,
                                                        org.jfree.chart.plot.XYPlot plot,
                                                        java.awt.geom.Rectangle2D dataArea)
Translates the shape so that it displays correctly given the plot and dataArea.

Parameters:
shape - the shape to translate
plot - the plot that will be used to translate the shape
dataArea - the dataArea that the shape will be translated to
Returns:
The translated shape

calculateLabelAnchorPoint

protected java.awt.geom.Point2D calculateLabelAnchorPoint(org.jfree.chart.labels.ItemLabelAnchor anchor,
                                                          double x,
                                                          double y,
                                                          org.jfree.chart.plot.PlotOrientation orientation)
Calculates the item label anchor point.

Overrides:
calculateLabelAnchorPoint in class org.jfree.chart.renderer.AbstractRenderer
Parameters:
anchor - the anchor.
x - the x coordinate.
y - the y coordinate.
orientation - the plot orientation.
Returns:
The anchor point (never null).

getSeriesVisible

public java.lang.Boolean getSeriesVisible(int series)
Returns the flag that controls whether a series is visible.

Specified by:
getSeriesVisible in interface org.jfree.chart.renderer.xy.XYItemRenderer
Overrides:
getSeriesVisible in class org.jfree.chart.renderer.AbstractRenderer
Parameters:
series - the series index (zero-based).
Returns:
The flag (possibly null).
See Also:
AbstractRenderer.setSeriesVisible(int, Boolean)

getVisibleSeries

public java.util.ArrayList<java.lang.Integer> getVisibleSeries()
Returns indices of all visible series.

Returns:
The list of visible series.
See Also:
getSeriesVisible(int)

getItemPaint

public java.awt.Paint getItemPaint(int row,
                                   int column)
Returns the paint used to fill data items as they are drawn.

The default implementation passes control to the lookupSeriesPaint() method. You can override this method if you require different behaviour.

Specified by:
getItemPaint in interface org.jfree.chart.renderer.xy.XYItemRenderer
Overrides:
getItemPaint in class org.jfree.chart.renderer.AbstractRenderer
Parameters:
row - the row (or series) index (zero-based).
column - the column (or category) index (zero-based).
Returns:
The paint (never null).

setHighlightedItem

public void setHighlightedItem(int series,
                               int item)
Sets the item to be highlighted (use (-1, -1) for no highlight).

Parameters:
series - the series index (zero-based).
item - the item index (zero-based).

isHighlightedItem

public boolean isHighlightedItem(int series,
                                 int item)
Determines whether or not the item in the series is highlighted.

Parameters:
series - the series index (zero-based).
item - the item index (zero-based).
Returns:
true if the item in the series is highlighted. false otherwise.

setSelectedItem

public void setSelectedItem(int series,
                            int item)
Sets the item to be selected.

Parameters:
series - the series index (zero-based).
item - the item index (zero-based).

setSelectedItem

public void setSelectedItem(int series,
                            int item,
                            boolean selected)
Sets the item to be selected.

Parameters:
series - the series index (zero-based).
item - the item index (zero-based).
selected - true if the item should be selected. false otherwise.

isSelectedItem

public boolean isSelectedItem(int series,
                              int item)
Determines whether or not the item in the series is selected.

Parameters:
series - the series index (zero-based).
item - the item index (zero-based).
Returns:
true if the item in the series is selected. false otherwise.

setSelectedCategory

public void setSelectedCategory(java.lang.Object category)
Sets the category to be selected.

Parameters:
category - the category key.

setSelectedCategory

public void setSelectedCategory(java.lang.Object category,
                                boolean selected)
Sets the category to be selected.

Parameters:
category - the category key.
selected - true if the item should be selected. false otherwise.

isSelectedCategory

public boolean isSelectedCategory(java.lang.Object category)
Determines whether or not the category is selected.

Parameters:
category - the category key.
Returns:
true if the category is selected. false otherwise.

getItemOutlinePaint

public java.awt.Paint getItemOutlinePaint(int row,
                                          int column)
Returns the paint used to outline data items as they are drawn.

The default implementation passes control to the AbstractRenderer.lookupSeriesOutlinePaint(int) method. You can override this method if you require different behaviour.

Specified by:
getItemOutlinePaint in interface org.jfree.chart.renderer.xy.XYItemRenderer
Overrides:
getItemOutlinePaint in class org.jfree.chart.renderer.AbstractRenderer
Parameters:
row - the row (or series) index (zero-based).
column - the column (or category) index (zero-based).
Returns:
The paint (never null).

getItemOutlineStroke

public java.awt.Stroke getItemOutlineStroke(int row,
                                            int column)
Returns the stroke used to outline data items. The default implementation passes control to the AbstractRenderer.lookupSeriesOutlineStroke(int) method. You can override this method if you require different behaviour.

Specified by:
getItemOutlineStroke in interface org.jfree.chart.renderer.xy.XYItemRenderer
Overrides:
getItemOutlineStroke in class org.jfree.chart.renderer.AbstractRenderer
Parameters:
row - the row (or series) index (zero-based).
column - the column (or category) index (zero-based).
Returns:
The stroke (never null).

isItemLabelVisible

public boolean isItemLabelVisible(int row,
                                  int column)
Returns true if an item label is visible, and false otherwise.

Specified by:
isItemLabelVisible in interface org.jfree.chart.renderer.xy.XYItemRenderer
Overrides:
isItemLabelVisible in class org.jfree.chart.renderer.AbstractRenderer
Parameters:
row - the row index (zero-based).
column - the column index (zero-based).
Returns:
A boolean.

getItemLabelPaint

public java.awt.Paint getItemLabelPaint(int row,
                                        int column)
Returns the paint used to draw an item label.

Specified by:
getItemLabelPaint in interface org.jfree.chart.renderer.xy.XYItemRenderer
Overrides:
getItemLabelPaint in class org.jfree.chart.renderer.AbstractRenderer
Parameters:
row - the row index (zero based).
column - the column index (zero based).
Returns:
The paint (never null).

getItemShape

public java.awt.Shape getItemShape(int row,
                                   int column)
Returns a shape used to represent a data item.

The default implementation passes control to the getSeriesShape method. You can override this method if you require different behaviour.

Specified by:
getItemShape in interface org.jfree.chart.renderer.xy.XYItemRenderer
Overrides:
getItemShape in class org.jfree.chart.renderer.AbstractRenderer
Parameters:
row - the row (or series) index (zero-based).
column - the column (or category) index (zero-based).
Returns:
The shape (never null).

setPlot

public void setPlot(org.jfree.chart.plot.XYPlot plot)
Sets the plot that the renderer is assigned to.

Specified by:
setPlot in interface org.jfree.chart.renderer.xy.XYItemRenderer
Overrides:
setPlot in class org.jfree.chart.renderer.xy.AbstractXYItemRenderer
Parameters:
plot - the plot (null permitted).

plotChanged

public void plotChanged(org.jfree.chart.event.PlotChangeEvent event)
Receives notification of a plot change event.

Specified by:
plotChanged in interface org.jfree.chart.event.PlotChangeListener
Parameters:
event - the event.

axisChanged

public void axisChanged(org.jfree.chart.event.AxisChangeEvent event)
Receives notification of an axis change event.

Specified by:
axisChanged in interface org.jfree.chart.event.AxisChangeListener
Parameters:
event - the event.

datasetChanged

public void datasetChanged(org.jfree.data.general.DatasetChangeEvent event)
Receives notification of an dataset change event.

Specified by:
datasetChanged in interface org.jfree.data.general.DatasetChangeListener
Parameters:
event - information about the event.