com.davisor.graphics.chart
Class GridFactory

java.lang.Object
  extended bycom.davisor.graphics.chart.ChartFactory
      extended bycom.davisor.graphics.chart.AxisFactory
          extended bycom.davisor.graphics.chart.GridFactory
All Implemented Interfaces:
com.davisor.core.Dupable, com.davisor.core.MIMETypes, com.davisor.core.Public
Direct Known Subclasses:
HexGridFactory, RectGridFactory

public abstract class GridFactory
extends AxisFactory

Abstract base class for grid based axis charts.

Additional values available for macros include:

Since:
JDK1.2

Nested Class Summary
 
Nested classes inherited from class com.davisor.graphics.chart.AxisFactory
AxisFactory.AxisContext, AxisFactory.AxisMetrics
 
Nested classes inherited from class com.davisor.graphics.chart.ChartFactory
ChartFactory.ChartContext, ChartFactory.ChartMetrics
 
Field Summary
 
Fields inherited from class com.davisor.graphics.chart.AxisFactory
DEFAULTLABELTYPE, FLIPX, FLIPY, MAJORMARGIN, MINORMARGIN, MINSIZE
 
Fields inherited from class com.davisor.graphics.chart.ChartFactory
ALL, BRIGHT, CHANNEL, COS, DARK, DOTSEQUENCE, DOTSTROKE, DOTSTROKEWIDTH, DUMPFACTORYNAME, ENCODERINFO, FONT, FRC, HAS_3D, I, LABEL, LABELFIELDNAMES, LABELFIELDS, MIME_DEFAULT, NONE, NORMAL, NULLSTROKE, PERCENT, PI2, SHAPE, SIN, STROKE, STROKEWIDTH, TIC, VALUE, X, Y, Z
 
Fields inherited from interface com.davisor.core.MIMETypes
FILETYPE_BMP, FILETYPE_CSS, FILETYPE_DOC, FILETYPE_ECMA, FILETYPE_GIF, FILETYPE_HTML, FILETYPE_HTML_CSS, FILETYPE_INDEX, FILETYPE_INDEX_DOC, FILETYPE_INDEX_HTML, FILETYPE_INDEX_HTML_CSS, FILETYPE_INDEX_PDF, FILETYPE_INDEX_PPT, FILETYPE_INDEX_SVG, FILETYPE_INDEX_XHTML, FILETYPE_INDEX_XLS, FILETYPE_INDEX_XMSE, FILETYPE_INDEX_XMSP, FILETYPE_INDEX_XMSW, FILETYPE_INDEX_XSLFO, FILETYPE_JPEG, FILETYPE_PDF, FILETYPE_PNG, FILETYPE_PNG_WBMP, FILETYPE_PPM, FILETYPE_PPT, FILETYPE_SVG, FILETYPE_TEXT, FILETYPE_WBMP, FILETYPE_XHTML, FILETYPE_XLS, FILETYPE_XML, FILETYPE_XMSE, FILETYPE_XMSP, FILETYPE_XMSW, FILETYPE_XSLFO, FILETYPE_XSLFO_CSS, MIME_BMP, MIME_CSS, MIME_DOC, MIME_ECMA, MIME_GIF, MIME_HTML, MIME_HTML_CSS, MIME_INDEX, MIME_INDEX_DOC, MIME_INDEX_HTML, MIME_INDEX_HTML_CSS, MIME_INDEX_PDF, MIME_INDEX_PPT, MIME_INDEX_SVG, MIME_INDEX_XHTML, MIME_INDEX_XLS, MIME_INDEX_XMSE, MIME_INDEX_XMSP, MIME_INDEX_XMSW, MIME_INDEX_XSLFO, MIME_JPEG, MIME_OTHER, MIME_PDF, MIME_PNG, MIME_PNG_WBMP, MIME_PPM, MIME_PPT, MIME_SVG, MIME_TEXT, MIME_WBMP, MIME_XHTML, MIME_XLS, MIME_XML, MIME_XMSE, MIME_XMSP, MIME_XMSW, MIME_XSLFO, MIME_XSLFO_CSS
 
Constructor Summary
GridFactory()
          Default constructor.
GridFactory(GridFactory factory)
          Copy constructor.
 
Method Summary
protected abstract  java.awt.Shape createCellShape(java.awt.geom.Rectangle2D drawingArea, int[] steps, int level)
          Creates a new grid element shape object scaled to fill a cell of given size.
protected  void drawCells(java.awt.Graphics2D g, java.awt.geom.Rectangle2D drawingArea, int[] steps, java.awt.Paint[] cellPaint, java.awt.Stroke cellStroke, java.awt.Paint cellColor, java.awt.Paint pointColor, java.awt.Paint pointPaint, java.awt.Stroke pointStroke, java.awt.Shape pointShape, int level)
          Draws grid cells.
 Chart drawChart(AxisFactory.AxisContext context, AxisFactory.AxisMetrics metrics, ChartAxes axes, boolean fillGrid, boolean drawAxes, boolean drawLabel, boolean drawGrid, Chart chart)
          Creates a grid chart.
protected  Chart drawChart(AxisFactory.AxisContext context, AxisFactory.AxisMetrics metrics, ChartAxes axes, boolean fillGrid, boolean drawAxes, boolean drawLabel, boolean drawGrid, Chart chart, int[] steps, int level)
          Creates a grid chart.
protected  void drawLabels(java.awt.Graphics2D g, java.awt.geom.Rectangle2D drawingArea, int[] steps, EnumType labelType, java.awt.Font font, java.awt.Paint color, java.awt.Paint paint, int level, AxisFactory.AxisMetrics metrics)
          Draw grid cell labels.
protected abstract  java.awt.geom.Point2D getCellPoint(int x, int y, java.awt.geom.Rectangle2D drawingArea, int[] steps, int level)
          Computes the centermost point of a cell [x,y].
protected  float[] getIdealSize(ChartAxes axes, int elements, int channels, float[] labelOffsets, float[][] titleSizes, float[][] labelSizes, float[][] markerSizes, float[] markerOffsets)
          Computes grid factory specific suggested ideal size for a chart.
protected  DataValue[][] resolveLimits(ChartDataSummary summary)
          Computes chart factory specific axis limit values.
 
Methods inherited from class com.davisor.graphics.chart.AxisFactory
computeMinorMargin, createChart, createChart, createContext, createContext, createContext, createContext, createMetrics, createMetrics, createMetrics, createMetrics, drawAxis, drawMarkers, drawTics, drawXYAxes, drawXYZAxes, fillGrid, fillMarkers, formatDouble, getIdealSize, hasGridLines, isSilent, labelAxis, labelMarkers, resolveLabels, resolveLabels, resolveMarkerSizes, resolveOverlap, titleAxis, transpose
 
Methods inherited from class com.davisor.graphics.chart.ChartFactory
annotate, combineProperties, createChannelType, createChannelType, createChart, createChart, createChart, createChart, createChart, createFormat, createPaintChannelType, createPaintChannelType, createShapeChannelType, createShapeChannelType, createSummary, drawLabel, getContentType, getDefaultPaint, getFactory, getFactory, getGroup, getIsometricCoefficients, getLegendShape, getName, has3D, hasSVG, isClassAvailable, isMultiSeriesMode, main, mayHaveLegend, registerFactory, resolveDataLimits, resolveDataLimits, rotateSize, shade, unregisterFactory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.davisor.core.Dupable
dup
 

Constructor Detail

GridFactory

public GridFactory()
Default constructor.


GridFactory

public GridFactory(GridFactory factory)
Copy constructor.

Method Detail

drawChart

public Chart drawChart(AxisFactory.AxisContext context,
                       AxisFactory.AxisMetrics metrics,
                       ChartAxes axes,
                       boolean fillGrid,
                       boolean drawAxes,
                       boolean drawLabel,
                       boolean drawGrid,
                       Chart chart)
                throws InvalidDataException
Creates a grid chart.

Overrides:
drawChart in class AxisFactory
Parameters:
context - chart context
metrics - chart metrics
axes - chart axes
fillGrid - enables or disables axis background filling
drawAxes - determine which axes may be drawn
drawLabel - determine if default labeling is to be applied
drawGrid - determine if axis grid is to be drawn
chart - chart to draw into
Throws:
InvalidDataException - if data is invalid for chart drawing

getIdealSize

protected float[] getIdealSize(ChartAxes axes,
                               int elements,
                               int channels,
                               float[] labelOffsets,
                               float[][] titleSizes,
                               float[][] labelSizes,
                               float[][] markerSizes,
                               float[] markerOffsets)
Computes grid factory specific suggested ideal size for a chart. Ideal size takes into account number of steps logarithmically.

Overrides:
getIdealSize in class AxisFactory
Parameters:
axes - axis attributes (steps are taken from here)
elements - the expected number of data element groups (ignored)
channels - the expected number of data channels (ignored)
labelOffsets - axis label offsets ([x,y,z]) (ignored)
titleSizes - axis title sizes ([x,y][w,h])(ignored)
labelSizes - axis label sizes ([x,y][w,h,m]) (ignored)
Returns:
suggested ideal chart width and height ([w,h])
See Also:
AxisFactory.getIdealSize(ChartAxes,float[],float[], float[][],float[][],float[][],float[]), AxisFactory.AxisMetrics

resolveLimits

protected DataValue[][] resolveLimits(ChartDataSummary summary)
Computes chart factory specific axis limit values.

Grid chart axis limits do not depend on data, but explicitly given axis limits. This method will therefore always return zero integer limit values.

Specified by:
resolveLimits in class AxisFactory
Parameters:
summary - chart data summary
Returns:
zero integer limit values
See Also:
ChartAxis.computeValues(com.davisor.data.DataValue[]), ChartFactory.createSummary(com.davisor.graphics.chart.ChartData, com.davisor.graphics.chart.ChartAttributes, com.davisor.graphics.chart.ChartAxes, com.davisor.graphics.chart.PlotRenderAttributes, com.davisor.data.EnumType, int[], boolean, int[])

createCellShape

protected abstract java.awt.Shape createCellShape(java.awt.geom.Rectangle2D drawingArea,
                                                  int[] steps,
                                                  int level)
Creates a new grid element shape object scaled to fill a cell of given size.

Parameters:
drawingArea - area where cells will be drawn
steps - number of cell layers
level - zooming level

drawCells

protected void drawCells(java.awt.Graphics2D g,
                         java.awt.geom.Rectangle2D drawingArea,
                         int[] steps,
                         java.awt.Paint[] cellPaint,
                         java.awt.Stroke cellStroke,
                         java.awt.Paint cellColor,
                         java.awt.Paint pointColor,
                         java.awt.Paint pointPaint,
                         java.awt.Stroke pointStroke,
                         java.awt.Shape pointShape,
                         int level)
Draws grid cells.


drawChart

protected Chart drawChart(AxisFactory.AxisContext context,
                          AxisFactory.AxisMetrics metrics,
                          ChartAxes axes,
                          boolean fillGrid,
                          boolean drawAxes,
                          boolean drawLabel,
                          boolean drawGrid,
                          Chart chart,
                          int[] steps,
                          int level)
                   throws InvalidDataException
Creates a grid chart.

Parameters:
context - chart context
metrics - chart metrics
axes - chart axes
fillGrid - enables or disables axis background filling
drawAxes - determine which axes may be drawn
drawLabel - determine if default labeling is to be applied
drawGrid - determine if axis grid is to be drawn
chart - chart to draw into
steps - number of grid elements
level - grid zoom level
Throws:
InvalidDataException - if data is invalid for chart drawing

drawLabels

protected void drawLabels(java.awt.Graphics2D g,
                          java.awt.geom.Rectangle2D drawingArea,
                          int[] steps,
                          EnumType labelType,
                          java.awt.Font font,
                          java.awt.Paint color,
                          java.awt.Paint paint,
                          int level,
                          AxisFactory.AxisMetrics metrics)
Draw grid cell labels.


getCellPoint

protected abstract java.awt.geom.Point2D getCellPoint(int x,
                                                      int y,
                                                      java.awt.geom.Rectangle2D drawingArea,
                                                      int[] steps,
                                                      int level)
Computes the centermost point of a cell [x,y].

Parameters:
x - cell x coordinate
y - cell y coordinate
drawingArea - are where cells will be drawn
steps - number of cell layers
level - zooming level


Copyright © 2001-2004 Davisor Oy. All Rights Reserved.