Package org.opentrafficsim.draw.graphs
Class AbstractBoundedPlot
java.lang.Object
org.opentrafficsim.draw.graphs.AbstractPlot
org.opentrafficsim.draw.graphs.AbstractBoundedPlot
- All Implemented Interfaces:
org.djutils.base.Identifiable
,org.jfree.data.general.Dataset
- Direct Known Subclasses:
AbstractSpaceTimePlot
,FundamentalDiagram
Plot that allows hard bounds to be set, with upper and lower bound independent. Manual zooming and auto ranges are bounded
within the bounds.
Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
-
Field Summary
Fields inherited from class org.opentrafficsim.draw.graphs.AbstractPlot
DEFAULT_INITIAL_UPPER_TIME_BOUND, GRAPH_ADD_EVENT, GRAPH_REMOVE_EVENT
-
Constructor Summary
ConstructorDescriptionAbstractBoundedPlot
(PlotScheduler scheduler, String caption, org.djunits.value.vdouble.scalar.Duration updateInterval, org.djunits.value.vdouble.scalar.Duration delay) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
setAutoBoundDomain
(org.jfree.chart.plot.XYPlot plot) Overridable; activates auto bounds on domain axis from user input.void
setAutoBoundRange
(org.jfree.chart.plot.XYPlot plot) Overridable; activates auto bounds on range axis from user input.protected void
setChart
(org.jfree.chart.JFreeChart chart) Sets the chart and adds menus and listeners.void
setLowerDomainBound
(Double bound) Sets the lower domain bound.void
setLowerRangeBound
(Double bound) Sets the lower range bound.void
setUpperDomainBound
(Double bound) Sets the upper domain bound.void
setUpperRangeBound
(Double bound) Sets the upper range bound.Methods inherited from class org.opentrafficsim.draw.graphs.AbstractPlot
addChangeListener, encodeAsPng, getCaption, getChart, getGraphType, getGroup, getId, getStatusLabel, getUpdateTime, increaseTime, notifyPlotChange, removeChangeListener, setGroup, setUpdateInterval, update
-
Constructor Details
-
AbstractBoundedPlot
public AbstractBoundedPlot(PlotScheduler scheduler, String caption, org.djunits.value.vdouble.scalar.Duration updateInterval, org.djunits.value.vdouble.scalar.Duration delay) Constructor.- Parameters:
scheduler
- PlotScheduler; schedulercaption
- String; captionupdateInterval
- Duration; regular update interval (simulation time)delay
- Duration; amount of time that chart runs behind simulation to prevent gaps in the charted data
-
-
Method Details
-
setChart
protected void setChart(org.jfree.chart.JFreeChart chart) Sets the chart and adds menus and listeners.- Overrides:
setChart
in classAbstractPlot
- Parameters:
chart
- JFreeChart; chart
-
setLowerDomainBound
Sets the lower domain bound.- Parameters:
bound
- Double; usenull
to disable bound
-
setUpperDomainBound
Sets the upper domain bound.- Parameters:
bound
- Double; usenull
to disable bound
-
setLowerRangeBound
Sets the lower range bound.- Parameters:
bound
- Double; usenull
to disable bound
-
setUpperRangeBound
Sets the upper range bound.- Parameters:
bound
- Double; usenull
to disable bound
-
setAutoBoundDomain
public void setAutoBoundDomain(org.jfree.chart.plot.XYPlot plot) Overridable; activates auto bounds on domain axis from user input. This class does not force the use ofXYPlot
s, but the auto bounds command comes from theChartPanel
that this class creates. In case the used plot is aXYPlot
, this method is then invoked. Sub classes with auto domain bounds that work with anXYPlot
should implement this. The method is not abstract as the use ofXYPlot
is not obligated.- Overrides:
setAutoBoundDomain
in classAbstractPlot
- Parameters:
plot
- XYPlot; plot
-
setAutoBoundRange
public void setAutoBoundRange(org.jfree.chart.plot.XYPlot plot) Overridable; activates auto bounds on range axis from user input. This class does not force the use ofXYPlot
s, but the auto bounds command comes from theChartPanel
that this class creates. In case the used plot is aXYPlot
, this method is then invoked. Sub classes with auto range bounds that work with anXYPlot
should implement this. The method is not abstract as the use ofXYPlot
is not obligated.- Overrides:
setAutoBoundRange
in classAbstractPlot
- Parameters:
plot
- XYPlot; plot
-