org.jfree.chart.axis

Class PeriodAxis

public class PeriodAxis extends ValueAxis implements Cloneable, PublicCloneable, Serializable

An axis that displays a date scale based on a RegularTimePeriod. This axis works when displayed across the bottom or top of a plot, but is broken for display at the left or right of charts.
Constructor Summary
PeriodAxis(String label)
Creates a new axis.
PeriodAxis(String label, RegularTimePeriod first, RegularTimePeriod last)
Creates a new axis.
PeriodAxis(String label, RegularTimePeriod first, RegularTimePeriod last, TimeZone timeZone)
Creates a new axis.
PeriodAxis(String label, RegularTimePeriod first, RegularTimePeriod last, TimeZone timeZone, Locale locale)
Creates a new axis.
Method Summary
protected voidautoAdjustRange()
Rescales the axis to ensure that all data is visible.
Objectclone()
Returns a clone of the axis.
voidconfigure()
Configures the axis to work with the current plot.
AxisStatedraw(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, PlotRenderingInfo plotState)
Draws the axis on a Java 2D graphics device (such as the screen or a printer).
protected AxisStatedrawTickLabels(int band, Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Draws the tick labels for one "band" of time periods.
protected voiddrawTickMarks(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Draws the tick marks for the axis.
protected voiddrawTickMarksHorizontal(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Draws the major and minor tick marks for an axis that lies at the top or bottom of the plot.
protected voiddrawTickMarksVertical(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Draws the tick marks for a vertical axis.
booleanequals(Object obj)
Tests the axis for equality with an arbitrary object.
ClassgetAutoRangeTimePeriodClass()
Returns the class used to create the first and last time periods for the axis range when the auto-range flag is set to true.
RegularTimePeriodgetFirst()
Returns the first time period in the axis range.
PeriodAxisLabelInfo[]getLabelInfo()
Returns an array of label info records.
RegularTimePeriodgetLast()
Returns the last time period in the axis range.
LocalegetLocale()
Returns the locale for this axis.
ClassgetMajorTickTimePeriodClass()
Returns the class that controls the spacing of the major tick marks.
floatgetMinorTickMarkInsideLength()
Returns the inside length for the minor tick marks.
floatgetMinorTickMarkOutsideLength()
Returns the outside length for the minor tick marks.
PaintgetMinorTickMarkPaint()
Returns the paint used to display minor tick marks, if they are visible.
StrokegetMinorTickMarkStroke()
Returns the stroke used to display minor tick marks, if they are visible.
ClassgetMinorTickTimePeriodClass()
Returns the class that controls the spacing of the minor tick marks.
TimeZonegetTimeZone()
Returns the time zone used to convert the periods defining the axis range into absolute milliseconds.
inthashCode()
Returns a hash code for this object.
booleanisMinorTickMarksVisible()
Returns the flag that controls whether or not minor tick marks are displayed for the axis.
doublejava2DToValue(double java2DValue, Rectangle2D area, RectangleEdge edge)
Converts a coordinate in Java2D space to the corresponding data value, assuming that the axis runs along one edge of the specified dataArea.
ListrefreshTicks(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Calculates the positions of the ticks for the axis, storing the results in the tick list (ready for drawing).
AxisSpacereserveSpace(Graphics2D g2, Plot plot, Rectangle2D plotArea, RectangleEdge edge, AxisSpace space)
Estimates the space (height or width) required to draw the axis.
voidsetAutoRangeTimePeriodClass(Class c)
Sets the class used to create the first and last time periods for the axis range when the auto-range flag is set to true and sends an AxisChangeEvent to all registered listeners.
voidsetFirst(RegularTimePeriod first)
Sets the first time period in the axis range and sends an AxisChangeEvent to all registered listeners.
voidsetLabelInfo(PeriodAxisLabelInfo[] info)
Sets the array of label info records and sends an AxisChangeEvent to all registered listeners.
voidsetLast(RegularTimePeriod last)
Sets the last time period in the axis range and sends an AxisChangeEvent to all registered listeners.
voidsetMajorTickTimePeriodClass(Class c)
Sets the class that controls the spacing of the major tick marks, and sends an AxisChangeEvent to all registered listeners.
voidsetMinorTickMarkInsideLength(float length)
Sets the inside length of the minor tick marks and sends an AxisChangeEvent to all registered listeners.
voidsetMinorTickMarkOutsideLength(float length)
Sets the outside length of the minor tick marks and sends an AxisChangeEvent to all registered listeners.
voidsetMinorTickMarkPaint(Paint paint)
Sets the paint used to display minor tick marks, if they are visible, and sends a AxisChangeEvent to all registered listeners.
voidsetMinorTickMarksVisible(boolean visible)
Sets the flag that controls whether or not minor tick marks are displayed for the axis, and sends a AxisChangeEvent to all registered listeners.
voidsetMinorTickMarkStroke(Stroke stroke)
Sets the stroke used to display minor tick marks, if they are visible, and sends a AxisChangeEvent to all registered listeners.
voidsetMinorTickTimePeriodClass(Class c)
Sets the class that controls the spacing of the minor tick marks, and sends an AxisChangeEvent to all registered listeners.
voidsetRange(Range range, boolean turnOffAutoRange, boolean notify)
Sets the range for the axis, if requested, sends an AxisChangeEvent to all registered listeners.
voidsetTimeZone(TimeZone zone)
Sets the time zone that is used to convert the time periods into absolute milliseconds.
doublevalueToJava2D(double value, Rectangle2D area, RectangleEdge edge)
Converts a data value to a coordinate in Java2D space, assuming that the axis runs along one edge of the specified dataArea.

Constructor Detail

PeriodAxis

public PeriodAxis(String label)
Creates a new axis.

Parameters: label the axis label.

PeriodAxis

public PeriodAxis(String label, RegularTimePeriod first, RegularTimePeriod last)
Creates a new axis.

Parameters: label the axis label (null permitted). first the first time period in the axis range (null not permitted). last the last time period in the axis range (null not permitted).

PeriodAxis

public PeriodAxis(String label, RegularTimePeriod first, RegularTimePeriod last, TimeZone timeZone)

Deprecated: As of version 1.0.13, you should use the constructor that specifies a Locale also.

Creates a new axis.

Parameters: label the axis label (null permitted). first the first time period in the axis range (null not permitted). last the last time period in the axis range (null not permitted). timeZone the time zone (null not permitted).

PeriodAxis

public PeriodAxis(String label, RegularTimePeriod first, RegularTimePeriod last, TimeZone timeZone, Locale locale)
Creates a new axis.

Parameters: label the axis label (null permitted). first the first time period in the axis range (null not permitted). last the last time period in the axis range (null not permitted). timeZone the time zone (null not permitted). locale the locale (null not permitted).

Since: 1.0.13

Method Detail

autoAdjustRange

protected void autoAdjustRange()
Rescales the axis to ensure that all data is visible.

clone

public Object clone()
Returns a clone of the axis.

Returns: A clone.

Throws: CloneNotSupportedException this class is cloneable, but subclasses may not be.

configure

public void configure()
Configures the axis to work with the current plot. Override this method to perform any special processing (such as auto-rescaling).

draw

public AxisState draw(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, PlotRenderingInfo plotState)
Draws the axis on a Java 2D graphics device (such as the screen or a printer).

Parameters: g2 the graphics device (null not permitted). cursor the cursor location (determines where to draw the axis). plotArea the area within which the axes and plot should be drawn. dataArea the area within which the data should be drawn. edge the axis location (null not permitted). plotState collects information about the plot (null permitted).

Returns: The axis state (never null).

drawTickLabels

protected AxisState drawTickLabels(int band, Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Draws the tick labels for one "band" of time periods.

Parameters: band the band index (zero-based). g2 the graphics device. state the axis state. dataArea the data area. edge the edge where the axis is located.

Returns: The updated axis state.

drawTickMarks

protected void drawTickMarks(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Draws the tick marks for the axis.

Parameters: g2 the graphics device. state the axis state. dataArea the data area. edge the edge.

drawTickMarksHorizontal

protected void drawTickMarksHorizontal(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Draws the major and minor tick marks for an axis that lies at the top or bottom of the plot.

Parameters: g2 the graphics device. state the axis state. dataArea the data area. edge the edge.

drawTickMarksVertical

protected void drawTickMarksVertical(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Draws the tick marks for a vertical axis.

Parameters: g2 the graphics device. state the axis state. dataArea the data area. edge the edge.

equals

public boolean equals(Object obj)
Tests the axis for equality with an arbitrary object.

Parameters: obj the object (null permitted).

Returns: A boolean.

getAutoRangeTimePeriodClass

public Class getAutoRangeTimePeriodClass()
Returns the class used to create the first and last time periods for the axis range when the auto-range flag is set to true.

Returns: The class (never null).

getFirst

public RegularTimePeriod getFirst()
Returns the first time period in the axis range.

Returns: The first time period (never null).

getLabelInfo

public PeriodAxisLabelInfo[] getLabelInfo()
Returns an array of label info records.

Returns: An array.

getLast

public RegularTimePeriod getLast()
Returns the last time period in the axis range.

Returns: The last time period (never null).

getLocale

public Locale getLocale()
Returns the locale for this axis.

Returns: The locale (never (null).

Since: 1.0.13

getMajorTickTimePeriodClass

public Class getMajorTickTimePeriodClass()
Returns the class that controls the spacing of the major tick marks.

Returns: The class (never null).

getMinorTickMarkInsideLength

public float getMinorTickMarkInsideLength()
Returns the inside length for the minor tick marks.

Returns: The length.

getMinorTickMarkOutsideLength

public float getMinorTickMarkOutsideLength()
Returns the outside length for the minor tick marks.

Returns: The length.

getMinorTickMarkPaint

public Paint getMinorTickMarkPaint()
Returns the paint used to display minor tick marks, if they are visible.

Returns: A paint (never null).

getMinorTickMarkStroke

public Stroke getMinorTickMarkStroke()
Returns the stroke used to display minor tick marks, if they are visible.

Returns: A stroke (never null).

getMinorTickTimePeriodClass

public Class getMinorTickTimePeriodClass()
Returns the class that controls the spacing of the minor tick marks.

Returns: The class (never null).

getTimeZone

public TimeZone getTimeZone()
Returns the time zone used to convert the periods defining the axis range into absolute milliseconds.

Returns: The time zone (never null).

hashCode

public int hashCode()
Returns a hash code for this object.

Returns: A hash code.

isMinorTickMarksVisible

public boolean isMinorTickMarksVisible()
Returns the flag that controls whether or not minor tick marks are displayed for the axis.

Returns: A boolean.

java2DToValue

public double java2DToValue(double java2DValue, Rectangle2D area, RectangleEdge edge)
Converts a coordinate in Java2D space to the corresponding data value, assuming that the axis runs along one edge of the specified dataArea.

Parameters: java2DValue the coordinate in Java2D space. area the area in which the data is plotted. edge the edge along which the axis lies.

Returns: The data value.

refreshTicks

public List refreshTicks(Graphics2D g2, AxisState state, Rectangle2D dataArea, RectangleEdge edge)
Calculates the positions of the ticks for the axis, storing the results in the tick list (ready for drawing).

Parameters: g2 the graphics device. state the axis state. dataArea the area inside the axes. edge the edge on which the axis is located.

Returns: The list of ticks.

reserveSpace

public AxisSpace reserveSpace(Graphics2D g2, Plot plot, Rectangle2D plotArea, RectangleEdge edge, AxisSpace space)
Estimates the space (height or width) required to draw the axis.

Parameters: g2 the graphics device. plot the plot that the axis belongs to. plotArea the area within which the plot (including axes) should be drawn. edge the axis location. space space already reserved.

Returns: The space required to draw the axis (including pre-reserved space).

setAutoRangeTimePeriodClass

public void setAutoRangeTimePeriodClass(Class c)
Sets the class used to create the first and last time periods for the axis range when the auto-range flag is set to true and sends an AxisChangeEvent to all registered listeners.

Parameters: c the class (null not permitted).

setFirst

public void setFirst(RegularTimePeriod first)
Sets the first time period in the axis range and sends an AxisChangeEvent to all registered listeners.

Parameters: first the time period (null not permitted).

setLabelInfo

public void setLabelInfo(PeriodAxisLabelInfo[] info)
Sets the array of label info records and sends an AxisChangeEvent to all registered listeners.

Parameters: info the info.

setLast

public void setLast(RegularTimePeriod last)
Sets the last time period in the axis range and sends an AxisChangeEvent to all registered listeners.

Parameters: last the time period (null not permitted).

setMajorTickTimePeriodClass

public void setMajorTickTimePeriodClass(Class c)
Sets the class that controls the spacing of the major tick marks, and sends an AxisChangeEvent to all registered listeners.

Parameters: c the class (a subclass of RegularTimePeriod is expected).

setMinorTickMarkInsideLength

public void setMinorTickMarkInsideLength(float length)
Sets the inside length of the minor tick marks and sends an AxisChangeEvent to all registered listeners.

Parameters: length the length.

setMinorTickMarkOutsideLength

public void setMinorTickMarkOutsideLength(float length)
Sets the outside length of the minor tick marks and sends an AxisChangeEvent to all registered listeners.

Parameters: length the length.

setMinorTickMarkPaint

public void setMinorTickMarkPaint(Paint paint)
Sets the paint used to display minor tick marks, if they are visible, and sends a AxisChangeEvent to all registered listeners.

Parameters: paint the paint (null not permitted).

setMinorTickMarksVisible

public void setMinorTickMarksVisible(boolean visible)
Sets the flag that controls whether or not minor tick marks are displayed for the axis, and sends a AxisChangeEvent to all registered listeners.

Parameters: visible the flag.

setMinorTickMarkStroke

public void setMinorTickMarkStroke(Stroke stroke)
Sets the stroke used to display minor tick marks, if they are visible, and sends a AxisChangeEvent to all registered listeners.

Parameters: stroke the stroke (null not permitted).

setMinorTickTimePeriodClass

public void setMinorTickTimePeriodClass(Class c)
Sets the class that controls the spacing of the minor tick marks, and sends an AxisChangeEvent to all registered listeners.

Parameters: c the class (a subclass of RegularTimePeriod is expected).

setRange

public void setRange(Range range, boolean turnOffAutoRange, boolean notify)
Sets the range for the axis, if requested, sends an AxisChangeEvent to all registered listeners. As a side-effect, the auto-range flag is set to false (optional).

Parameters: range the range (null not permitted). turnOffAutoRange a flag that controls whether or not the auto range is turned off. notify a flag that controls whether or not listeners are notified.

setTimeZone

public void setTimeZone(TimeZone zone)
Sets the time zone that is used to convert the time periods into absolute milliseconds.

Parameters: zone the time zone (null not permitted).

valueToJava2D

public double valueToJava2D(double value, Rectangle2D area, RectangleEdge edge)
Converts a data value to a coordinate in Java2D space, assuming that the axis runs along one edge of the specified dataArea.

Note that it is possible for the coordinate to fall outside the area.

Parameters: value the data value. area the area for plotting the data. edge the edge along which the axis lies.

Returns: The Java2D coordinate.

Copyright © 2000-2009 by Object Refinery Limited. All Rights Reserved.