com.jinsight.jetchart
Class RadarGraph

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Panel
              extended bycom.jinsight.jetchart.GradientPanel
                  extended bycom.jinsight.jetchart.GenericGraph
                      extended bycom.jinsight.jetchart.RadarGraph
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class RadarGraph
extends GenericGraph

A radar graph is used to simultaneously display many variables associated with different conditions being analysed. A radial axis starting at the center of a circular area is shown for each variable displayed, and for each condition under analysis points are plotted against scales placed along all radial axis.
fompare the conditions depicted by the radar graph.
A sequence of data points displayed in a radar graph is a radar series, which is represented by the class RadarSerie. This abstract class is extended to provide the functionalities of more specialized series.

See Also:
RadarSerie, Serialized Form

Nested Class Summary
 
Nested classes inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class com.jinsight.jetchart.GenericGraph
CENTER, TILE, TOP_LEFT
 
Fields inherited from class com.jinsight.jetchart.GradientPanel
BOTTOM_TO_TOP, LEFT_TO_RIGHT, RIGHT_TO_LEFT, TOP_TO_BOTTOM
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
RadarGraph()
          Creates a RadarGraph object.
 
Method Summary
 void addScale(RadarScale scale)
          Adds a RadarScale object to the chart context.
protected  void finalize()
           
 RadarGrid getGrid()
          Returns a reference to the RadarGrid object.
 RadarGraphEventListener getRadarGraphEventListener()
          Returns a reference to a RadarGraphEventListener object.
 RadarScale getScale(int scaleIndex)
          Gets a reference to a RadarScale object previously added to the chart context.
 int getScalesCount()
          Returns the number of RadarScale objects added to the chart context.
 void paint(java.awt.Graphics gr)
          Overrides the Component class paint() method to provide gradient effect.
 void readXMLData(java.io.Reader reader)
          Reads chart properties from an xml character stream.
 void removeAllScales()
          Removes all RadarScale objects previously added to the chart context.
 void removeScale(RadarScale scale)
          Removes a RadarScale object previously added to the chart context.
 void setAngleOffset(int angleOffset)
          Sets the angle offset in degrees to rotate radar chart counterclockwise.
 void setAxisColor(java.awt.Color axisColor)
          Sets the color of all radial axis.
 void setAxisColors(java.awt.Color[] axisColors)
          Sets the colors to be individually assigned to each radial axis.
 void setAxisTitles(java.lang.String[] axisTitles)
          Sets the titles to be individually assigned to each scale axis.
 void setAxisTitlesBackground(java.awt.Color axisTitlesBackground)
          Sets the background color of opaque axis titles.
 void setAxisTitlesFont(java.awt.Font axisTitlesFont)
          Sets the font of the axis titles.
 void setAxisTitlesForeground(java.awt.Color axisTitlesForeground)
          Sets the color of the axis titles.
 void setAxisTitlesGap(int axisTitlesGap)
          Sets the gap between the axis titles and the scale axis.
 void setAxisTitlesOpacityEnabled(boolean isAxisTitlesOpacityEnabled)
          Enables/disables the opacity of axis titles' backgrounds.
 void setBorderColor(java.awt.Color borderColor)
          Sets the border color of the radar chart.
 void setBorderEnabled(boolean isBorderEnabled)
          Enables/disables the border around the radar chart area.
 void setCenterGap(int centerGap)
          Sets the gap in pixels between the radar center and the start point of each scale axis.
 void setCenterGapColor(java.awt.Color centerGapColor)
          Sets a color to paint the center gap.
 void setFillingColor(java.awt.Color fillingColor)
          Sets the filling color of the radar chart.
 void update(java.awt.Graphics gr)
          Overrides the Component class update() method, to avoid flickering.
 
Methods inherited from class com.jinsight.jetchart.GenericGraph
addLegend, addNote, addSerie, addSerieListener, getBottomTitle, getLeftTitle, getLegend, getLegend, getRightTitle, getSeries, getToolTip, isPainted, processMouseEvent, processMouseMotionEvent, refresh, removeAllNotes, removeAllSeries, removeLegend, removeNote, removeSerie, removeSerieListener, set3DEnabled, setBackgroundImage, setBorderThickness, setBottomMargin, setBufferedImageEnabled, setConnection, setDefaultCursor, setDraggingBoxColor, setDraggingEnabled, setDriver, setLabelsQuery, setLeftMargin, setLegendEnabled, setOffScreenGraphEnabled, setRightMargin, setTitle, setTitleFont, setTitleForeground, setTitleGap, setTopMargin, setValueFormat
 
Methods inherited from class com.jinsight.jetchart.GradientPanel
setGradientColors, setGradientOrientation
 
Methods inherited from class java.awt.Panel
addNotify, getAccessibleContext
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RadarGraph

public RadarGraph()
Creates a RadarGraph object. Default constructor.

Method Detail

addScale

public void addScale(RadarScale scale)
Adds a RadarScale object to the chart context. For each scale added a new radial axis is created, starting counterclockwise from the 90 degrees position.

Parameters:
scale - A RadarScale object.
See Also:
RadarScale, removeScale(com.jinsight.jetchart.RadarScale), removeAllScales(), getScale(int)

removeScale

public void removeScale(RadarScale scale)
Removes a RadarScale object previously added to the chart context.

Parameters:
scale - A RadarScale object.
See Also:
RadarScale, addScale(com.jinsight.jetchart.RadarScale), removeAllScales(), getScale(int)

removeAllScales

public void removeAllScales()
Removes all RadarScale objects previously added to the chart context.

See Also:
RadarScale, addScale(com.jinsight.jetchart.RadarScale), removeScale(com.jinsight.jetchart.RadarScale), getScale(int)

getScale

public RadarScale getScale(int scaleIndex)
Gets a reference to a RadarScale object previously added to the chart context. The index '0' corresponds to the first scale, displayed along the 90 degrees radial axis. Subsequent indexes correspond to scales placed counterclockwise after the 90 degrees radial axis.

Parameters:
scaleIndex - An integer number.
Returns:
A RadarScale object.
See Also:
RadarScale, addScale(com.jinsight.jetchart.RadarScale), removeScale(com.jinsight.jetchart.RadarScale), removeAllScales()

getScalesCount

public int getScalesCount()
Returns the number of RadarScale objects added to the chart context.

Returns:
An integer number.
See Also:
RadarScale, addScale(com.jinsight.jetchart.RadarScale), removeScale(com.jinsight.jetchart.RadarScale), removeAllScales(), getScale(int)

setAxisColor

public void setAxisColor(java.awt.Color axisColor)
Sets the color of all radial axis. Default color is Color.black.

Parameters:
axisColor - A Color object.
See Also:
setAxisColors(java.awt.Color[])

setAxisColors

public void setAxisColors(java.awt.Color[] axisColors)
Sets the colors to be individually assigned to each radial axis. The colors are assigned counterclockwise, starting with the 90 degrees axis. If the colors array length is smaller than the number of radial axis, the remaining axis are painted either in black or the color informed with the method setColor.

Parameters:
axisColors - An array of Color objects.
See Also:
setAxisColor(java.awt.Color)

setFillingColor

public void setFillingColor(java.awt.Color fillingColor)
Sets the filling color of the radar chart. Default color is Color.gray.

Parameters:
fillingColor - A Color object.

setBorderColor

public void setBorderColor(java.awt.Color borderColor)
Sets the border color of the radar chart. Default color is Color.gray.

Overrides:
setBorderColor in class GenericGraph
Parameters:
borderColor - A Color object.
See Also:
setBorderEnabled(boolean)

setBorderEnabled

public void setBorderEnabled(boolean isBorderEnabled)
Enables/disables the border around the radar chart area. The border is disabled by default.

Overrides:
setBorderEnabled in class GenericGraph
Parameters:
isBorderEnabled - A boolean value(true/false).
See Also:
setBorderColor(java.awt.Color)

setAxisTitles

public void setAxisTitles(java.lang.String[] axisTitles)
Sets the titles to be individually assigned to each scale axis. The titles are displayed counterclockwise and outside the radar chart area, starting with the 90 degrees axis.
A title supports multiple lines by inserting '\n' characters where the text must be wrapped.

Parameters:
axisTitles - An array of String objects.
See Also:
setAxisTitlesForeground(java.awt.Color), setAxisTitlesBackground(java.awt.Color), setAxisTitlesOpacityEnabled(boolean), setAxisTitlesGap(int), setAxisTitlesFont(java.awt.Font)

setAxisTitlesForeground

public void setAxisTitlesForeground(java.awt.Color axisTitlesForeground)
Sets the color of the axis titles. Default color is black.

Parameters:
axisTitlesForeground - A Color object
See Also:
setAxisTitles(java.lang.String[]), setAxisTitlesBackground(java.awt.Color), setAxisTitlesOpacityEnabled(boolean), setAxisTitlesGap(int), setAxisTitlesFont(java.awt.Font)

setAxisTitlesBackground

public void setAxisTitlesBackground(java.awt.Color axisTitlesBackground)
Sets the background color of opaque axis titles. The background color is only painted if the opacity of axis titles is enabled. Default color is white.

Parameters:
axisTitlesBackground - A Color object
See Also:
setAxisTitlesForeground(java.awt.Color), setAxisTitles(java.lang.String[]), setAxisTitlesOpacityEnabled(boolean), setAxisTitlesGap(int), setAxisTitlesFont(java.awt.Font)

setAxisTitlesOpacityEnabled

public void setAxisTitlesOpacityEnabled(boolean isAxisTitlesOpacityEnabled)
Enables/disables the opacity of axis titles' backgrounds. Default value is false, all axis titles' backgrounds are transparent.

Parameters:
isAxisTitlesOpacityEnabled - A boolean value(true/false)
See Also:
setAxisTitles(java.lang.String[]), setAxisTitlesForeground(java.awt.Color), setAxisTitlesBackground(java.awt.Color), setAxisTitlesGap(int), setAxisTitlesFont(java.awt.Font)

setAxisTitlesGap

public void setAxisTitlesGap(int axisTitlesGap)
Sets the gap between the axis titles and the scale axis. Default gap is 5 pixels.

Parameters:
axisTitlesGap - An integer number.
See Also:
setAxisTitles(java.lang.String[]), setAxisTitlesOpacityEnabled(boolean), setAxisTitlesForeground(java.awt.Color), setAxisTitlesBackground(java.awt.Color), setAxisTitlesFont(java.awt.Font)

setAxisTitlesFont

public void setAxisTitlesFont(java.awt.Font axisTitlesFont)
Sets the font of the axis titles. Default font is SansSerif,BOLD,10.

Parameters:
axisTitlesFont - A Font object.
See Also:
setAxisTitles(java.lang.String[]), setAxisTitlesGap(int), setAxisTitlesOpacityEnabled(boolean), setAxisTitlesForeground(java.awt.Color), setAxisTitlesBackground(java.awt.Color), setAxisTitlesFont(java.awt.Font)

setAngleOffset

public void setAngleOffset(int angleOffset)
Sets the angle offset in degrees to rotate radar chart counterclockwise. Default value is zero.

Parameters:
angleOffset - An integer value

setCenterGap

public void setCenterGap(int centerGap)
Sets the gap in pixels between the radar center and the start point of each scale axis. Default value is zero.

Parameters:
centerGap -

setCenterGapColor

public void setCenterGapColor(java.awt.Color centerGapColor)
Sets a color to paint the center gap.

Parameters:
centerGapColor - A Color object.
See Also:
setCenterGap(int)

getGrid

public RadarGrid getGrid()
Returns a reference to the RadarGrid object.

Returns:
A RadarGrid object.
See Also:
RadarGrid

getRadarGraphEventListener

public RadarGraphEventListener getRadarGraphEventListener()
Returns a reference to a RadarGraphEventListener object. This object is created and owned by a RadarGraph instance, and implements both MouseListener and MouseMotionListener interfaces to handle mouse events fired by the RadarGraph class.

See Also:
RadarGraphEventListener

readXMLData

public void readXMLData(java.io.Reader reader)
                 throws java.io.IOException
Description copied from class: GenericGraph
Reads chart properties from an xml character stream. The incoming data must follow some rules regarding the xml elements to be parsed. Currently, only chart labels and series values are supported. Future versions of JetChart will support a complete set of xml elements to specify all chart properties. The structure of the xml character stream is the following:

<chart>
  <labels>
     l1
     l2
     l3
     l4

  </labels>
  <series id="1">
    <values>
       80
       100
       70
       60

    </values>
  </series>
  <series id="2">
    <multiplevalues qty="4" delimiter="|">
       10|20|15|35
       22|38|12|40
       17|50|20|13
       25|14|38|55

    </multiplevalues>
  </series>
</chart>

In the xml sequence above, we can see the following xml elements and attributes:

<chart> - This is the root element, and it must be closed at the end of the xml file.

<labels> - Used to list textual data representing the chart labels.

<series> - Encloses the properties of a series. The id attribute is used to identify the series within the chart context. It is compared with the value returned by the AbstractSerie.getId() method, and if they match, the properties read from this xml file are assigned to the identified series.

<values> - Used to list textual data representing a series values.

<multiplevalues> - Used to set values of series that display data points associated with multiple values, like ohlc series, for example. The qty attribute is mandatory, and it is used to set the exact number of values expected from each line listed within the <multiplevalues> tag. The delimiter attribute is optional. It is used by the xml parser to tokenize values. If not informed, a space character is used.

Every opened xml element must be closed, otherwise the xml parser raises an exception.

Overrides:
readXMLData in class GenericGraph
Parameters:
reader - The reader from which to retrieve the XML data.
Throws:
java.io.IOException - If an error occured while reading the input.
See Also:
AbstractSerie.getId()

update

public void update(java.awt.Graphics gr)
Overrides the Component class update() method, to avoid flickering.

Parameters:
gr - A Graphics object, where painting is done. This object is automatically created by the AWT classes and passed to the update() method, which in turn sends it to the paint() method.
See Also:
paint(java.awt.Graphics)

paint

public void paint(java.awt.Graphics gr)
Description copied from class: GradientPanel
Overrides the Component class paint() method to provide gradient effect.

Overrides:
paint in class GradientPanel
Parameters:
gr - A Graphics object.

finalize

protected void finalize()
                 throws java.lang.Throwable
Overrides:
finalize in class GenericGraph
Throws:
java.lang.Throwable