com.approximatrix.charting.swing
Class ChartPanel

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
                      extended by com.approximatrix.charting.swing.ChartPanel
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

public class ChartPanel
extends AbstractChartPanel

This Panel provides the possibility to include a Chart into a Swing Application. I choose not to make every Chart extend JComponent because of the overhead this would have meant. Instead, this class is an adaptor. It implements the Chart interface and contains a DefaultChart instance to which all Chart calls are promoted.

Author:
mueller, 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
private  java.awt.Rectangle currentRect
          The selection rectangle for processing purposes
private  java.awt.Rectangle grRect
          The selection rectangle for actual drawing purposes
 
Fields inherited from class com.approximatrix.charting.swing.AbstractChartPanel
chart, NO_SUCH_PAGE, PAGE_EXISTS
 
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
private ChartPanel()
          Creates new ChartPanel
  ChartPanel(ChartDataModel model, java.lang.String title)
          Creates a new ChartPanel with the given model and title string.
  ChartPanel(ChartDataModel model, java.lang.String title, int coord)
          Creates a new ChartPanel with the given model and title string and a coordinate system.
 
Method Summary
 java.awt.Dimension getPreferredSize()
          Computes the preferred size of the ChartPanel.
 void mouseDragged(java.awt.event.MouseEvent e)
          Registers a mouse dragged event and updates the size of the selection rectangle being drawn on the panel if appropriate.
 void mousePressed(java.awt.event.MouseEvent e)
          Registers the first press of a mouse button for selection purposes
 void mouseReleased(java.awt.event.MouseEvent e)
          Registers the release of the mouse button and disables selection mode
 void paint(java.awt.Graphics graphics)
          Paints the ChartPanel.
private  void updateSize(java.awt.event.MouseEvent e)
          Updates the current selection rectangle on the chart if appropriate.
 
Methods inherited from class com.approximatrix.charting.swing.AbstractChartPanel
addChartRenderer, getBounds, getChartDataModel, getChartRenderer, getChartRenderer, getCoordSystem, getLegend, getRowColorModel, getTitle, mouseClicked, mouseEntered, mouseExited, mouseMoved, print, render, setBounds, setChartDataModel, setChartRenderer, setCoordSystem, setLegend, setRowColorModel, setTitle
 
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

currentRect

private java.awt.Rectangle currentRect
The selection rectangle for processing purposes


grRect

private java.awt.Rectangle grRect
The selection rectangle for actual drawing purposes

Constructor Detail

ChartPanel

private ChartPanel()
Creates new ChartPanel


ChartPanel

public ChartPanel(ChartDataModel model,
                  java.lang.String title)
Creates a new ChartPanel with the given model and title string.

Parameters:
model - the ChartDataModel
title - the title String

ChartPanel

public ChartPanel(ChartDataModel model,
                  java.lang.String title,
                  int coord)
Creates a new ChartPanel with the given model and title string and a coordinate system.

Parameters:
model - the ChartDataModel
title - the title String
coord - the id of the coordinate system configuration
Method Detail

getPreferredSize

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

Overrides:
getPreferredSize in class AbstractChartPanel
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 AbstractChartPanel
Parameters:
graphics - the Graphics2D object to paint in

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Registers a mouse dragged event and updates the size of the selection rectangle being drawn on the panel if appropriate.

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Overrides:
mouseDragged in class AbstractChartPanel

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Registers the first press of a mouse button for selection purposes

Specified by:
mousePressed in interface java.awt.event.MouseListener
Overrides:
mousePressed in class AbstractChartPanel

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Registers the release of the mouse button and disables selection mode

Specified by:
mouseReleased in interface java.awt.event.MouseListener
Overrides:
mouseReleased in class AbstractChartPanel

updateSize

private void updateSize(java.awt.event.MouseEvent e)
Updates the current selection rectangle on the chart if appropriate. This routine should only be called from the MouseListener functions.

Parameters:
e - the mouse event that caused the update function to be called