jcckit.plot
Class Plot

java.lang.Object
  extended byjcckit.plot.Plot
All Implemented Interfaces:
DataListener

public class Plot
extends java.lang.Object
implements DataListener

A plot is determined by a CoordinateSystem, Curves, an optional annotation layer and an optional Legend. When rendered these components are draw in this order.

Registrated PlotListeners will be informed when the plot changes.

A DataPlot can be connected with a Plot instance. This is done with the method connect() which registrates this Plot instance as a DataListener at the connected DataPlot. After an received DataEvents has been handled the registrated PlotListeners will receive a PlotEvent of the type PlotEventType.DATA_PLOT_CHANGED.

Author:
Franz-Josef Elmer

Field Summary
static java.lang.String COORDINATE_SYSTEM_KEY
          Configuration parameter key.
static java.lang.String CURVE_FACTORY_KEY
          Configuration parameter key.
static java.lang.String INITIAL_HINT_FOR_NEXT_CURVE_KEY
          Configuration parameter key.
static java.lang.String LEGEND_KEY
          Configuration parameter key.
static java.lang.String LEGEND_VISIBLE_KEY
          Configuration parameter key.
 
Constructor Summary
Plot(ConfigParameters config)
          Creates an instance from the specified configuration parameters.
 
Method Summary
 void addPlotListener(PlotListener listener)
          Adds the specified PlotListener.
 void connect(DataPlot dataPlot)
          Connect the specified DataPlot with this instance.
 void dataChanged(DataEvent event)
          Handles the received DataEvent and notifies PlotListeners by an event of the type PlotEventType.DATA_CURVE_CHANGED or PlotEventType.DATA_PLOT_CHANGED.
 GraphicalElement getAnnotation()
          Returns the annotation layer.
 GraphicalComposite getCompletePlot()
          Creates a graphical representation of the complete plot.
 GraphicalElement getCoordinateSystem()
          Returns the view of the coordinate system.
 GraphicalElement[] getCurves()
          Returns the graphical representations of all curves.
 GraphicalElement getLegend()
          Returns the graphical representations of the legend.
 boolean isLegendVisible()
          Returns true if the legend is visible.
protected  void notifyListeners(PlotEvent event)
          Sends all registrated PlotListeners the specified event.
 void removePlotListener(PlotListener listener)
          Removes the specfied PlotListener.
 void setAnnotation(GraphicalElement annotation)
          Sets the annotation layer.
 void setCoordinateSystem(CoordinateSystem coordinateSystem)
          Sets the coordinate system.
 DataPoint transform(GraphPoint point)
          Transforms a point from device-independent coordinates into data coordinates.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COORDINATE_SYSTEM_KEY

public static final java.lang.String COORDINATE_SYSTEM_KEY
Configuration parameter key.

See Also:
Constant Field Values

CURVE_FACTORY_KEY

public static final java.lang.String CURVE_FACTORY_KEY
Configuration parameter key.

See Also:
Constant Field Values

LEGEND_VISIBLE_KEY

public static final java.lang.String LEGEND_VISIBLE_KEY
Configuration parameter key.

See Also:
Constant Field Values

LEGEND_KEY

public static final java.lang.String LEGEND_KEY
Configuration parameter key.

See Also:
Constant Field Values

INITIAL_HINT_FOR_NEXT_CURVE_KEY

public static final java.lang.String INITIAL_HINT_FOR_NEXT_CURVE_KEY
Configuration parameter key.

See Also:
Constant Field Values
Constructor Detail

Plot

public Plot(ConfigParameters config)
Creates an instance from the specified configuration parameters.
Key & Default ValueTypeMandatory Description
coordinateSystem = CartesianCoordinateSystem ConfigParametersno Definition of the CoordinateSystem.
curveFactory = SimpleCurveFactory ConfigParametersno Definition of the CurveFactory.
initialHintForNextCurve = null ConfigParametersno Definition of the initial Hint which is needed by some SymbolFactories like BarFactory.
legend = default values of Legend ConfigParametersno Configuration parameters of a Legend.
legendVisible = true booleanno If true the Legend will be created.

Method Detail

setCoordinateSystem

public void setCoordinateSystem(CoordinateSystem coordinateSystem)
Sets the coordinate system. All curves will be regenerated and a PlotEvent of type PlotEventType.COODINATE_SYSTEM_CHANGED will be fired.

Parameters:
coordinateSystem - New coordinate system.

addPlotListener

public void addPlotListener(PlotListener listener)
Adds the specified PlotListener. Does nothing if already added.


removePlotListener

public void removePlotListener(PlotListener listener)
Removes the specfied PlotListener. Does nothing if already removed.


notifyListeners

protected void notifyListeners(PlotEvent event)
Sends all registrated PlotListeners the specified event.


connect

public void connect(DataPlot dataPlot)
Connect the specified DataPlot with this instance.

If this Plot instance is already connected with a DataPlot the connection will be released and a PlotEvent of the type PlotEventType.DATA_PLOT_DISCONNECTED will be sent to all registrated PlotListeners.

It registers itself at dataPlot and all its DataCurves.

Finally all curves will be generated and a PlotEvent of the type PlotEventType.DATA_PLOT_CONNECTED will be transmitted.

Parameters:
dataPlot - Data to be connected with this plot instance. Can be null in order to disconnect this instance from any DataPlot.

transform

public DataPoint transform(GraphPoint point)
Transforms a point from device-independent coordinates into data coordinates.

Parameters:
point - Point in device-independent coordinates.
Returns:
transform point.

getCompletePlot

public GraphicalComposite getCompletePlot()
Creates a graphical representation of the complete plot.

Returns:
GraphicalComposite containing the views of the coordinate system, the curves, and optionally the legend (in this order).

getCoordinateSystem

public GraphicalElement getCoordinateSystem()
Returns the view of the coordinate system.


getCurves

public GraphicalElement[] getCurves()
Returns the graphical representations of all curves.


getAnnotation

public GraphicalElement getAnnotation()
Returns the annotation layer.

Returns:
null if no annotation layer.

setAnnotation

public void setAnnotation(GraphicalElement annotation)
Sets the annotation layer.

Parameters:
annotation - Any kind of graphics which will be drawn on the top of the curves but may be covered by the legend. Can be null.

isLegendVisible

public boolean isLegendVisible()
Returns true if the legend is visible.


getLegend

public GraphicalElement getLegend()
Returns the graphical representations of the legend.


dataChanged

public void dataChanged(DataEvent event)
Handles the received DataEvent and notifies PlotListeners by an event of the type PlotEventType.DATA_CURVE_CHANGED or PlotEventType.DATA_PLOT_CHANGED. The following table shows what this method does:
Source of event All hints for the next curve are null? ActionType of sent PlotEvent
DataCurveYesRecreate changed curve. DATA_CURVE_CHANGED
DataCurveNoRecreate changed curve and all curves with large curve index. DATA_PLOT_CHANGED
DataPlot-Recreate all curves and Legend view. DATA_PLOT_CHANGED

Specified by:
dataChanged in interface DataListener
Parameters:
event - Data event informing where and what happened.