com.ijchart.xychart.axis.category
Class GroupCategoryAxis

java.lang.Object
  extended by com.ijchart.xychart.axis.AbstractAxis
      extended by com.ijchart.xychart.axis.category.CategoryAxis
          extended by com.ijchart.xychart.axis.category.GroupCategoryAxis
All Implemented Interfaces:
IAxis, IMarkerChangeListener, java.io.Serializable, java.lang.Cloneable, java.util.EventListener

public class GroupCategoryAxis
extends CategoryAxis
implements IMarkerChangeListener, java.lang.Cloneable, java.io.Serializable

Title: IJChart

Description: a chart library for the Java(tm) platform.

以分组形式显示分类值的坐标值.

Copyright: Copyright (c) 2013

Company:

Version:
1.0
Author:
zhang feng min,shanghai china. Contract me by email.
See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.ijchart.xychart.axis.category.CategoryAxis
acategoryWidth, categoryLabelPosition, DEFAULT_CATEGORY_MARGIN, DEFAULT_HORIZONTAL_ALIGNMENT, DEFAULT_MAX_CATEGORY_LABEL_LINE
 
Fields inherited from class com.ijchart.xychart.axis.AbstractAxis
DEFAULT_3D_AXIS_FILL_PAINT, DEFAULT_AUTO_SELECT_TICK_LABEL_ALIGN, DEFAULT_AXIS_LABEL_FONT, DEFAULT_AXIS_LABEL_INSETS, DEFAULT_AXIS_LABEL_PAINT, DEFAULT_AXIS_LABEL_TYPE, DEFAULT_AXIS_LABEL_VISIBLE, DEFAULT_AXIS_LINE_PAINT, DEFAULT_AXIS_LINE_STROKE, DEFAULT_AXIS_LINE_VISIBLE, DEFAULT_AXIS_MARGIN, DEFAULT_AXIS_VISIBLE, DEFAULT_DRAW_EMPTY_LABEL_TICK_MARK, DEFAULT_FIXED_AXIS_SPACE, DEFAULT_GRID_LINE_VISIBLE, DEFAULT_LABEL_HORIZONTAL_ALIGNMENT, DEFAULT_MAXIMUM_CATEGORY_LABEL_WIDTH_RATIO, DEFAULT_TICK_LABEL_FONT, DEFAULT_TICK_LABEL_HORIZONTAL_ALIGNMENT, DEFAULT_TICK_LABEL_INSETS, DEFAULT_TICK_LABEL_PAINT, DEFAULT_TICK_LABEL_VERTICAL_ALIGNMENT, 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, WIDTH_TICK_MARK_AND_TICK_LABEL
 
Constructor Summary
GroupCategoryAxis(AbstractCategoryRender categoryRender, IMatrixDataset dataset)
          由数据集构造对象.
GroupCategoryAxis(AbstractCategoryRender categoryRender, java.lang.String label, IMatrixDataset dataset)
          由坐标轴标签和数据集构造对象.
 
Method Summary
 void addSubCategoryAxis(CategoryAxis categoryAxis)
          增加一个子坐标轴,并向所有监听器发送AxisChangeEvent事件.
 double calculateAxisSpace(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D maxAxisArea, RectangleEdge edge)
          计算绘制坐标轴所需要的宽度或高度.
 java.lang.Object clone()
          克隆本对象.
 double draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D axisArea, RectangleEdge edge, AxisShapeCollection shapeCollection, boolean alignEdge)
          在图表的plot区域(plotArea)绘制X轴或Y轴.图表中的所有图形存放在shapeCollection集合中.
protected  double drawTickLabel(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D axisArea, RectangleEdge edge, AxisShapeCollection shapeCollection, double cursor)
          绘制坐标轴上的刻度值的标签.
 boolean equals(java.lang.Object obj)
          测试本对象是否和另一个对象相等.
 AbstractCategoryRender getCategoryRender()
          返回分类类型的绘制器.
protected  java.lang.String[] getFormatedTickLabels(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D maxAxisArea, RectangleEdge edge)
          返回格式化后的在坐标轴上显示的刻度值.
 java.util.List getSubCategoryAxes()
          返回子分类坐标轴的集合,此集合不可修改.
 int getSubCategoryAxisCount()
          返回子分类坐标轴的个数.
 int hashCode()
          计算hashcode.
 void removeAllSubCategoryAxes()
          删除所有的子分类坐标轴.
 CategoryAxis removeSubCategoryAxis(int index)
          根据索引删除指定的子分类坐标轴,并向所有监听器发送 AxisChangeEvent事件.
 void setCategoryRender(AbstractCategoryRender categoryRender)
          设置分类类型的绘制器,并向所有监听器发送AxisChangeEvent 事件.
 
Methods inherited from class com.ijchart.xychart.axis.category.CategoryAxis
addCategoryMarker, categoryToJava2D, clearCategoryMarkers, createChartShape, drawGridLine, drawTickMark, getCategoryLabelHorizontalAlignment, getCategoryMargin, getCategoryMarkers, getLabelMaxDrawWidth, getMaximumCategoryLabelLines, markerChanged, removeCategoryMarker, setCategoryLabelHorizontalAlignment, setCategoryMargin, setMaximumCategoryLabelLines
 
Methods inherited from class com.ijchart.xychart.axis.AbstractAxis
addChangeListener, calculateLabelBound, createAxisLabelChartShape, dawAxisLabel, drawAxis3DLine, drawAxisLine, fireAxisChanged, getAxis3DFillPaint, getAxisLabel, getAxisLabelAngle, getAxisLabelFont, getAxisLabelHorizontalAlign, getAxisLabelInsets, getAxisLabelPaint, getAxisLabelType, getAxisLinePaint, getAxisLineStroke, getColKeyFormatter, getDataFormatter, getDataset, getFixedAxisSpace, getLowerMargin, getMaximumCategoryLabelWidthRatio, getRowKeyFormatter, getTickLabelAngle, getTickLabelFont, getTickLabelFont, getTickLabelHorizontalAlign, getTickLabelInsets, getTickLabelLines, getTickLabelPaint, getTickLabelPaint, getTickLabelRotateBound, getTickLabelVerticalAlign, getTickMarkInsideLength, getTickMarkOutsideLength, getTickMarkPaint, getTickMarkStroke, getUpperMargin, hasListener, isAutoSelectTickLabelAlign, isAxisLabelVisible, isAxisLineVisible, isDrawEmptyLabelTickMark, isGridLineVisible, isTickLabelsVisible, isTickMarkVisible, isVisible, notifyListeners, removeAllChangeListener, removeChangeListener, setAutoSelectTickLabelAlign, setAxis3DFillPaint, setAxisLabel, setAxisLabelAngle, setAxisLabelFont, setAxisLabelHorizontalAlign, setAxisLabelInsets, setAxisLabelPaint, setAxisLabelType, setAxisLabelVisible, setAxisLinePaint, setAxisLineStroke, setAxisLineVisible, setColKeyFormatter, setDataFormatter, setDataset, setDrawEmptyLabelTickMark, setFixedAxisSpace, setGridLineVisible, setLowerMargin, setMaximumCategoryLabelWidthRatio, setRowKeyFormatter, setTickLabelAngle, setTickLabelFont, setTickLabelFont, setTickLabelHorizontalAlign, setTickLabelInsets, setTickLabelPaint, setTickLabelPaint, setTickLabelsVisible, setTickLabelVerticalAlign, setTickMarkInsideLength, setTickMarkOutsideLength, setTickMarkPaint, setTickMarkStroke, setTickMarkVisible, setUpperMargin, setVisible
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.ijchart.xychart.listener.IMarkerChangeListener
markerChanged
 

Constructor Detail

GroupCategoryAxis

public GroupCategoryAxis(AbstractCategoryRender categoryRender,
                         IMatrixDataset dataset)
由数据集构造对象.

Parameters:
categoryRender - AbstractCategoryRender 分类类型的绘制器 (不可为null).
dataset - IMatrixDataset 二维矩阵数据集 (不可为null).

GroupCategoryAxis

public GroupCategoryAxis(AbstractCategoryRender categoryRender,
                         java.lang.String label,
                         IMatrixDataset dataset)
由坐标轴标签和数据集构造对象.

Parameters:
categoryRender - AbstractCategoryRender 分类类型的绘制器 (不可为null).
label - 坐标轴标签.
dataset - IMatrixDataset 二维矩阵数据集 (不可为null).
Method Detail

addSubCategoryAxis

public void addSubCategoryAxis(CategoryAxis categoryAxis)
增加一个子坐标轴,并向所有监听器发送AxisChangeEvent事件.

Parameters:
categoryAxis - CategoryAxis 子坐标轴 (可为null).

getSubCategoryAxisCount

public int getSubCategoryAxisCount()
返回子分类坐标轴的个数.

Returns:
int 子分类坐标轴的个数.

getSubCategoryAxes

public java.util.List getSubCategoryAxes()
返回子分类坐标轴的集合,此集合不可修改.

Returns:
List 集合 (不为null).

removeSubCategoryAxis

public CategoryAxis removeSubCategoryAxis(int index)
根据索引删除指定的子分类坐标轴,并向所有监听器发送 AxisChangeEvent事件.

Parameters:
index - int 索引值.
Returns:
CategoryAxis 删除的子坐标轴.

removeAllSubCategoryAxes

public void removeAllSubCategoryAxes()
删除所有的子分类坐标轴.


getCategoryRender

public AbstractCategoryRender getCategoryRender()
返回分类类型的绘制器.

Returns:
AbstractCategoryRender 不为null.

setCategoryRender

public void setCategoryRender(AbstractCategoryRender categoryRender)
设置分类类型的绘制器,并向所有监听器发送AxisChangeEvent 事件.

Parameters:
categoryRender - AbstractCategoryRender

calculateAxisSpace

public double calculateAxisSpace(java.awt.Graphics2D g2,
                                 java.awt.geom.Rectangle2D plotArea,
                                 java.awt.geom.Rectangle2D maxAxisArea,
                                 RectangleEdge edge)
计算绘制坐标轴所需要的宽度或高度.

Specified by:
calculateAxisSpace in interface IAxis
Overrides:
calculateAxisSpace in class AbstractAxis
Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
plotArea - Rectangle2D 图表的plot区域.
maxAxisArea - Rectangle2D 坐标轴的最大区域,肯定小于plotArea.
edge - RectangleEdge 坐标轴的位置.
Returns:
double 宽度或高度.

draw

public double draw(java.awt.Graphics2D g2,
                   java.awt.geom.Rectangle2D plotArea,
                   java.awt.geom.Rectangle2D axisArea,
                   RectangleEdge edge,
                   AxisShapeCollection shapeCollection,
                   boolean alignEdge)
在图表的plot区域(plotArea)绘制X轴或Y轴.图表中的所有图形存放在shapeCollection集合中.

Specified by:
draw in interface IAxis
Overrides:
draw in class AbstractAxis
Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
plotArea - Rectangle2D 图表的plot区域.
axisArea - Rectangle2D 剩余的空白区域.
edge - RectangleEdge 坐标轴的位置.
shapeCollection - AxisShapeCollection 坐标轴图形集合.
alignEdge - boolean 本标志控制如果实际绘制区域小于坐标轴区域,是否自动靠边界.
Returns:
double 轴实际绘制的宽度或高度.

drawTickLabel

protected double drawTickLabel(java.awt.Graphics2D g2,
                               java.awt.geom.Rectangle2D plotArea,
                               java.awt.geom.Rectangle2D axisArea,
                               RectangleEdge edge,
                               AxisShapeCollection shapeCollection,
                               double cursor)
绘制坐标轴上的刻度值的标签.

Overrides:
drawTickLabel in class CategoryAxis
Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
plotArea - Rectangle2D 图表的plot区域.
axisArea - Rectangle2D 剩余的空白区域.
edge - RectangleEdge 坐标轴的位置.
shapeCollection - AxisShapeCollection 坐标轴图形集合.
cursor - 光标的位置.
Returns:
double 绘制完坐标轴刻度值后光标的位置.

getFormatedTickLabels

protected java.lang.String[] getFormatedTickLabels(java.awt.Graphics2D g2,
                                                   java.awt.geom.Rectangle2D maxAxisArea,
                                                   RectangleEdge edge)
返回格式化后的在坐标轴上显示的刻度值.

Overrides:
getFormatedTickLabels in class CategoryAxis
Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕),可为null.
maxAxisArea - Rectangle2D 坐标轴的最大区域,肯定小于plotArea (可为null).
edge - RectangleEdge 坐标轴的位置 (可为null).
Returns:
String[] 刻度值数组.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
克隆本对象.

Overrides:
clone in class CategoryAxis
Returns:
A clone.
Throws:
java.lang.CloneNotSupportedException - if some component of the axis does not support cloning.

equals

public boolean equals(java.lang.Object obj)
测试本对象是否和另一个对象相等.

Overrides:
equals in class CategoryAxis
Parameters:
obj - 要测试的对象 (可为null).
Returns:
A boolean.

hashCode

public int hashCode()
计算hashcode.

Overrides:
hashCode in class CategoryAxis
Returns:
hashcode.