org.jfree.chart.axis
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.
Nested Class Summary | |
---|---|
protected static class | CyclicNumberAxis.CycleBoundTick
A special Number tick that also hold information about the cycle bound
mapping for this tick. |
Field Summary | |
---|---|
protected Paint | advanceLinePaint The advance line paint. |
protected Stroke | advanceLineStroke The advance line stroke. |
protected boolean | advanceLineVisible A flag that controls whether or not the advance line is visible. |
protected boolean | boundMappedToLastCycle ? |
static Paint | DEFAULT_ADVANCE_LINE_PAINT The default axis line paint. |
static Stroke | DEFAULT_ADVANCE_LINE_STROKE The default axis line stroke. |
protected double | offset The offset. |
protected double | period The period. |
Constructor Summary | |
---|---|
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, String label)
Creates a named CycleNumberAxis with the given period.
| |
CyclicNumberAxis(double period, double offset, String label)
Creates a named CycleNumberAxis with the given period and offset.
|
Method Summary | |
---|---|
protected float[] | calculateAnchorPoint(ValueTick tick, double cursor, Rectangle2D dataArea, RectangleEdge edge)
Calculates the anchor point for a tick.
|
void | centerRange(double value)
Centers the range about the given value.
|
AxisState | draw(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, PlotRenderingInfo plotState)
Draws the axis.
|
protected AxisState | drawTickMarksAndLabels(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge)
Draws the tick marks and labels.
|
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, RectangleEdge edge)
Converts a coordinate from Java 2D space to data space.
|
protected List | refreshTicksHorizontal(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)
Builds a list of ticks for the axis. |
protected List | refreshVerticalTicks(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge)
Builds a list of ticks for the axis. |
AxisSpace | reserveSpace(Graphics2D g2, Plot plot, Rectangle2D plotArea, RectangleEdge edge, AxisSpace space)
Reserve some space on each axis side because we draw a centered label at
each extremity.
|
protected void | selectHorizontalAutoTickUnit(Graphics2D g2, Rectangle2D drawArea, Rectangle2D dataArea, RectangleEdge edge)
Selects a tick unit when the axis is displayed horizontally.
|
protected void | selectVerticalAutoTickUnit(Graphics2D g2, Rectangle2D drawArea, Rectangle2D dataArea, RectangleEdge edge)
Selects a tick unit when the axis is displayed vertically.
|
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, RectangleEdge edge)
Translates a value from data space to Java 2D space.
|
Parameters: period the period.
Parameters: period the period. offset the offset.
Parameters: period the period. label the label.
Parameters: period the period. offset the offset. label the label.
Parameters: tick the tick. cursor the cursor. dataArea the data area. edge the side on which the axis is displayed.
Returns: The anchor point.
Parameters: value the data value.
Parameters: 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).
Returns: The axis state (never null
).
Parameters: g2 the graphics device. cursor the cursor. plotArea the plot area. dataArea the area inside the axes. edge the side on which the axis is displayed.
Returns: The axis state.
Parameters: obj the object to test against.
Returns: A boolean.
Returns: The paint (never null
).
Returns: The stroke (never null
).
Returns: The cycle bound.
cb = n * period + offset
Returns: The current offset.
See Also: getCycleBound
cb = n * period + offset
Returns: The current period.
See Also: getCycleBound
Returns: A boolean.
Returns: true
if the cycle bound is mapped to the last
cycle, false
if it is bound to the current cycle
(default)
Parameters: java2DValue the coordinate in Java2D space. dataArea the data area. edge the edge.
Returns: The data value.
Parameters: g2 the graphics device. dataArea the data area. edge the edge.
Returns: A list of ticks.
Parameters: g2 the graphics device. dataArea the data area. edge the edge.
Returns: A list of ticks.
Parameters: g2 the graphics device. plot the plot. plotArea the plot area. edge the edge. space the space already reserved.
Returns: The reserved space.
Parameters: g2 the graphics device. drawArea the drawing area. dataArea the data area. edge the side of the rectangle on which the axis is displayed.
Parameters: g2 the graphics device. drawArea the drawing area. dataArea the data area. edge the side of the rectangle on which the axis is displayed.
Parameters: paint the paint (null
not permitted).
Parameters: stroke the stroke (null
not permitted).
Parameters: visible the flag.
Parameters: size the size. notify notify?
See Also: ValueAxis
Parameters: boundMappedToLastCycle Set it to true to map the cycle bound to the last cycle.
Parameters: length the length.
See Also: ValueAxis
cb = n * period + offset
Parameters: offset The offset to set.
See Also: getCycleBound
cb = n * period + offset
Parameters: period The period to set.
See Also: getCycleBound
Parameters: range the range. turnOffAutoRange switch off the auto range. notify notify?
See Also: ValueAxis
Parameters: value the data value. dataArea the data area. edge the edge.
Returns: The Java 2D value.