com.approximatrix.charting.swing
Class AbstractChartPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.approximatrix.charting.swing.AbstractChartPanel
All Implemented Interfaces:
Chart, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.print.Printable, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
Direct Known Subclasses:
BufferedChartPanel, ChartPanel, ExtendedChartPanel

public abstract class AbstractChartPanel
extends javax.swing.JPanel
implements Chart, java.awt.event.MouseMotionListener, java.awt.event.MouseListener, java.awt.print.Printable

AbstractChartPanel provides an abstracted class for handling the variety of Swing chart components that may be required. This class itself implements almost all of the required bethods for a complete charting panel for completeness, but is of little use alone.

Author:
armstrong
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  AbstractChart chart
          The chart instance to which all method calls are promoted.
static int NO_SUCH_PAGE
          Constant stating page does not exist for printing
static int PAGE_EXISTS
          Constant stating page exists for printing
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
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
AbstractChartPanel()
           
 
Method Summary
 void addChartRenderer(AbstractChartRenderer renderer, int z)
          Adds a ChartRenderer with a specific z-coordinate.
 java.awt.Rectangle getBounds()
          Returns the Bounds for the ChartPanel.
 ChartDataModel getChartDataModel()
          Returns the ChartDataModel.
 java.util.Map<java.lang.Integer,AbstractChartRenderer> getChartRenderer()
          Returns the Map of all ChartRenderers.
 AbstractChartRenderer getChartRenderer(int z)
          Returns the ChartRenderer with a specific z-coordinate.
 CoordSystem getCoordSystem()
          Returns the coordinate system.
 Legend getLegend()
          Returns this chart's legend.
 java.awt.Dimension getPreferredSize()
          Computes the preferred size of the AbstractChartPanel.
 RowColorModel getRowColorModel()
          Returns the default RowColorModel used by the chart
 Title getTitle()
          Returns the title for this chart.
 void mouseClicked(java.awt.event.MouseEvent e)
          Registers a mouse clicked event (unused - for interface compatibility only)
 void mouseDragged(java.awt.event.MouseEvent e)
          Registers a mouse dragged event (unused - for interface compatibility only)
 void mouseEntered(java.awt.event.MouseEvent e)
          Registers a mouse entered event (unused - for interface compatibility only)
 void mouseExited(java.awt.event.MouseEvent e)
          Registers a mouse exited event (unused - for interface compatibility only)
 void mouseMoved(java.awt.event.MouseEvent e)
          Registers a mouse moved event (unused - for interface compatibility only)
 void mousePressed(java.awt.event.MouseEvent e)
          Registers the first press of a mouse button (unused - for interface compatibility only)
 void mouseReleased(java.awt.event.MouseEvent e)
          Registers the release of the mouse button (unused - for interface compatibility only)
 void paint(java.awt.Graphics graphics)
          Paints the ChartPanel.
 int print(java.awt.Graphics g, java.awt.print.PageFormat pf, int page)
          Implements the Printable print interface.
 void render(java.awt.Graphics2D g)
          Does the layout of the title, legend and coordinate system and calls the render method of all those including the ChartRenderers.
 void setBounds(java.awt.Rectangle r)
          Sets the Bounds for this Chart.
 void setChartDataModel(ChartDataModel model)
          Stores the ChartDataModel for this Chart.
 void setChartRenderer(java.util.Map renderer)
          Sets the Map with all ChartRenderers.
 void setCoordSystem(CoordSystem c)
          Sets the coordinate system for this chart, which can be null if the ChartRenderer doesn't need a coordinate system, e.g.
 void setLegend(Legend l)
          Sets the legend for this chart.
 void setRowColorModel(RowColorModel rcm)
          Sets the chart's default row color model
 void setTitle(Title t)
          Sets the title for this chart.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PAGE_EXISTS

public static final int PAGE_EXISTS
Constant stating page exists for printing

See Also:
Constant Field Values

NO_SUCH_PAGE

public static final int NO_SUCH_PAGE
Constant stating page does not exist for printing

See Also:
Constant Field Values

chart

protected AbstractChart chart
The chart instance to which all method calls are promoted.

Constructor Detail

AbstractChartPanel

public AbstractChartPanel()
Method Detail

addChartRenderer

public void addChartRenderer(AbstractChartRenderer renderer,
                             int z)
Adds a ChartRenderer with a specific z-coordinate.

Specified by:
addChartRenderer in interface Chart
Parameters:
renderer - the ChartRenderer
z - its z-coordinate.

getBounds

public java.awt.Rectangle getBounds()
Returns the Bounds for the ChartPanel.

Specified by:
getBounds in interface Chart
Overrides:
getBounds in class java.awt.Component
Returns:
the bounds

getChartDataModel

public ChartDataModel getChartDataModel()
Returns the ChartDataModel.

Specified by:
getChartDataModel in interface Chart
Returns:
the ChartDataModel

getChartRenderer

public java.util.Map<java.lang.Integer,AbstractChartRenderer> getChartRenderer()
Returns the Map of all ChartRenderers.

Specified by:
getChartRenderer in interface Chart
Returns:
the Map of Renderers.

getChartRenderer

public AbstractChartRenderer getChartRenderer(int z)
Returns the ChartRenderer with a specific z-coordinate.

Specified by:
getChartRenderer in interface Chart
Parameters:
z - the z-coordinate of the desired ChartRenderer.
Returns:
the ChartRenderer or null if none has been found.

getCoordSystem

public CoordSystem getCoordSystem()
Returns the coordinate system.

Specified by:
getCoordSystem in interface Chart
Returns:
the Coordinate System for the Chart. Could be null.

getLegend

public Legend getLegend()
Returns this chart's legend.

Specified by:
getLegend in interface Chart
Returns:
the Legend for this Chart. Could be null.

getTitle

public Title getTitle()
Returns the title for this chart.

Specified by:
getTitle in interface Chart
Returns:
this Chart's Title. Could be null.

setBounds

public void setBounds(java.awt.Rectangle r)
Sets the Bounds for this Chart.

Specified by:
setBounds in interface Chart
Overrides:
setBounds in class java.awt.Component
Parameters:
r - the Rectangle object defining the bounds

setChartDataModel

public void setChartDataModel(ChartDataModel model)
Stores the ChartDataModel for this Chart.

Specified by:
setChartDataModel in interface Chart
Parameters:
model - the ChartDataModel

setChartRenderer

public void setChartRenderer(java.util.Map renderer)
Sets the Map with all ChartRenderers. The keys have to be the z-coordinates of the ChartRenderers.

Specified by:
setChartRenderer in interface Chart
Parameters:
renderer - The Map of ChartRenderers.

setCoordSystem

public void setCoordSystem(CoordSystem c)
Sets the coordinate system for this chart, which can be null if the ChartRenderer doesn't need a coordinate system, e.g. if it's a PieChart.

Specified by:
setCoordSystem in interface Chart
Parameters:
c - The Coordinate System for the Chart.

setLegend

public void setLegend(Legend l)
Sets the legend for this chart.

Specified by:
setLegend in interface Chart
Parameters:
l - The Legend this Chart contains.

setTitle

public void setTitle(Title t)
Sets the title for this chart.

Specified by:
setTitle in interface Chart
Parameters:
t - This Chart's Title.

getPreferredSize

public java.awt.Dimension getPreferredSize()
Computes the preferred size of the AbstractChartPanel.

Overrides:
getPreferredSize in class javax.swing.JComponent
Returns:
new java.awt.Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)

paint

public void paint(java.awt.Graphics graphics)
Paints the ChartPanel. Calls chart.render((Graphics2D)graphics)

Overrides:
paint in class javax.swing.JComponent
Parameters:
graphics - the Graphics2D object to paint in

render

public void render(java.awt.Graphics2D g)
Does the layout of the title, legend and coordinate system and calls the render method of all those including the ChartRenderers.

Specified by:
render in interface Chart
Parameters:
g - the Graphics2D object to paint in. Just calls paint(Graphics).

setRowColorModel

public void setRowColorModel(RowColorModel rcm)
                      throws java.lang.NullPointerException
Sets the chart's default row color model

Parameters:
rcm - a valid RowColorModel object
Throws:
java.lang.NullPointerException

getRowColorModel

public RowColorModel getRowColorModel()
Returns the default RowColorModel used by the chart

Returns:
the chart's default row color model.

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Registers a mouse dragged event (unused - for interface compatibility only)

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Registers the first press of a mouse button (unused - for interface compatibility only)

Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Registers the release of the mouse button (unused - for interface compatibility only)

Specified by:
mouseReleased in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Registers a mouse entered event (unused - for interface compatibility only)

Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Registers a mouse exited event (unused - for interface compatibility only)

Specified by:
mouseExited in interface java.awt.event.MouseListener

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Registers a mouse clicked event (unused - for interface compatibility only)

Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Registers a mouse moved event (unused - for interface compatibility only)

Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

print

public int print(java.awt.Graphics g,
                 java.awt.print.PageFormat pf,
                 int page)
          throws java.awt.print.PrinterException
Implements the Printable print interface. Causes the panel's chart to be printed at screen size based on the automatically passed print arguments.

Specified by:
print in interface java.awt.print.Printable
Throws:
java.awt.print.PrinterException