info.monitorenter.gui.chart.traces
Class ATrace2D

java.lang.Object
  extended by info.monitorenter.gui.chart.traces.ATrace2D
All Implemented Interfaces:
ITrace2D, java.beans.PropertyChangeListener, java.io.Serializable, java.lang.Comparable<ITrace2D>, java.util.EventListener
Direct Known Subclasses:
Trace2DArithmeticMean, Trace2DArithmeticMeanX, Trace2DArithmeticMeanY, Trace2DLtd, Trace2DSimple, Trace2DSorted

public abstract class ATrace2D
extends java.lang.Object
implements ITrace2D, java.lang.Comparable<ITrace2D>

The abstract basic implementation of ITrace2D that provides the major amount of aspects needed in order to work correctly together with Chart2D.

Caching of minimum and maximum bounds, property change support, the complex z-Index handling (incorporates calls to internals of Chart2D, default naming, bound management and event handling are covered here.

Version:
$Revision: 1.75 $
Author:
Achim Westermann
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface info.monitorenter.gui.chart.ITrace2D
ITrace2D.DistancePoint
 
Field Summary
protected  java.util.List<ITrace2D> m_computingTraces
          The list of traces that compute their values from this trace.
protected  double m_maxX
          Cached maximum x value for performance improvement.
protected  double m_maxXErrorBar
          Cached maximum x value with error bar extension for performance improvement.
protected  double m_maxY
          Cached maximum y value for performance improvement.
protected  double m_maxYErrorBar
          Cached maximum y value with error bar extension for performance improvement.
protected  double m_minX
          Cached minimum x value for performance improvement.
protected  double m_minXErrorBar
          Cached minimum x value with error bar extension for performance improvement.
protected  double m_minY
          Cached minimum y value for performance improvement.
protected  double m_minYErrorBar
          Cached minimum y value with error bar extension for performance improvement.
protected  java.lang.String m_name
          The name property.
protected  java.lang.String m_physicalUnitsX
          The physical unit property for x dimension.
protected  java.lang.String m_physicalUnitsY
          The physical unit property for x dimension.
protected  java.beans.PropertyChangeSupport m_propertyChangeSupport
          The instance that add support for firing PropertyChangeEvents and maintaining PropertyChangeListeners.
protected  java.lang.Object m_renderer
          The Chart2D this trace is added to.
 
Fields inherited from interface info.monitorenter.gui.chart.ITrace2D
PROPERTY_COLOR, PROPERTY_ERRORBARPOLICY, PROPERTY_ERRORBARPOLICY_CONFIGURATION, PROPERTY_LABEL, PROPERTY_MAX_X, PROPERTY_MAX_Y, PROPERTY_MIN_X, PROPERTY_MIN_Y, PROPERTY_NAME, PROPERTY_PAINTERS, PROPERTY_PHYSICALUNITS, PROPERTY_POINT_CHANGED, PROPERTY_POINT_HIGHLIGHTERS_CHANGED, PROPERTY_STROKE, PROPERTY_TRACEPOINT, PROPERTY_VISIBLE, PROPERTY_ZINDEX, Z_INDEX_MIN, ZINDEX_MAX
 
Constructor Summary
ATrace2D()
          Defcon.
 
Method Summary
 void addComputingTrace(ITrace2D trace)
          Adds a trace that "should" compute values from the points added via ITrace2D.addPoint(ITracePoint2D) .
 boolean addErrorBarPolicy(IErrorBarPolicy<?> errorBarPolicy)
          Adds the given error bar policy to the internal set of error bar policies.
 boolean addPoint(double x, double y)
          Adds a trace point to the internal data.
 boolean addPoint(ITracePoint2D p)
          Add the given point to this ITrace2D.
 boolean addPointHighlighter(IPointPainter<?> highlighter)
          Adds the given point painter to the internal set of point highlighters.
protected abstract  boolean addPointInternal(ITracePoint2D p)
           Override this template method for the custom add operation that depends on the policies of the implementation.
 void addPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)
          Registers a property change listener that will be informed about changes of the property identified by the given propertyName.
 boolean addTracePainter(ITracePainter<?> painter)
          Adds the given trace painter to the internal set of trace painters.
 int compareTo(ITrace2D o)
           
 boolean containsTracePainter(ITracePainter<?> painter)
          Returns true if the given painter is contained in this compound painter.
protected  void ensureInitialized()
          Ensures that no deadlock due to a missing internal chart reference may occur.
protected  void finalize()
          Decreases internal instance count by one.
protected  void firePointAdded(ITracePoint2D added)
          Fire property change events related to an added point.
 void firePointChanged(ITracePoint2D changed, int state)
          Method triggered by ITracePoint2D.setLocation(double, double) , addPoint(ITracePoint2D) or removePoint(ITracePoint2D).
protected  void firePointRemoved(ITracePoint2D removed)
          Fire property change events related to a removed point.
protected  void firePropertyChange(java.lang.String property, java.lang.Object oldvalue, java.lang.Object newvalue)
          Fires a property change event to the registered listeners.
 java.util.List<javax.swing.event.ChangeListener> getChangeListeners()
          Returns a shallow copied list of the change listeners of this instance.
 java.awt.Color getColor()
          Get the Color this trace will be painted with.
 java.util.Set<IErrorBarPolicy<?>> getErrorBarPolicies()
          Returns the Set<IErrorBarPolicy> that will be used to render error bars for this trace.
 boolean getHasErrorBars()
          Returns true if this trace has error bars configured.
static int getInstanceCount()
          Returns the instanceCount for all ATrace2D subclasses.
 java.lang.String getLabel()
          Returns a label for this trace.
 double getMaxX()
          Returns the original maximum x- value ignoring the offsetX.
 double getMaxY()
          Returns the original maximum y- value ignoring the offsetY.
 double getMinX()
          Returns the original minimum x- value ignoring the offsetX.
 double getMinY()
          Returns the original minimum y- value ignoring the offsetY.
 java.lang.String getName()
          Returns the name of this trace.
 ITrace2D.DistancePoint getNearestPointEuclid(double x, double y)
          Naive implementation that iterates over every point.
 ITrace2D.DistancePoint getNearestPointManhattan(double x, double y)
          Naive implementation that iterates over every point.
 java.lang.String getPhysicalUnits()
          Returns the concatenation [x: "ITrace2D.getPhysicalUnitsX()", y: " ITrace2D.getPhysicalUnitsY()"].
 java.lang.String getPhysicalUnitsX()
          Returns the physical unit string value for the x dimension.
 java.lang.String getPhysicalUnitsY()
          Returns the physical unit string value for the y dimension.
 java.util.Set<IPointPainter<?>> getPointHighlighters()
          Returns the Set<IPointPainter> that may be used to highlight points of this trace.
 java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String property)
          Returns all property change listeners for the given property.
 Chart2D getRenderer()
          Returns the chart that renders this instance or null, if this trace is not added to a chart.
 java.awt.Stroke getStroke()
          Get the Stroke object this instance will be painted with.
 java.util.Set<ITracePainter<?>> getTracePainters()
          Returns the Set<ITracePainter> that will be used to paint this trace.
 java.lang.Integer getZIndex()
          The z-index defines the order in which this instance will be painted.
 boolean isVisible()
          Returns true if this instance should be rendered.
protected  void maxXSearch()
          Internal search for the maximum x value that is only invoked if no cached value is at hand or bounds have changed by adding new points.
protected  void maxYSearch()
          Internal search for the maximum y value that is only invoked if no cached value is at hand or bounds have changed by adding new points.
protected  void minXSearch()
          Internal search for the minimum x value that is only invoked if no cached value is at hand or bounds have changed by adding new points.
protected  void minYSearch()
          Internal search for the minimum y value that is only invoked if no cached value is at hand or bounds have changed by adding new points.
 void propertyChange(java.beans.PropertyChangeEvent evt)
           
 java.util.Set<IPointPainter<?>> removeAllPointHighlighters()
          Clears all internal point highlighters used.
 void removeAllPoints()
          Changes the internal state to empty to allow that the caching of bounds is cleared and delegates the call to removeAllPointsInternal().
protected abstract  void removeAllPointsInternal()
          Override this template method for the custom remove operation that depends on the Collection used in the implementation.
 boolean removeComputingTrace(ITrace2D trace)
          Remove a trace that "should" compute values from the points added via ITrace2D.addPoint(ITracePoint2D).
 boolean removeErrorBarPolicy(IErrorBarPolicy<?> errorBarPolicy)
          Removes the given error bar policy from the internal set of error bar policies.
 boolean removePoint(ITracePoint2D point)
          Remove the given point from this ITrace2D.
 boolean removePointHighlighter(IPointPainter<?> higlighter)
          Removes the given point highlighter, if it's class is contained.
protected abstract  ITracePoint2D removePointInternal(ITracePoint2D point)
          Override this template method for the custom remove operation that depends on the internal storage the implementation.
 void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
          Unregisters a property change listener that has been registered for listening on all properties.
 void removePropertyChangeListener(java.lang.String property, java.beans.PropertyChangeListener listener)
          Removes a property change listener for listening on the given property.
 boolean removeTracePainter(ITracePainter<?> painter)
          Removes the given trace painter, if it's class is contained and if more painters are remaining.
 void setColor(java.awt.Color color)
           Set the Color this trace will be painted with.
 java.util.Set<IErrorBarPolicy<?>> setErrorBarPolicy(IErrorBarPolicy<?> errorBarPolicy)
          Replaces all internal error bar policies by the new one.
 void setName(java.lang.String name)
          Sets the descriptive name for this trace.
 void setPhysicalUnits(java.lang.String xunit, java.lang.String yunit)
          Assigns a specific String representing the physical unit to the ITrace2D (e.g.
 java.util.Set<IPointPainter<?>> setPointHighlighter(IPointPainter<?> highlighter)
          Replaces all internal point highlighters by the new one.
 void setRenderer(Chart2D renderer)
          Allows the chart this instance is painted by to register itself.
 void setStroke(java.awt.Stroke stroke)
          Allows to specify the rendering of the ITrace2D.
 java.util.Set<ITracePainter<?>> setTracePainter(ITracePainter<?> painter)
          Replaces all internal trace painters by the new one.
 void setVisible(boolean visible)
           Set the visible property of this instance.
 void setZIndex(java.lang.Integer zIndex)
          Sets the internal z-index property.
 boolean showsErrorBars()
          Tests whether error bars are painted by this trace.
 boolean showsNegativeXErrorBars()
          Tests whether error bars in negative x direction are painted by this trace.
 boolean showsNegativeYErrorBars()
          Tests whether error bars in negative y direction are painted by this trace.
 boolean showsPositiveXErrorBars()
          Tests whether error bars in positive x direction are painted by this trace.
 boolean showsPositiveYErrorBars()
          Tests whether error bars in positive y direction are painted by this trace.
 java.lang.String toString()
          Returns getName().
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface info.monitorenter.gui.chart.ITrace2D
getMaxSize, getSize, isEmpty, iterator
 

Field Detail

m_computingTraces

protected java.util.List<ITrace2D> m_computingTraces
The list of traces that compute their values from this trace.


m_maxX

protected double m_maxX
Cached maximum x value for performance improvement.


m_maxXErrorBar

protected double m_maxXErrorBar
Cached maximum x value with error bar extension for performance improvement.


m_maxY

protected double m_maxY
Cached maximum y value for performance improvement.


m_maxYErrorBar

protected double m_maxYErrorBar
Cached maximum y value with error bar extension for performance improvement.


m_minX

protected double m_minX
Cached minimum x value for performance improvement.


m_minXErrorBar

protected double m_minXErrorBar
Cached minimum x value with error bar extension for performance improvement.


m_minY

protected double m_minY
Cached minimum y value for performance improvement.


m_minYErrorBar

protected double m_minYErrorBar
Cached minimum y value with error bar extension for performance improvement.


m_name

protected java.lang.String m_name
The name property.


m_physicalUnitsX

protected java.lang.String m_physicalUnitsX
The physical unit property for x dimension.


m_physicalUnitsY

protected java.lang.String m_physicalUnitsY
The physical unit property for x dimension.


m_propertyChangeSupport

protected java.beans.PropertyChangeSupport m_propertyChangeSupport
The instance that add support for firing PropertyChangeEvents and maintaining PropertyChangeListeners.


m_renderer

protected java.lang.Object m_renderer
The Chart2D this trace is added to. Needed for synchronization.

Constructor Detail

ATrace2D

public ATrace2D()
Defcon.

Method Detail

getInstanceCount

public static int getInstanceCount()
Returns the instanceCount for all ATrace2D subclasses.

Returns:
Returns the instanceCount for all ATrace2D subclasses.

addComputingTrace

public void addComputingTrace(ITrace2D trace)
Description copied from interface: ITrace2D
Adds a trace that "should" compute values from the points added via ITrace2D.addPoint(ITracePoint2D) .

The given trace will be informed in case an add operation on this trace succeeds via ITrace2D.addPoint(ITracePoint2D).

Specified by:
addComputingTrace in interface ITrace2D
Parameters:
trace - the trace that will calculate it's points from the added points of this trace.
See Also:
ITrace2D.addComputingTrace(info.monitorenter.gui.chart.ITrace2D)

ensureInitialized

protected final void ensureInitialized()
Ensures that no deadlock due to a missing internal chart reference may occur.

Throws:
java.lang.IllegalStateException - if this trace is not assigned to a chart.

addErrorBarPolicy

public final boolean addErrorBarPolicy(IErrorBarPolicy<?> errorBarPolicy)
Description copied from interface: ITrace2D
Adds the given error bar policy to the internal set of error bar policies.

It will be the last error bar policy to render (most forward on screen).

Specified by:
addErrorBarPolicy in interface ITrace2D
Parameters:
errorBarPolicy - the error bar policy to add for rendering this trace's error bars.
Returns:
true if the painter was added (same instance was not contained before).
See Also:
ITrace2D.addErrorBarPolicy(info.monitorenter.gui.chart.IErrorBarPolicy)

addPoint

public final boolean addPoint(double x,
                              double y)
Description copied from interface: ITrace2D
Adds a trace point to the internal data.

Warning:
Do not call this method before this trace has been added to a chart or you will not succeed as the chart is needed to get the proper Chart2D.getTracePointProvider().

Specified by:
addPoint in interface ITrace2D
Parameters:
x - the x-value of the point to add.
y - the y-value of the point to add.
Returns:
true if the operation was successful, false else.
See Also:
ITrace2D.addPoint(double, double)

addPoint

public final boolean addPoint(ITracePoint2D p)
Add the given point to this ITrace2D.

This implementation performs caching of minimum and maximum values for x and y and the delegates to addPointInternal(ITracePoint2D) that has to perform the "real" add operation.

Property change events are fired as described in method firePointAdded(ITracePoint2D).

Specified by:
addPoint in interface ITrace2D
Parameters:
p - the TracePoint2D to add.
Returns:
true if the operation was successful, false else.
See Also:
firePointChanged(ITracePoint2D, int)

addPointHighlighter

public boolean addPointHighlighter(IPointPainter<?> highlighter)
Description copied from interface: ITrace2D
Adds the given point painter to the internal set of point highlighters.

It will be the last point painter to paint highlighting if highlighting is active.

Specified by:
addPointHighlighter in interface ITrace2D
Parameters:
highlighter - the highlighter to add for highlighting this trace.
Returns:
true if the highlighter was added (class of instance not contained before).
See Also:
ITrace2D.addPointHighlighter(info.monitorenter.gui.chart.IPointPainter)

addPointInternal

protected abstract boolean addPointInternal(ITracePoint2D p)

Override this template method for the custom add operation that depends on the policies of the implementation.

No property change events have to be fired by default. If this method returns true the outer logic of the calling method addPoint(ITracePoint2D) will perform bound checks for the new point and fire property changes as described in method firePointChanged(ITracePoint2D, int).

In special cases - when additional modifications to the internal set of points take place (e.g. a further point gets removed) this method should return false (regardless whether the new point was accepted or not) and perform bound checks and fire the property changes as mentioned above "manually".

Parameters:
p - the point to add.
Returns:
true if the given point was accepted or false if not.

addPropertyChangeListener

public final void addPropertyChangeListener(java.lang.String propertyName,
                                            java.beans.PropertyChangeListener listener)
Description copied from interface: ITrace2D
Registers a property change listener that will be informed about changes of the property identified by the given propertyName.

Specified by:
addPropertyChangeListener in interface ITrace2D
Parameters:
propertyName - the name of the property the listener is interested in
listener - a listener that will only be informed if the property identified by the argument propertyName changes
See Also:
ITrace2D.addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)

addTracePainter

public boolean addTracePainter(ITracePainter<?> painter)
Description copied from interface: ITrace2D
Adds the given trace painter to the internal set of trace painters.

It will be the last painter to paint (most forward).

Specified by:
addTracePainter in interface ITrace2D
Parameters:
painter - the painter to add for rendering this trace.
Returns:
true if the painter was added (class of instance not contained before).
See Also:
ITrace2D.addTracePainter(info.monitorenter.gui.chart.ITracePainter)

compareTo

public final int compareTo(ITrace2D o)
Specified by:
compareTo in interface java.lang.Comparable<ITrace2D>
Parameters:
o - the trace to compare to.
Returns:
see interface.
See Also:
Comparable.compareTo(java.lang.Object)

containsTracePainter

public boolean containsTracePainter(ITracePainter<?> painter)
Description copied from interface: ITrace2D
Returns true if the given painter is contained in this compound painter.

Specified by:
containsTracePainter in interface ITrace2D
Parameters:
painter - the painter to check whether it is contained.
Returns:
true if the given painter is contained in this compound painter.
See Also:
ITrace2D.containsTracePainter(info.monitorenter.gui.chart.ITracePainter)

finalize

protected void finalize()
                 throws java.lang.Throwable
Decreases internal instance count by one.

Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable - if something goes wrong.

firePointAdded

protected void firePointAdded(ITracePoint2D added)
Fire property change events related to an added point.

A property change event for property ITrace2D.PROPERTY_TRACEPOINT with null as the old value and the new point as the new value is fired. This allows e.g. rescaling of those instances (instead of having to rescale a whole trace).

Additionally before this property change, property change events for bounds are fired as described in method firePointChanged(ITracePoint2D, int).

Parameters:
added - the point that was added.

firePointChanged

public void firePointChanged(ITracePoint2D changed,
                             int state)
Method triggered by ITracePoint2D.setLocation(double, double) , addPoint(ITracePoint2D) or removePoint(ITracePoint2D).

Bound checks are performed and property change events for the properties ITrace2D.PROPERTY_MAX_X, ITrace2D.PROPERTY_MIN_X, ITrace2D.PROPERTY_MAX_Y and ITrace2D.PROPERTY_MIN_Y are fired if the add bounds have changed due to the modification of the point.

If state is ITracePoint2D.STATE_CHANGED a property change event with ITrace2D.PROPERTY_POINT_CHANGED will be fired to all listeners.

Specified by:
firePointChanged in interface ITrace2D
Parameters:
changed - the point that has been changed which may be a newly added point (from addPoint(ITracePoint2D), a removed one or a modified one.
state - one of {ITracePoint2D.STATE_ADDED, ITracePoint2D.STATE_CHANGED, ITracePoint2D.STATE_REMOVED to inform about the type of change.

firePointRemoved

protected void firePointRemoved(ITracePoint2D removed)
Fire property change events related to a removed point.

A property change event for property ITrace2D.PROPERTY_TRACEPOINT with a point as the old value and null as the new value is fired. This allows e.g. rescaling of those instances (instead of having to rescale a whole trace).

Additionally before this property change, property change events for bounds are fired as described in method firePointChanged(ITracePoint2D, int).

Parameters:
removed - the point that was removed.

firePropertyChange

protected final void firePropertyChange(java.lang.String property,
                                        java.lang.Object oldvalue,
                                        java.lang.Object newvalue)
Fires a property change event to the registered listeners.

Parameters:
property - one of the PROPERTY_XXX constants defined in ITrace2D.
oldvalue - the old value of the property.
newvalue - the new value of the property.

getChangeListeners

public java.util.List<javax.swing.event.ChangeListener> getChangeListeners()
Returns a shallow copied list of the change listeners of this instance.

Returns:
a shallow copied list of the change listeners of this instance.

getColor

public final java.awt.Color getColor()
Get the Color this trace will be painted with.

Specified by:
getColor in interface ITrace2D
Returns:
the Color of this instance

getErrorBarPolicies

public final java.util.Set<IErrorBarPolicy<?>> getErrorBarPolicies()
Description copied from interface: ITrace2D
Returns the Set<IErrorBarPolicy> that will be used to render error bars for this trace.

Specified by:
getErrorBarPolicies in interface ITrace2D
Returns:
the Set<IErrorBarPolicy> that will be used to render error bars for this trace.
See Also:
ITrace2D.getErrorBarPolicies()

getHasErrorBars

public final boolean getHasErrorBars()
Description copied from interface: ITrace2D
Returns true if this trace has error bars configured.

If this returns false, no error bars will be painted for this trace.

Specified by:
getHasErrorBars in interface ITrace2D
Returns:
true if this trace has error bars configured.
See Also:
ITrace2D.getHasErrorBars()

getLabel

public final java.lang.String getLabel()
Returns a label for this trace.

The label is constructed of

Specified by:
getLabel in interface ITrace2D
Returns:
a label for this trace.
See Also:
ITrace2D.getLabel(), getName(), getPhysicalUnits()

getMaxX

public final double getMaxX()
Returns the original maximum x- value ignoring the offsetX.

Specified by:
getMaxX in interface ITrace2D
Returns:
the original maximum x- value ignoring the offsetX.

getMaxY

public final double getMaxY()
Returns the original maximum y- value ignoring the offsetY.

Specified by:
getMaxY in interface ITrace2D
Returns:
the original maximum y- value ignoring the offsetY.

getMinX

public final double getMinX()
Returns the original minimum x- value ignoring the offsetX.

Specified by:
getMinX in interface ITrace2D
Returns:
the original minimum x- value ignoring the offsetX.

getMinY

public final double getMinY()
Returns the original minimum y- value ignoring the offsetY.

Specified by:
getMinY in interface ITrace2D
Returns:
the original minimum y- value ignoring the offsetY.

getName

public final java.lang.String getName()
Returns the name of this trace.

Specified by:
getName in interface ITrace2D
Returns:
the name of this trace.
See Also:
ITrace2D.getName(), setName(String s)

getNearestPointEuclid

public ITrace2D.DistancePoint getNearestPointEuclid(double x,
                                                    double y)
Naive implementation that iterates over every point.

Subclasses that have more insight about their internal data storage could override this with a faster implementation (e.g. if the points are kept in a sorted order a skip - strategy) could find the minimum faster.

Specified by:
getNearestPointEuclid in interface ITrace2D
Parameters:
x - the x value as a normalized value between 0 and 1.0.
y - the x value as a normalized value between 0 and 1.0.
Returns:
the nearest point to the given normalized value coordinates of this trace in Euclid distance.
See Also:
ITrace2D.getNearestPointEuclid(double, double)

getNearestPointManhattan

public ITrace2D.DistancePoint getNearestPointManhattan(double x,
                                                       double y)
Naive implementation that iterates over every point.

Subclasses that have more insight about their internal data storage could override this with a faster implementation (e.g. if the points are kept in a sorted order a skip - strategy could find the minimum faster.

Specified by:
getNearestPointManhattan in interface ITrace2D
Parameters:
x - the x value as a normalized value between 0 and 1.0.
y - the x value as a normalized value between 0 and 1.0.
Returns:
the nearest point to the given normalized value coordinates of this trace in Manhattan distance.
See Also:
ITrace2D.getNearestPointManhattan(double, double)

getPhysicalUnits

public final java.lang.String getPhysicalUnits()
Description copied from interface: ITrace2D
Returns the concatenation [x: "ITrace2D.getPhysicalUnitsX()", y: " ITrace2D.getPhysicalUnitsY()"].

Specified by:
getPhysicalUnits in interface ITrace2D
Returns:
the concatenation [x: "ITrace2D.getPhysicalUnitsX()", y: " ITrace2D.getPhysicalUnitsY()"].
See Also:
ITrace2D.getPhysicalUnits()

getPhysicalUnitsX

public final java.lang.String getPhysicalUnitsX()
Description copied from interface: ITrace2D
Returns the physical unit string value for the x dimension.

Specified by:
getPhysicalUnitsX in interface ITrace2D
Returns:
the physical unit string value for the x dimension.
See Also:
ITrace2D.getPhysicalUnitsX()

getPhysicalUnitsY

public final java.lang.String getPhysicalUnitsY()
Description copied from interface: ITrace2D
Returns the physical unit string value for the y dimension.

Specified by:
getPhysicalUnitsY in interface ITrace2D
Returns:
the physical unit string value for the y dimension.
See Also:
ITrace2D.getPhysicalUnitsY()

getPointHighlighters

public final java.util.Set<IPointPainter<?>> getPointHighlighters()
Description copied from interface: ITrace2D
Returns the Set<IPointPainter> that may be used to highlight points of this trace.

This is used by the point highlighting feature: Chart2D.enablePointHighlighting(boolean)

Specified by:
getPointHighlighters in interface ITrace2D
Returns:
the Set<IPointPainter> that may be used to highlight points.
See Also:
ITrace2D.getPointHighlighters()

getPropertyChangeListeners

public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String property)
Description copied from interface: ITrace2D
Returns all property change listeners for the given property.

Specified by:
getPropertyChangeListeners in interface ITrace2D
Parameters:
property - one of the constants with the PROPERTY_ prefix defined in this class or subclasses.
Returns:
the property change listeners for the given property.
See Also:
ITrace2D.getPropertyChangeListeners(String)

getRenderer

public final Chart2D getRenderer()
Returns the chart that renders this instance or null, if this trace is not added to a chart.

The chart that renders this trace registers itself with this trace in Chart2D.addTrace(ITrace2D).

Specified by:
getRenderer in interface ITrace2D
Returns:
Returns the renderer.
See Also:
Chart2D.addTrace(ITrace2D)

getStroke

public final java.awt.Stroke getStroke()
Get the Stroke object this instance will be painted with.

Specified by:
getStroke in interface ITrace2D
Returns:
the Stroke object this ITrace2D will be painted with.
See Also:
ITrace2D.getStroke()

getTracePainters

public final java.util.Set<ITracePainter<?>> getTracePainters()
Description copied from interface: ITrace2D
Returns the Set<ITracePainter> that will be used to paint this trace.

The original set should be returned by contract to allow adding painters "silently" (vs. using ITrace2D.addTracePainter(ITracePainter)).

Specified by:
getTracePainters in interface ITrace2D
Returns:
the Set<ITracePainter> that will be used to paint this trace.
See Also:
ITrace2D.getTracePainters()

getZIndex

public final java.lang.Integer getZIndex()
Description copied from interface: ITrace2D
The z-index defines the order in which this instance will be painted.

A higher value will bring it more "to the front".

Specified by:
getZIndex in interface ITrace2D
Returns:
the z-index that will define the order in which this instance will be painted.
See Also:
ITrace2D.getZIndex()

isVisible

public final boolean isVisible()
Description copied from interface: ITrace2D
Returns true if this instance should be rendered.

Specified by:
isVisible in interface ITrace2D
Returns:
true if this instance should be rendered.
See Also:
ITrace2D.isVisible()

maxXSearch

protected void maxXSearch()
Internal search for the maximum x value that is only invoked if no cached value is at hand or bounds have changed by adding new points.

The result is assigned to the property maxX.

See Also:
getMaxX()

maxYSearch

protected void maxYSearch()
Internal search for the maximum y value that is only invoked if no cached value is at hand or bounds have changed by adding new points.

The result is assigned to the property maxY.

See Also:
getMaxY()

minXSearch

protected void minXSearch()
Internal search for the minimum x value that is only invoked if no cached value is at hand or bounds have changed by adding new points.

The result is assigned to the property minX.

See Also:
getMinX()

minYSearch

protected void minYSearch()
Internal search for the minimum y value that is only invoked if no cached value is at hand or bounds have changed by adding new points.

The result is assigned to the property minY.

See Also:
getMinY()

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent evt)
Specified by:
propertyChange in interface java.beans.PropertyChangeListener
See Also:
PropertyChangeListener.propertyChange(java.beans.PropertyChangeEvent)

removeAllPointHighlighters

public java.util.Set<IPointPainter<?>> removeAllPointHighlighters()
Description copied from interface: ITrace2D
Clears all internal point highlighters used.

Returns the Set<IPointPainter> that was used to highlight points.

This is used by the point highlighting feature: Chart2D.enablePointHighlighting(boolean)

Specified by:
removeAllPointHighlighters in interface ITrace2D
Returns:
the Set<IPointPainter> that was be used to highlight points.
See Also:
ITrace2D.removeAllPointHighlighters()

removeAllPoints

public final void removeAllPoints()
Changes the internal state to empty to allow that the caching of bounds is cleared and delegates the call to removeAllPointsInternal().

Specified by:
removeAllPoints in interface ITrace2D
See Also:
ITrace2D.removeAllPoints()

removeAllPointsInternal

protected abstract void removeAllPointsInternal()
Override this template method for the custom remove operation that depends on the Collection used in the implementation.

No change events have to be fired, this is done by ATrace2D.


removeComputingTrace

public boolean removeComputingTrace(ITrace2D trace)
Description copied from interface: ITrace2D
Remove a trace that "should" compute values from the points added via ITrace2D.addPoint(ITracePoint2D).

Specified by:
removeComputingTrace in interface ITrace2D
Parameters:
trace - the trace that will calculate it's points from the added points of this trace.
Returns:
true if the given trace was removed (recognized by the means of Object.equals(Object)).
See Also:
ITrace2D.removeComputingTrace(info.monitorenter.gui.chart.ITrace2D)

removeErrorBarPolicy

public boolean removeErrorBarPolicy(IErrorBarPolicy<?> errorBarPolicy)
Description copied from interface: ITrace2D
Removes the given error bar policy from the internal set of error bar policies.

Specified by:
removeErrorBarPolicy in interface ITrace2D
Parameters:
errorBarPolicy - the error bar policy to remove.
Returns:
true if the painter was removed (same instance contained before).
See Also:
ITrace2D.removeErrorBarPolicy(info.monitorenter.gui.chart.IErrorBarPolicy)

removePoint

public boolean removePoint(ITracePoint2D point)
Remove the given point from this ITrace2D.

This implementation performs caching of minimum and maximum values for x and y and the delegates to removePointInternal(ITracePoint2D) that has to perform the "real" add remove operation.

Property change events are fired as described in method firePointRemoved(ITracePoint2D).

Specified by:
removePoint in interface ITrace2D
Parameters:
point - the TracePoint2D to remove.
Returns:
true if the removal succeeded, false else: this could be that the given point was not contained.
See Also:
firePointChanged(ITracePoint2D, int)

removePointHighlighter

public boolean removePointHighlighter(IPointPainter<?> higlighter)
Description copied from interface: ITrace2D
Removes the given point highlighter, if it's class is contained.

Specified by:
removePointHighlighter in interface ITrace2D
Parameters:
higlighter - the highlighter to remove.
Returns:
true if a point highlighter of the class of the given argument was removed.
See Also:
ITrace2D.removePointHighlighter(info.monitorenter.gui.chart.IPointPainter)

removePointInternal

protected abstract ITracePoint2D removePointInternal(ITracePoint2D point)
Override this template method for the custom remove operation that depends on the internal storage the implementation.

The returned point may be the same as the given. But some "computing" traces like Trace2DArithmeticMean will internally delete a different point and return that one.

No property change events have to be fired by default. If this method returns null the outer logic of the calling method removePoint(ITracePoint2D) will perform bound checks for the returned point and fire property changes for the properties ITrace2D.PROPERTY_MAX_X, ITrace2D.PROPERTY_MIN_X, ITrace2D.PROPERTY_MAX_Y and ITrace2D.PROPERTY_MIN_Y.

In special cases - when additional modifications to the internal set of points take place (e.g. a further point get added) this method should return false (regardless whether the old point was really removed or not) and perform bound checks and fire the property changes as mentioned above "manually".

Parameters:
point - the point to remove.
Returns:
null if unsuccessful (and no events should be fired) or the point that actually was removed (in case different than the given one it should be somehow related to the given one).

removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
Description copied from interface: ITrace2D
Unregisters a property change listener that has been registered for listening on all properties.

Specified by:
removePropertyChangeListener in interface ITrace2D
Parameters:
listener - a listener that will only be informed if the property identified by the argument propertyName changes
See Also:
ITrace2D.removePropertyChangeListener(java.beans.PropertyChangeListener)

removePropertyChangeListener

public void removePropertyChangeListener(java.lang.String property,
                                         java.beans.PropertyChangeListener listener)
Description copied from interface: ITrace2D
Removes a property change listener for listening on the given property.

Specified by:
removePropertyChangeListener in interface ITrace2D
Parameters:
property - one of the constants with the PROPERTY_ prefix defined in this class or subclasses.
listener - the listener for this property change.
See Also:
ITrace2D.removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)

removeTracePainter

public boolean removeTracePainter(ITracePainter<?> painter)
Description copied from interface: ITrace2D
Removes the given trace painter, if it's class is contained and if more painters are remaining.

Specified by:
removeTracePainter in interface ITrace2D
Parameters:
painter - the trace painter to remove.
Returns:
true if a trace painter of the class of the given argument was removed.
See Also:
ITrace2D.removeTracePainter(info.monitorenter.gui.chart.ITracePainter)

setColor

public final void setColor(java.awt.Color color)

Set the Color this trace will be painted with.

Specified by:
setColor in interface ITrace2D
Parameters:
color - the Color this trace will be painted with.

setErrorBarPolicy

public final java.util.Set<IErrorBarPolicy<?>> setErrorBarPolicy(IErrorBarPolicy<?> errorBarPolicy)
Description copied from interface: ITrace2D
Replaces all internal error bar policies by the new one.

Specified by:
setErrorBarPolicy in interface ITrace2D
Parameters:
errorBarPolicy - the new sole painter to use.
Returns:
the Set<IErrorBarPolicy> that was used before.
See Also:
ITrace2D.setErrorBarPolicy(info.monitorenter.gui.chart.IErrorBarPolicy)

setName

public final void setName(java.lang.String name)
Sets the descriptive name for this trace.

If the given argument is null or consists of whitespaces only the lable for this trace might become invisible (depending on physical units set).

Specified by:
setName in interface ITrace2D
Parameters:
name - the descriptive name for this trace.
See Also:
ITrace2D.setName(java.lang.String)

setPhysicalUnits

public final void setPhysicalUnits(java.lang.String xunit,
                                   java.lang.String yunit)
Description copied from interface: ITrace2D
Assigns a specific String representing the physical unit to the ITrace2D (e.g. Volt, Ohm, lux, ...) which will be displayed by the Chart2D

Specified by:
setPhysicalUnits in interface ITrace2D
Parameters:
xunit - the physical unit for the x axis.
yunit - the physical unit for the y axis.
See Also:
ITrace2D.setPhysicalUnits(String, String)

setPointHighlighter

public final java.util.Set<IPointPainter<?>> setPointHighlighter(IPointPainter<?> highlighter)
Description copied from interface: ITrace2D
Replaces all internal point highlighters by the new one.

Specified by:
setPointHighlighter in interface ITrace2D
Parameters:
highlighter - the new sole highlighter to use.
Returns:
the Set<IPointPainter> that was used before or null if nothing changed.
See Also:
ITrace2D.setPointHighlighter(info.monitorenter.gui.chart.IPointPainter)

setRenderer

public final void setRenderer(Chart2D renderer)
Allows the chart this instance is painted by to register itself.

This is internally required for synchronization and re-ordering due to z-Index changes.

Specified by:
setRenderer in interface ITrace2D
Parameters:
renderer - the chart that paints this instance.

setStroke

public final void setStroke(java.awt.Stroke stroke)
Description copied from interface: ITrace2D
Allows to specify the rendering of the ITrace2D. This Stroke will be assigned to the Graphics2D by the rendering Chart2D when painting this instance.

Specified by:
setStroke in interface ITrace2D
Parameters:
stroke - the stroke to use for painting this trace.
See Also:
ITrace2D.setStroke(java.awt.Stroke)

setTracePainter

public final java.util.Set<ITracePainter<?>> setTracePainter(ITracePainter<?> painter)
Description copied from interface: ITrace2D
Replaces all internal trace painters by the new one.

Specified by:
setTracePainter in interface ITrace2D
Parameters:
painter - the new sole painter to use.
Returns:
the Set<ITracePainter> that was used before.
See Also:
ITrace2D.setTracePainter(info.monitorenter.gui.chart.ITracePainter)

setVisible

public final void setVisible(boolean visible)

Set the visible property of this instance.

Invisible ITrace2D instances (visible == false) will not be painted.

Specified by:
setVisible in interface ITrace2D
Parameters:
visible - the visible property of this instance to set.
See Also:
ITrace2D.setVisible(boolean)

setZIndex

public final void setZIndex(java.lang.Integer zIndex)
Description copied from interface: ITrace2D
Sets the internal z-index property. This decides the order in which different traces within the same Chart2D are painted.

The higher the given value is the more this trace will be brought to front.

The value must not be lower than ITrace2D.Z_INDEX_MIN(0) and higher than ITrace2D.ZINDEX_MAX(100).

This might not be tested for increased performance but ignoring these bounds may result in wrong ordering of display.

Specified by:
setZIndex in interface ITrace2D
Parameters:
zIndex - the z index of this trace - the lower the value the more in front the trace will appear amongst other traces in the same chart.
See Also:
ITrace2D.setZIndex(java.lang.Integer)

showsErrorBars

public boolean showsErrorBars()
Description copied from interface: ITrace2D
Tests whether error bars are painted by this trace.

Returns true if

Specified by:
showsErrorBars in interface ITrace2D
Returns:
true if this trace renders error bars.
See Also:
ITrace2D.showsErrorBars()

showsNegativeXErrorBars

public boolean showsNegativeXErrorBars()
Description copied from interface: ITrace2D
Tests whether error bars in negative x direction are painted by this trace.

Returns true if

Specified by:
showsNegativeXErrorBars in interface ITrace2D
Returns:
true if this trace renders error bars in negative x direction.
See Also:
ITrace2D.showsNegativeXErrorBars()

showsNegativeYErrorBars

public boolean showsNegativeYErrorBars()
Description copied from interface: ITrace2D
Tests whether error bars in negative y direction are painted by this trace.

Returns true if

Specified by:
showsNegativeYErrorBars in interface ITrace2D
Returns:
true if this trace renders error bars in negative y direction.
See Also:
ITrace2D.showsNegativeYErrorBars()

showsPositiveXErrorBars

public boolean showsPositiveXErrorBars()
Description copied from interface: ITrace2D
Tests whether error bars in positive x direction are painted by this trace.

Returns true if

Specified by:
showsPositiveXErrorBars in interface ITrace2D
Returns:
true if this trace renders error bars in positive x direction.
See Also:
ITrace2D.showsPositiveXErrorBars()

showsPositiveYErrorBars

public boolean showsPositiveYErrorBars()
Description copied from interface: ITrace2D
Tests whether error bars in positive y direction are painted by this trace.

Returns true if

Specified by:
showsPositiveYErrorBars in interface ITrace2D
Returns:
true if this trace renders error bars in positive y direction.
See Also:
ITrace2D.showsPositiveYErrorBars()

toString

public java.lang.String toString()
Returns getName().

Overrides:
toString in class java.lang.Object
Returns:
getName().


Copyright © 2001 - 2010 LGPL, All Rights Footloose.