org.jfree.chart.axis
Class VerticalDateAxis

java.lang.Object
  |
  +--org.jfree.chart.axis.Axis
        |
        +--org.jfree.chart.axis.ValueAxis
              |
              +--org.jfree.chart.axis.DateAxis
                    |
                    +--org.jfree.chart.axis.VerticalDateAxis
All Implemented Interfaces:
AxisConstants, java.io.Serializable, VerticalAxis

public class VerticalDateAxis
extends DateAxis
implements VerticalAxis, java.io.Serializable

A vertical axis that displays dates.

Author:
Michael Rauch
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.jfree.chart.axis.DateAxis
DEFAULT_ANCHOR_DATE, DEFAULT_AUTO_RANGE_MINIMUM_SIZE_IN_MILLISECONDS, DEFAULT_DATE_RANGE, DEFAULT_DATE_TICK_UNIT
 
Fields inherited from class org.jfree.chart.axis.ValueAxis
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
 
Fields inherited from interface org.jfree.chart.axis.AxisConstants
BOTTOM, DEFAULT_AXIS_LABEL_FONT, DEFAULT_AXIS_LABEL_INSETS, DEFAULT_AXIS_LABEL_PAINT, 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, LEFT, RIGHT, TOP
 
Constructor Summary
VerticalDateAxis(java.lang.String label)
          Constructs a new date axis, using default attribute values where necessary.
 
Method Summary
protected  void autoAdjustRange()
          Rescales the axis to ensure that all data is visible.
 void configure()
          Configures the axis to work with the specified plot.
 void draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D dataArea, int location)
          Draws the axis on a Java 2D graphics device (such as the screen or a printer).
protected  boolean isCompatiblePlot(Plot plot)
          Checks the compatibility of a plot with this type of axis, returning true if the plot is compatible and false otherwise.
 boolean isVerticalLabel()
          Returns a flag indicating whether or not the axis label is drawn vertically.
 void refreshTicks(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D dataArea, int location)
          Recalculates the ticks for the date axis.
 double reserveWidth(java.awt.Graphics2D g2, Plot plot, java.awt.geom.Rectangle2D drawArea, int location)
          Returns the width required to draw the axis in the specified draw area.
 double reserveWidth(java.awt.Graphics2D g2, Plot plot, java.awt.geom.Rectangle2D plotArea, int location, double reservedHeight, int horizontalAxisLocation)
          Returns area in which the axis will be displayed.
protected  void selectAutoTickUnit(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D drawArea, java.awt.geom.Rectangle2D plotArea)
          Selects an appropriate tick value for the axis.
 void setVerticalLabel(boolean flag)
          Sets a flag indicating whether or not the axis label is drawn vertically.
 double translateDateToJava2D(java.util.Date date, java.awt.geom.Rectangle2D dataArea)
          Translates a date to Java2D coordinates, based on the range displayed by this axis for the specified data area.
 double translateJava2DtoValue(float java2DValue, java.awt.geom.Rectangle2D dataArea)
          Translates the Java2D (vertical) coordinate back to the corresponding data value.
 double translateValueToJava2D(double value, java.awt.geom.Rectangle2D dataArea)
          Translates the data value to the display coordinates (Java 2D User Space) of the chart.
 
Methods inherited from class org.jfree.chart.axis.DateAxis
calculateHighestVisibleTickValue, calculateLowestVisibleTickValue, createStandardDateTickUnits, getAnchorDate, getDateFormatOverride, getMaximumDate, getMinimumDate, getTickUnit, isTickMarksAtStartOfUnit, nextStandardDate, previousStandardDate, setAnchorDate, setAnchorValue, setAxisRange, setDateFormatOverride, setMaximumDate, setMinimumDate, setRange, setRange, setRange, setTickMarksAtStartOfUnit, setTickUnit, setTickUnit
 
Methods inherited from class org.jfree.chart.axis.ValueAxis
centerRange, getAnchorValue, getAutoRangeMinimumSize, getAutoTickIndex, getFixedAutoRange, getLowerMargin, getMaximumAxisValue, getMinimumAxisValue, getRange, getStandardTickUnits, getUpperMargin, isAutoRange, isAutoTickUnitSelection, isInverted, resizeRange, resizeRange, setAnchoredRange, setAnchorValueAttribute, setAutoRange, setAutoRange, setAutoRangeMinimumSize, setAutoRangeMinimumSize, setAutoTickIndex, setAutoTickUnitSelection, setAutoTickUnitSelection, setFixedAutoRange, setInverted, setLowerMargin, setMaximumAxisValue, setMinimumAxisValue, setRangeAboutValue, setRangeAttribute, setStandardTickUnits, setUpperMargin
 
Methods inherited from class org.jfree.chart.axis.Axis
addChangeListener, drawHorizontalLabel, drawVerticalLabel, equals, getFixedDimension, getLabel, getLabelFont, getLabelInsets, getLabelPaint, getMaxTickLabelWidth, getPlot, getTickLabelFont, getTickLabelInsets, getTickLabelPaint, getTickMarkInsideLength, getTickMarkOutsideLength, getTickMarkPaint, getTickMarkStroke, getTicks, isTickLabelsVisible, isTickMarksVisible, isVisible, notifyListeners, removeChangeListener, setFixedDimension, setLabel, setLabelFont, setLabelInsets, setLabelPaint, setPlot, setTickLabelFont, setTickLabelInsets, setTickLabelPaint, setTickLabelsVisible, setTickMarkInsideLength, setTickMarkOutsideLength, setTickMarkPaint, setTickMarkStroke, setTickMarksVisible, setVisible
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VerticalDateAxis

public VerticalDateAxis(java.lang.String label)
Constructs a new date axis, using default attribute values where necessary.

Parameters:
label - the axis label (null permitted).
Method Detail

isVerticalLabel

public boolean isVerticalLabel()
Returns a flag indicating whether or not the axis label is drawn vertically.

Returns:
true or false.

setVerticalLabel

public void setVerticalLabel(boolean flag)
Sets a flag indicating whether or not the axis label is drawn vertically.

If the flag is changed, an AxisChangeEvent is sent to all registered listeners.

Parameters:
flag - the new flag.

configure

public void configure()
Configures the axis to work with the specified plot. If the axis has auto-scaling, then sets the maximum and minimum values.

Specified by:
configure in class Axis

translateDateToJava2D

public double translateDateToJava2D(java.util.Date date,
                                    java.awt.geom.Rectangle2D dataArea)
Translates a date to Java2D coordinates, based on the range displayed by this axis for the specified data area.

Parameters:
date - the date.
dataArea - the rectangle (in Java2D space) where the data is to be plotted.
Returns:
the vertical coordinate corresponding to the supplied date.

translateValueToJava2D

public double translateValueToJava2D(double value,
                                     java.awt.geom.Rectangle2D dataArea)
Translates the data value to the display coordinates (Java 2D User Space) of the chart.

Specified by:
translateValueToJava2D in class ValueAxis
Parameters:
value - the date to be plotted.
dataArea - the rectangle (in Java2D space) where the data is to be plotted.
Returns:
the vertical coordinate corresponding to the supplied data value.

translateJava2DtoValue

public double translateJava2DtoValue(float java2DValue,
                                     java.awt.geom.Rectangle2D dataArea)
Translates the Java2D (vertical) coordinate back to the corresponding data value.

Specified by:
translateJava2DtoValue in class ValueAxis
Parameters:
java2DValue - the coordinate in Java2D space.
dataArea - the rectangle (in Java2D space) where the data is to be plotted.
Returns:
the data value corresponding to the Java2D coordinate.

autoAdjustRange

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

Specified by:
autoAdjustRange in class ValueAxis

refreshTicks

public void refreshTicks(java.awt.Graphics2D g2,
                         java.awt.geom.Rectangle2D plotArea,
                         java.awt.geom.Rectangle2D dataArea,
                         int location)
Recalculates the ticks for the date axis.

Specified by:
refreshTicks in class Axis
Parameters:
g2 - the graphics device.
plotArea - the area in which the plot and the axes should be drawn.
dataArea - the area in which the plot should be drawn.
location - the location of the axis.

draw

public void draw(java.awt.Graphics2D g2,
                 java.awt.geom.Rectangle2D plotArea,
                 java.awt.geom.Rectangle2D dataArea,
                 int location)
Draws the axis on a Java 2D graphics device (such as the screen or a printer).

Specified by:
draw in class Axis
Parameters:
g2 - the graphics device.
plotArea - the area within which the chart should be drawn.
dataArea - the area within which the plot should be drawn (a subset of the drawArea).
location - the axis location.

reserveWidth

public double reserveWidth(java.awt.Graphics2D g2,
                           Plot plot,
                           java.awt.geom.Rectangle2D drawArea,
                           int location)
Returns the width required to draw the axis in the specified draw area.

Specified by:
reserveWidth in interface VerticalAxis
Parameters:
g2 - the graphics device.
plot - a reference to the plot;
drawArea - the area within which the plot should be drawn.
location - the axis location.
Returns:
width required to draw the axis.

reserveWidth

public double reserveWidth(java.awt.Graphics2D g2,
                           Plot plot,
                           java.awt.geom.Rectangle2D plotArea,
                           int location,
                           double reservedHeight,
                           int horizontalAxisLocation)
Returns area in which the axis will be displayed.

Specified by:
reserveWidth in interface VerticalAxis
Parameters:
g2 - the graphics device.
plot - a reference to the plot.
plotArea - the area in which the plot and axes should be drawn.
location - the axis location.
reservedHeight - the height reserved for the horizontal axis.
horizontalAxisLocation - the horizontal axis location.
Returns:
area in which the axis will be displayed.

selectAutoTickUnit

protected void selectAutoTickUnit(java.awt.Graphics2D g2,
                                  java.awt.geom.Rectangle2D drawArea,
                                  java.awt.geom.Rectangle2D plotArea)
Selects an appropriate tick value for the axis. The strategy is to display as many ticks as possible (selected from an array of 'standard' tick units) without the labels overlapping.

Parameters:
g2 - the graphics device.
drawArea - the area in which the plot and axes should be drawn.
plotArea - the area in which the plot should be drawn.

isCompatiblePlot

protected boolean isCompatiblePlot(Plot plot)
Checks the compatibility of a plot with this type of axis, returning true if the plot is compatible and false otherwise.

The VerticalDateAxis class required the plot to implement the VerticalValuePlot interface.

Specified by:
isCompatiblePlot in class Axis
Parameters:
plot - the plot.
Returns:
a boolean indicating whether the plot is compatible with the axis.