Class Trace2DLtd
- java.lang.Object
-
- info.monitorenter.gui.chart.traces.ATrace2D
-
- info.monitorenter.gui.chart.traces.Trace2DLtd
-
- All Implemented Interfaces:
ITrace2D,java.beans.PropertyChangeListener,java.io.Serializable,java.lang.Comparable<ITrace2D>,java.util.EventListener
- Direct Known Subclasses:
Trace2DLtdReplacing
public class Trace2DLtd extends ATrace2D implements ITrace2D
Additional to the Trace2DSimple the Trace2DLimited adds the following functionality:- The amount of internal tracepoints is limited to the maxsize, passed to the constructor.
- If a new tracepoint is inserted and the maxsize has been reached, the tracepoint residing for the longest time in this trace is thrown away.
- Version:
- $Revision: 1.19 $
- 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
Fields Modifier and Type Field Description protected IRingBuffer<ITracePoint2D>m_bufferInternal fast FIFO buffer implementation based upon indexed access to an array.-
Fields inherited from class info.monitorenter.gui.chart.traces.ATrace2D
m_computingTraces, m_maxX, m_maxXErrorBar, m_maxY, m_maxYErrorBar, m_minX, m_minXErrorBar, m_minY, m_minYErrorBar, m_name, m_physicalUnitsX, m_physicalUnitsY, m_propertyChangeSupport, m_renderer
-
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
Constructors Constructor Description Trace2DLtd()Constructs an instance with a default buffer size of 100.Trace2DLtd(int maxsize)Constructs an instance with a buffersize of maxsize and a default name.Trace2DLtd(int maxsize, java.lang.String name)Constructs an instance with a buffersize of maxsize and a default name.Trace2DLtd(java.lang.String name)Creates an instance with a default buffersize of 100 and the given name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanaddPointInternal(ITracePoint2D p)Override this template method for the custom add operation that depends on the policies of the implementation.booleanequals(java.lang.Object obj)intgetMaxSize()Returns the maximum amount ofTracePoint2Dinstances that may be added.intgetSize()Returns the acutal amount of points in this trace.inthashCode()booleanisEmpty()Returns false if internalinstances are contained or true if not.TracePoint2Djava.util.Iterator<ITracePoint2D>iterator()Returns anIteratorover the internalinstances.TracePoint2DvoidremoveAllPointsInternal()Override this template method for the custom remove operation that depends on theCollectionused in the implementation.protected ITracePoint2DremovePointInternal(ITracePoint2D point)Returns null always because internally a ring buffer is used which does not allow removing of values because that would break the contract of a ring buffer.voidsetMaxSize(int amount)Sets the maximum amount of points that may be displayed.-
Methods inherited from class info.monitorenter.gui.chart.traces.ATrace2D
addComputingTrace, addErrorBarPolicy, addPoint, addPoint, addPointHighlighter, addPropertyChangeListener, addTracePainter, compareTo, containsTracePainter, ensureInitialized, finalize, firePointAdded, firePointChanged, firePointRemoved, firePropertyChange, getChangeListeners, getColor, getErrorBarPolicies, getHasErrorBars, getInstanceCount, getLabel, getMaxX, getMaxY, getMinX, getMinY, getName, getNearestPointEuclid, getNearestPointManhattan, getPhysicalUnits, getPhysicalUnitsX, getPhysicalUnitsY, getPointHighlighters, getPropertyChangeListeners, getRenderer, getStroke, getTracePainters, getZIndex, isVisible, maxXSearch, maxYSearch, minXSearch, minYSearch, propertyChange, removeAllPointHighlighters, removeAllPoints, removeComputingTrace, removeErrorBarPolicy, removePoint, removePointHighlighter, removePropertyChangeListener, removePropertyChangeListener, removeTracePainter, setColor, setErrorBarPolicy, setName, setPhysicalUnits, setPointHighlighter, setRenderer, setStroke, setTracePainter, setVisible, setZIndex, showsErrorBars, showsNegativeXErrorBars, showsNegativeYErrorBars, showsPositiveXErrorBars, showsPositiveYErrorBars, toString
-
Methods inherited from interface info.monitorenter.gui.chart.ITrace2D
addComputingTrace, addErrorBarPolicy, addPoint, addPoint, addPointHighlighter, addPropertyChangeListener, addTracePainter, containsTracePainter, firePointChanged, getColor, getErrorBarPolicies, getHasErrorBars, getLabel, getMaxX, getMaxY, getMinX, getMinY, getName, getNearestPointEuclid, getNearestPointManhattan, getPhysicalUnits, getPhysicalUnitsX, getPhysicalUnitsY, getPointHighlighters, getPropertyChangeListeners, getRenderer, getStroke, getTracePainters, getZIndex, isVisible, removeAllPointHighlighters, removeAllPoints, removeComputingTrace, removeErrorBarPolicy, removePoint, removePointHighlighter, removePropertyChangeListener, removePropertyChangeListener, removeTracePainter, setColor, setErrorBarPolicy, setName, setPhysicalUnits, setPointHighlighter, setRenderer, setStroke, setTracePainter, setVisible, setZIndex, showsErrorBars, showsNegativeXErrorBars, showsNegativeYErrorBars, showsPositiveXErrorBars, showsPositiveYErrorBars
-
-
-
-
Field Detail
-
m_buffer
protected IRingBuffer<ITracePoint2D> m_buffer
Internal fast FIFO buffer implementation based upon indexed access to an array.
-
-
Constructor Detail
-
Trace2DLtd
public Trace2DLtd()
Constructs an instance with a default buffer size of 100.
-
Trace2DLtd
public Trace2DLtd(int maxsize)
Constructs an instance with a buffersize of maxsize and a default name.- Parameters:
maxsize- the buffer size for the maximum amount of points that will be shown.
-
Trace2DLtd
public Trace2DLtd(int maxsize, java.lang.String name)Constructs an instance with a buffersize of maxsize and a default name.- Parameters:
maxsize- the buffer size for the maximum amount of points that will be shown.name- the name that will be displayed for this trace.
-
Trace2DLtd
public Trace2DLtd(java.lang.String name)
Creates an instance with a default buffersize of 100 and the given name.- Parameters:
name- the name that will be displayed for the trace.
-
-
Method Detail
-
addPointInternal
protected boolean addPointInternal(ITracePoint2D p)
Description copied from class:ATrace2DOverride 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
truethe outer logic of the calling methodwill perform bound checks for the new point and fire property changes as described in methodATrace2D.addPoint(ITracePoint2D).ATrace2D.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".
- Specified by:
addPointInternalin classATrace2D- Parameters:
p- the point to add.- Returns:
- true if the given point was accepted or false if not.
- See Also:
ATrace2D.addPointInternal(info.monitorenter.gui.chart.ITracePoint2D)
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object- See Also:
Object.equals(java.lang.Object)
-
getMaxSize
public int getMaxSize()
Description copied from interface:ITrace2DReturns the maximum amount of
TracePoint2Dinstances that may be added. For implementations that limit the maximum amount this is a reasonable amount. Non-limiting implementations should returnInteger.MAX_VALUE. This allows to detect the unlimitedness. Of course no implementation could store that amount of points.- Specified by:
getMaxSizein interfaceITrace2D- Returns:
- The maximum amount of
TracePoint2Dinstances that may be added. - See Also:
ITrace2D.getMaxSize()
-
getSize
public int getSize()
Returns the acutal amount of points in this trace.- Specified by:
getSizein interfaceITrace2D- Returns:
- the acutal amount of points in this trace.
- See Also:
ITrace2D.getSize()
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object- See Also:
Object.hashCode()
-
isEmpty
public boolean isEmpty()
Description copied from interface:ITrace2DReturns false if internalinstances are contained or true if not.TracePoint2D- Specified by:
isEmptyin interfaceITrace2D- Returns:
- false if internal
instances are contained or true if not.TracePoint2D - See Also:
ITrace2D.isEmpty()
-
iterator
public java.util.Iterator<ITracePoint2D> iterator()
Description copied from interface:ITrace2DReturns anIteratorover the internalinstances.TracePoint2DImplementations should be synchronized. This method is meant to allow modifications of the intenal
TracePoint2Dinstances, so the original points should be returned.There is no guarantee that changes made to the contained tracepoints will be reflected in the display immediately. The order the iterator returns the
TracePoint2Dinstances decides how theChart2Dwill paint the trace.- Specified by:
iteratorin interfaceITrace2D- Returns:
- an
Iteratorover the internalinstances.TracePoint2D - See Also:
ITrace2D.iterator()
-
removeAllPointsInternal
public void removeAllPointsInternal()
Description copied from class:ATrace2DOverride this template method for the custom remove operation that depends on theCollectionused in the implementation.No change events have to be fired, this is done by
ATrace2D.- Specified by:
removeAllPointsInternalin classATrace2D- See Also:
ITrace2D.removeAllPoints()
-
removePointInternal
protected ITracePoint2D removePointInternal(ITracePoint2D point)
Returns null always because internally a ring buffer is used which does not allow removing of values because that would break the contract of a ring buffer.- Specified by:
removePointInternalin classATrace2D- Parameters:
point- the point to remove.- Returns:
- null always because internally a ring buffer is used which does not allow removing of values because that would break the contract of a ring buffer.
-
setMaxSize
public final void setMaxSize(int amount)
Sets the maximum amount of points that may be displayed.Don't use this too often as decreases in size may cause expensive array copy operations and new searches on all points for bound changes.
TODO: Only search for bounds if size is smaller than before, debug and test.
- Parameters:
amount- the new maximum amount of points to show.
-
-