public class CyclicNumberAxis extends NumberAxis
|-------------------------| x0 x1Here, the range bounds are at the axis extremities. With cyclic axis, however, the time is split in "cycles", or "time frames", or the same duration : the period. A cycle axis cannot by definition handle a larger interval than the period :
x1 - x0 >= period. Thus, at most a full period can be represented with such an axis. The cycle bound is the number between x0 and x1 which marks the beginning of new time frame:
|---------------------|----------------------------| x0 cb x1 <---previous cycle---><-------current cycle-------->It is actually a multiple of the period, plus optionally a start offset:
cb = n * period + offsetThus, by definition, two consecutive cycle bounds period apart, which is precisely why it is called a period. The visual representation of a cyclic axis is like that:
|----------------------------|---------------------| cb x1|x0 cb <-------current cycle--------><---previous cycle--->The cycle bound is at the axis ends, then current cycle is shown, then the last cycle. When using dynamic data, the visual effect is the current cycle erases the last cycle as x grows. Then, the next cycle bound is reached, and the process starts over, erasing the previous cycle. A Cyclic item renderer is provided to do exactly this.
Modifier and Type | Field and Description |
---|---|
static Paint |
DEFAULT_ADVANCE_LINE_PAINT
The default axis line paint.
|
static Stroke |
DEFAULT_ADVANCE_LINE_STROKE
The default axis line stroke.
|
DEFAULT_AUTO_RANGE_INCLUDES_ZERO, DEFAULT_AUTO_RANGE_STICKY_ZERO, DEFAULT_TICK_UNIT, DEFAULT_VERTICAL_TICK_LABELS
DEFAULT_AUTO_RANGE, DEFAULT_AUTO_RANGE_MINIMUM_SIZE, DEFAULT_AUTO_TICK_UNIT_SELECTION, DEFAULT_INVERTED, DEFAULT_LOWER_BOUND, DEFAULT_LOWER_MARGIN, DEFAULT_RANGE, DEFAULT_UPPER_BOUND, DEFAULT_UPPER_MARGIN, MAXIMUM_TICK_COUNT
DEFAULT_AXIS_LABEL_FONT, DEFAULT_AXIS_LABEL_INSETS, DEFAULT_AXIS_LABEL_PAINT, DEFAULT_AXIS_LINE_PAINT, DEFAULT_AXIS_LINE_STROKE, DEFAULT_AXIS_VISIBLE, DEFAULT_TICK_LABEL_FONT, DEFAULT_TICK_LABEL_INSETS, DEFAULT_TICK_LABEL_PAINT, DEFAULT_TICK_LABELS_VISIBLE, DEFAULT_TICK_MARK_INSIDE_LENGTH, DEFAULT_TICK_MARK_OUTSIDE_LENGTH, DEFAULT_TICK_MARK_PAINT, DEFAULT_TICK_MARK_STROKE, DEFAULT_TICK_MARKS_VISIBLE
Constructor and Description |
---|
CyclicNumberAxis(double period)
Creates a CycleNumberAxis with the given period.
|
CyclicNumberAxis(double period,
double offset)
Creates a CycleNumberAxis with the given period and offset.
|
CyclicNumberAxis(double period,
double offset,
String label)
Creates a named CycleNumberAxis with the given period and offset.
|
CyclicNumberAxis(double period,
String label)
Creates a named CycleNumberAxis with the given period.
|
Modifier and Type | Method and Description |
---|---|
void |
centerRange(double value)
Centers the range about the given value.
|
AxisState |
draw(Graphics2D g2,
double cursor,
Rectangle2D plotArea,
Rectangle2D dataArea,
org.jfree.ui.RectangleEdge edge,
PlotRenderingInfo plotState)
Draws the axis.
|
boolean |
equals(Object obj)
Tests the axis for equality with another object.
|
Paint |
getAdvanceLinePaint()
The advance line is the line drawn at the limit of the current cycle,
when erasing the previous cycle.
|
Stroke |
getAdvanceLineStroke()
The advance line is the line drawn at the limit of the current cycle,
when erasing the previous cycle.
|
double |
getCycleBound()
The cycle bound is defined as the higest value x such that
"offset + period * i = x", with i and integer and x <
range.getUpperBound() This is the value which is at both ends of the
axis : x...up|low...x
The values from x to up are the valued in the current cycle.
|
double |
getOffset()
The cycle bound is a multiple of the period, plus optionally a start
offset.
|
double |
getPeriod()
The cycle bound is a multiple of the period, plus optionally a start
offset.
|
boolean |
isAdvanceLineVisible()
The advance line is the line drawn at the limit of the current cycle,
when erasing the previous cycle.
|
boolean |
isBoundMappedToLastCycle()
The cycle bound can be associated either with the current or with the
last cycle.
|
double |
java2DToValue(double java2DValue,
Rectangle2D dataArea,
org.jfree.ui.RectangleEdge edge)
Converts a coordinate from Java 2D space to data space.
|
AxisSpace |
reserveSpace(Graphics2D g2,
Plot plot,
Rectangle2D plotArea,
org.jfree.ui.RectangleEdge edge,
AxisSpace space)
Reserve some space on each axis side because we draw a centered label at
each extremity.
|
void |
setAdvanceLinePaint(Paint paint)
The advance line is the line drawn at the limit of the current cycle,
when erasing the previous cycle.
|
void |
setAdvanceLineStroke(Stroke stroke)
The advance line is the line drawn at the limit of the current cycle,
when erasing the previous cycle.
|
void |
setAdvanceLineVisible(boolean visible)
The advance line is the line drawn at the limit of the current cycle,
when erasing the previous cycle.
|
void |
setAutoRangeMinimumSize(double size,
boolean notify)
This function is nearly useless since the auto range is fixed for this
class to the period.
|
void |
setBoundMappedToLastCycle(boolean boundMappedToLastCycle)
The cycle bound can be associated either with the current or with the
last cycle.
|
void |
setFixedAutoRange(double length)
The auto range is fixed for this class to the period by default.
|
void |
setOffset(double offset)
The cycle bound is a multiple of the period, plus optionally a start
offset.
|
void |
setPeriod(double period)
The cycle bound is a multiple of the period, plus optionally a start
offset.
|
void |
setRange(Range range,
boolean turnOffAutoRange,
boolean notify)
Sets a new axis range.
|
double |
valueToJava2D(double value,
Rectangle2D dataArea,
org.jfree.ui.RectangleEdge edge)
Translates a value from data space to Java 2D space.
|
clone, configure, createIntegerTickUnits, createIntegerTickUnits, createStandardTickUnits, createStandardTickUnits, getAutoRangeIncludesZero, getAutoRangeStickyZero, getMarkerBand, getNumberFormatOverride, getRangeType, getTickUnit, hashCode, refreshTicks, setAutoRangeIncludesZero, setAutoRangeStickyZero, setMarkerBand, setNumberFormatOverride, setRangeType, setTickUnit, setTickUnit
getAutoRangeMinimumSize, getDefaultAutoRange, getDownArrow, getFixedAutoRange, getLeftArrow, getLowerBound, getLowerMargin, getMinorTickCount, getRange, getRightArrow, getStandardTickUnits, getUpArrow, getUpperBound, getUpperMargin, isAutoRange, isAutoTickUnitSelection, isInverted, isNegativeArrowVisible, isPositiveArrowVisible, isVerticalTickLabels, lengthToJava2D, pan, resizeRange, resizeRange, resizeRange2, setAutoRange, setAutoRangeMinimumSize, setAutoTickUnitSelection, setAutoTickUnitSelection, setDefaultAutoRange, setDownArrow, setInverted, setLeftArrow, setLowerBound, setLowerMargin, setMinorTickCount, setNegativeArrowVisible, setPositiveArrowVisible, setRange, setRange, setRangeAboutValue, setRangeWithMargins, setRangeWithMargins, setRangeWithMargins, setRightArrow, setStandardTickUnits, setUpArrow, setUpperBound, setUpperMargin, setVerticalTickLabels, zoomRange
addChangeListener, createAttributedLabel, getAttributedLabel, getAxisLinePaint, getAxisLineStroke, getFixedDimension, getLabel, getLabelAngle, getLabelFont, getLabelInsets, getLabelLocation, getLabelPaint, getMinorTickMarkInsideLength, getMinorTickMarkOutsideLength, getPlot, getTickLabelFont, getTickLabelInsets, getTickLabelPaint, getTickMarkInsideLength, getTickMarkOutsideLength, getTickMarkPaint, getTickMarkStroke, hasListener, isAxisLineVisible, isMinorTickMarksVisible, isTickLabelsVisible, isTickMarksVisible, isVisible, removeChangeListener, setAttributedLabel, setAttributedLabel, setAxisLinePaint, setAxisLineStroke, setAxisLineVisible, setFixedDimension, setLabel, setLabelAngle, setLabelFont, setLabelInsets, setLabelInsets, setLabelLocation, setLabelPaint, setMinorTickMarkInsideLength, setMinorTickMarkOutsideLength, setMinorTickMarksVisible, setPlot, setTickLabelFont, setTickLabelInsets, setTickLabelPaint, setTickLabelsVisible, setTickMarkInsideLength, setTickMarkOutsideLength, setTickMarkPaint, setTickMarkStroke, setTickMarksVisible, setVisible
public static Stroke DEFAULT_ADVANCE_LINE_STROKE
public static final Paint DEFAULT_ADVANCE_LINE_PAINT
public CyclicNumberAxis(double period)
period
- the period.public CyclicNumberAxis(double period, double offset)
period
- the period.offset
- the offset.public CyclicNumberAxis(double period, String label)
period
- the period.label
- the label.public CyclicNumberAxis(double period, double offset, String label)
period
- the period.offset
- the offset.label
- the label.public boolean isAdvanceLineVisible()
public void setAdvanceLineVisible(boolean visible)
visible
- the flag.public Paint getAdvanceLinePaint()
null
).public void setAdvanceLinePaint(Paint paint)
paint
- the paint (null
not permitted).public Stroke getAdvanceLineStroke()
null
).public void setAdvanceLineStroke(Stroke stroke)
stroke
- the stroke (null
not permitted).public boolean isBoundMappedToLastCycle()
true
if the cycle bound is mapped to the last
cycle, false
if it is bound to the current cycle
(default)public void setBoundMappedToLastCycle(boolean boundMappedToLastCycle)
boundMappedToLastCycle
- Set it to true to map the cycle bound to
the last cycle.public double java2DToValue(double java2DValue, Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
java2DToValue
in class NumberAxis
java2DValue
- the coordinate in Java2D space.dataArea
- the data area.edge
- the edge.NumberAxis.valueToJava2D(double, Rectangle2D, RectangleEdge)
public double valueToJava2D(double value, Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge)
valueToJava2D
in class NumberAxis
value
- the data value.dataArea
- the data area.edge
- the edge.NumberAxis.java2DToValue(double, Rectangle2D, RectangleEdge)
public void centerRange(double value)
centerRange
in class ValueAxis
value
- the data value.public void setAutoRangeMinimumSize(double size, boolean notify)
setAutoRangeMinimumSize
in class ValueAxis
size
- the size.notify
- notify?ValueAxis.setAutoRangeMinimumSize(double,
boolean)
public void setFixedAutoRange(double length)
setFixedAutoRange
in class ValueAxis
length
- the length.ValueAxis.setFixedAutoRange(double)
public void setRange(Range range, boolean turnOffAutoRange, boolean notify)
setRange
in class ValueAxis
range
- the range.turnOffAutoRange
- switch off the auto range.notify
- notify?ValueAxis.setRange(Range, boolean, boolean)
public double getCycleBound()
public double getOffset()
cb = n * period + offset
getCycleBound()
public void setOffset(double offset)
cb = n * period + offset
offset
- The offset to set.getCycleBound()
public double getPeriod()
cb = n * period + offset
getCycleBound()
public void setPeriod(double period)
cb = n * period + offset
period
- The period to set.getCycleBound()
public AxisState draw(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge, PlotRenderingInfo plotState)
draw
in class NumberAxis
g2
- the graphics device (null
not permitted).cursor
- the cursor position.plotArea
- the plot area (null
not permitted).dataArea
- the data area (null
not permitted).edge
- the edge (null
not permitted).plotState
- collects information about the plot
(null
permitted).null
).public AxisSpace reserveSpace(Graphics2D g2, Plot plot, Rectangle2D plotArea, org.jfree.ui.RectangleEdge edge, AxisSpace space)
reserveSpace
in class ValueAxis
g2
- the graphics device.plot
- the plot.plotArea
- the plot area.edge
- the edge.space
- the space already reserved.public boolean equals(Object obj)
equals
in class NumberAxis
obj
- the object to test against.Jas4pp 1.5 © Java Analysis Studio for Particle Physics