org.jfree.chart
Class ChartPanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--org.jfree.chart.ChartPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, ChartChangeListener, ChartPanelConstants, ChartProgressListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.print.Printable, java.io.Serializable

public class ChartPanel
extends javax.swing.JPanel
implements ChartPanelConstants, ChartChangeListener, ChartProgressListener, java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.print.Printable

A Swing GUI component for displaying a JFreeChart.

The panel registers with the chart to receive notification of changes to any component of the chart. The chart is redrawn automatically whenever this notification is received.

Author:
David Gilbert
See Also:
Serialized Form

Field Summary
 
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 org.jfree.chart.ChartPanelConstants
AUTO_RANGE_BOTH_ACTION_COMMAND, AUTO_RANGE_HORIZONTAL_ACTION_COMMAND, AUTO_RANGE_VERTICAL_ACTION_COMMAND, DEFAULT_BUFFER_USED, DEFAULT_HEIGHT, DEFAULT_MAXIMUM_DRAW_HEIGHT, DEFAULT_MAXIMUM_DRAW_WIDTH, DEFAULT_MINIMUM_DRAW_HEIGHT, DEFAULT_MINIMUM_DRAW_WIDTH, DEFAULT_WIDTH, MINIMUM_DRAG_ZOOM_SIZE, PRINT_ACTION_COMMAND, PROPERTIES_ACTION_COMMAND, SAVE_ACTION_COMMAND, ZOOM_IN_BOTH_ACTION_COMMAND, ZOOM_IN_HORIZONTAL_ACTION_COMMAND, ZOOM_IN_VERTICAL_ACTION_COMMAND, ZOOM_OUT_BOTH_ACTION_COMMAND, ZOOM_OUT_HORIZONTAL_ACTION_COMMAND, ZOOM_OUT_VERTICAL_ACTION_COMMAND
 
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ChartPanel(JFreeChart chart)
          Constructs a JFreeChart panel.
ChartPanel(JFreeChart chart, boolean useBuffer)
          Constructs a panel containing a chart.
ChartPanel(JFreeChart chart, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips)
          Constructs a JFreeChart panel.
ChartPanel(JFreeChart chart, int width, int height, int minimumDrawWidth, int minimumDrawHeight, int maximumDrawWidth, int maximumDrawHeight, boolean useBuffer, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips)
          Constructs a JFreeChart panel.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
          Handles action events generated by the popup menu.
 void addChartMouseListener(ChartMouseListener listener)
          Adds a listener to the list of objects listening for chart mouse events.
 void autoRangeBoth()
          Restores the auto-range calculation on both axes.
 void autoRangeHorizontal()
          Restores the auto-range calculation on the horizontal axis.
 void autoRangeVertical()
          Restores the auto-range calculation on the vertical axis.
 void chartChanged(ChartChangeEvent event)
          Receives notification of changes to the chart, and redraws the chart.
 void chartProgress(ChartProgressEvent event)
          Receives notification of a chart progress event.
 void createChartPrintJob()
          Creates a print job for the chart.
protected  javax.swing.JPopupMenu createPopupMenu(boolean properties, boolean save, boolean print, boolean zoom)
          Creates a popup menu for the panel.
protected  void displayPopupMenu(int x, int y)
          The idea is to modify the zooming options depending on the type of chart being displayed by the panel.
 void doSaveAs()
          Opens a file chooser and gives the user an opportunity to save the chart in PNG format.
 JFreeChart getChart()
          Returns the chart contained in the panel.
 ChartRenderingInfo getChartRenderingInfo()
          Returns the chart rendering info from the most recent chart redraw.
 ChartEntity getEntityForPoint(int viewX, int viewY)
          Returns the chart entity at a given point.
 int getMaximumDrawHeight()
          Returns the maximum drawing height for charts.
 int getMaximumDrawWidth()
          Returns the maximum drawing width for charts.
 int getMinimumDrawHeight()
          Returns the minimum drawing height for charts.
 int getMinimumDrawWidth()
          Returns the minimum drawing width for charts.
 javax.swing.JPopupMenu getPopupMenu()
          Returns the popup menu.
 java.awt.geom.Rectangle2D getScaledDataArea()
          Returns the data area for the chart (the area inside the axes) with the current scaling applied.
 java.lang.String getToolTipText(java.awt.event.MouseEvent e)
          Returns a string for the tooltip.
 boolean isEnforceFileExtensions()
          Returns true if file extensions should be enforced, and false otherwise.
 void mouseClicked(java.awt.event.MouseEvent event)
          Receives notification of mouse clicks on the panel.
 void mouseDragged(java.awt.event.MouseEvent e)
          Handles a 'mouse dragged' event.
 void mouseEntered(java.awt.event.MouseEvent e)
          Handles a 'mouse entered' event.
 void mouseExited(java.awt.event.MouseEvent e)
          Handles a 'mouse exited' event.
 void mouseMoved(java.awt.event.MouseEvent e)
          Implementation of the MouseMotionListener's method
 void mousePressed(java.awt.event.MouseEvent e)
          Handles a 'mouse pressed' event.
 void mouseReleased(java.awt.event.MouseEvent e)
          Handles a 'mouse released' event.
 void paintComponent(java.awt.Graphics g)
          Paints the component by drawing the chart to fill the entire component, but allowing for the insets (which will be non-zero if a border has been set for this component).
 int print(java.awt.Graphics g, java.awt.print.PageFormat pf, int pageIndex)
          Prints the chart on a single page.
 void removeChartMouseListener(ChartMouseListener listener)
          Removes a listener from the list of objects listening for chart mouse events.
 void setChart(JFreeChart chart)
          Sets the chart that is displayed in the panel.
 void setDisplayToolTips(boolean flag)
          Switches chart tooltip generation on or off.
 void setEnforceFileExtensions(boolean enforce)
          Sets a flag that controls whether or not file extensions are enforced.
 void setFillZoomRectangle(boolean flag)
          A flag that controls how the zoom rectangle is drawn.
 void setHorizontalAxisTrace(boolean flag)
          A flag that controls trace lines on the horizontal axis.
 void setHorizontalZoom(boolean flag)
          A flag that controls mouse-based zooming on the horizontal axis.
 void setMaximumDrawHeight(int height)
          Sets the maximum drawing height for the chart on this panel.
 void setMaximumDrawWidth(int width)
          Sets the maximum drawing width for the chart on this panel.
 void setMinimumDrawHeight(int height)
          Sets the minimum drawing height for the chart on this panel.
 void setMinimumDrawWidth(int width)
          Sets the minimum drawing width for the chart on this panel.
 void setMouseZoomable(boolean flag)
          A flag that controls mouse-based zooming.
 void setMouseZoomable(boolean flag, boolean fillRectangle)
          Controls mouse zooming and how the zoom rectangle is displayed
 void setPopupMenu(javax.swing.JPopupMenu popup)
          Sets the popup menu for the panel.
 void setRefreshBuffer(boolean flag)
          Sets the refresh buffer flag.
 void setVerticalAxisTrace(boolean flag)
          A flag that controls trace lines on the vertical axis.
 void setVerticalZoom(boolean flag)
          A flag that controls mouse-based zooming on the vertical axis.
 java.awt.Point translateJava2DToScreen(java.awt.geom.Point2D java2DPoint)
          Translates a Java2D point on the chart to a screen location.
 java.awt.geom.Point2D translateScreenToJava2D(java.awt.Point screenPoint)
          Translates a screen location to a Java2D point.
 void zoom(java.awt.geom.Rectangle2D selection)
          Zooms in on a selected region.
 void zoomInBoth(double x, double y)
          Zooms in on an anchor point (measured in Java2D coordinates).
 void zoomInHorizontal(double x)
          Decreases the range on the horizontal axis, centered about a Java2D x coordinate.
 void zoomInVertical(double y)
          Decreases the range on the vertical axis, centered about a Java2D y coordinate.
 void zoomOutBoth(double x, double y)
          Zooms out on an anchor point (measured in Java2D coordinates).
 void zoomOutHorizontal(double x)
          Increases the range on the horizontal axis, centered about a Java2D x coordinate.
 void zoomOutVertical(double y)
          Increases the range on the vertical axis, centered about a Java2D y coordinate.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, 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
 

Constructor Detail

ChartPanel

public ChartPanel(JFreeChart chart)
Constructs a JFreeChart panel.

Parameters:
chart - the chart.

ChartPanel

public ChartPanel(JFreeChart chart,
                  boolean useBuffer)
Constructs a panel containing a chart.

Parameters:
chart - the chart.
useBuffer - a flag controlling whether or not an off-screen buffer is used.

ChartPanel

public ChartPanel(JFreeChart chart,
                  boolean properties,
                  boolean save,
                  boolean print,
                  boolean zoom,
                  boolean tooltips)
Constructs a JFreeChart panel.

Parameters:
chart - the chart.
properties - a flag indicating whether or not the chart property editor should be available via the popup menu.
save - a flag indicating whether or not save options should be available via the popup menu.
print - a flag indicating whether or not the print option should be available via the popup menu.
zoom - a flag indicating whether or not zoom options should be added to the popup menu.
tooltips - a flag indicating whether or not tooltips should be enabled for the chart.

ChartPanel

public ChartPanel(JFreeChart chart,
                  int width,
                  int height,
                  int minimumDrawWidth,
                  int minimumDrawHeight,
                  int maximumDrawWidth,
                  int maximumDrawHeight,
                  boolean useBuffer,
                  boolean properties,
                  boolean save,
                  boolean print,
                  boolean zoom,
                  boolean tooltips)
Constructs a JFreeChart panel.

Parameters:
chart - the chart.
width - the preferred width of the panel.
height - the preferred height of the panel.
minimumDrawWidth - the minimum drawing width.
minimumDrawHeight - the minimum drawing height.
maximumDrawWidth - the maximum drawing width.
maximumDrawHeight - the maximum drawing height.
useBuffer - a flag that indicates whether to use the off-screen buffer to improve performance (at the expense of memory).
properties - a flag indicating whether or not the chart property editor should be available via the popup menu.
save - a flag indicating whether or not save options should be available via the popup menu.
print - a flag indicating whether or not the print option should be available via the popup menu.
zoom - a flag indicating whether or not zoom options should be added to the popup menu.
tooltips - a flag indicating whether or not tooltips should be enabled for the chart.
Method Detail

getChart

public JFreeChart getChart()
Returns the chart contained in the panel.

Returns:
The chart.

setChart

public void setChart(JFreeChart chart)
Sets the chart that is displayed in the panel.

Parameters:
chart - The chart.

getMinimumDrawWidth

public int getMinimumDrawWidth()
Returns the minimum drawing width for charts.

If the width available on the panel is less than this, then the chart is drawn at the minimum width then scaled down to fit.

Returns:
The minimum drawing width.

setMinimumDrawWidth

public void setMinimumDrawWidth(int width)
Sets the minimum drawing width for the chart on this panel.

At the time the chart is drawn on the panel, if the available width is less than this amount, the chart will be drawn using the minimum width then scaled down to fit the available space.

Parameters:
width - The width.

getMaximumDrawWidth

public int getMaximumDrawWidth()
Returns the maximum drawing width for charts.

If the width available on the panel is greater than this, then the chart is drawn at the maximum width then scaled up to fit.

Returns:
The maximum drawing width.

setMaximumDrawWidth

public void setMaximumDrawWidth(int width)
Sets the maximum drawing width for the chart on this panel.

At the time the chart is drawn on the panel, if the available width is greater than this amount, the chart will be drawn using the maximum width then scaled up to fit the available space.

Parameters:
width - The width.

setMinimumDrawHeight

public void setMinimumDrawHeight(int height)
Sets the minimum drawing height for the chart on this panel.

At the time the chart is drawn on the panel, if the available height is less than this amount, the chart will be drawn using the minimum height then scaled down to fit the available space.

Parameters:
height - The height.

getMinimumDrawHeight

public int getMinimumDrawHeight()
Returns the minimum drawing height for charts.

If the height available on the panel is less than this, then the chart is drawn at the minimum height then scaled down to fit.

Returns:
The minimum drawing height.

getMaximumDrawHeight

public int getMaximumDrawHeight()
Returns the maximum drawing height for charts.

If the height available on the panel is greater than this, then the chart is drawn at the maximum height then scaled up to fit.

Returns:
The maximum drawing height.

setMaximumDrawHeight

public void setMaximumDrawHeight(int height)
Sets the maximum drawing height for the chart on this panel.

At the time the chart is drawn on the panel, if the available height is greater than this amount, the chart will be drawn using the maximum height then scaled up to fit the available space.

Parameters:
height - The height.

getPopupMenu

public javax.swing.JPopupMenu getPopupMenu()
Returns the popup menu.

Returns:
the popup menu.

setPopupMenu

public void setPopupMenu(javax.swing.JPopupMenu popup)
Sets the popup menu for the panel.

Parameters:
popup - the new popup menu.

getChartRenderingInfo

public ChartRenderingInfo getChartRenderingInfo()
Returns the chart rendering info from the most recent chart redraw.

Returns:
the chart rendering info.

setMouseZoomable

public void setMouseZoomable(boolean flag)
A flag that controls mouse-based zooming.

Parameters:
flag - true enables zooming and rectangle fill on zoom.

setMouseZoomable

public void setMouseZoomable(boolean flag,
                             boolean fillRectangle)
Controls mouse zooming and how the zoom rectangle is displayed

Parameters:
flag - true if zooming enabled
fillRectangle - true if zoom rectangle is filled, false if rectangle is shown as outline only.

setHorizontalZoom

public void setHorizontalZoom(boolean flag)
A flag that controls mouse-based zooming on the horizontal axis.

Parameters:
flag - true enables zooming on HorizontalValuePlots.

setFillZoomRectangle

public void setFillZoomRectangle(boolean flag)
A flag that controls how the zoom rectangle is drawn.

Parameters:
flag - true instructs to fill the rectangle on zoom, otherwise it will be outlined.

setVerticalZoom

public void setVerticalZoom(boolean flag)
A flag that controls mouse-based zooming on the vertical axis.

Parameters:
flag - true enables zooming on VerticalValuePlots.

setHorizontalAxisTrace

public void setHorizontalAxisTrace(boolean flag)
A flag that controls trace lines on the horizontal axis.

Parameters:
flag - true enables trace lines for the mouse pointer on the horizontal axis.

setVerticalAxisTrace

public void setVerticalAxisTrace(boolean flag)
A flag that controls trace lines on the vertical axis.

Parameters:
flag - true enables trace lines for the mouse pointer on the vertical axis.

isEnforceFileExtensions

public boolean isEnforceFileExtensions()
Returns true if file extensions should be enforced, and false otherwise.

Returns:
The flag.

setEnforceFileExtensions

public void setEnforceFileExtensions(boolean enforce)
Sets a flag that controls whether or not file extensions are enforced.

Parameters:
enforce - the new flag value.

setDisplayToolTips

public void setDisplayToolTips(boolean flag)
Switches chart tooltip generation on or off.

Parameters:
flag - the flag.

getToolTipText

public java.lang.String getToolTipText(java.awt.event.MouseEvent e)
Returns a string for the tooltip.

Overrides:
getToolTipText in class javax.swing.JComponent
Parameters:
e - the mouse event.
Returns:
a tool tip or null if no tooltip is available.

translateJava2DToScreen

public java.awt.Point translateJava2DToScreen(java.awt.geom.Point2D java2DPoint)
Translates a Java2D point on the chart to a screen location.

Parameters:
java2DPoint - the Java2D point.
Returns:
the screen location.

translateScreenToJava2D

public java.awt.geom.Point2D translateScreenToJava2D(java.awt.Point screenPoint)
Translates a screen location to a Java2D point.

Parameters:
screenPoint - the screen location.
Returns:
the Java2D coordinates.

getEntityForPoint

public ChartEntity getEntityForPoint(int viewX,
                                     int viewY)
Returns the chart entity at a given point.

This method will return null if there is (a) no entity at the given point, or (b) no entity collection has been generated.

Parameters:
viewX - the x-coordinate.
viewY - the y-coordinate.
Returns:
the chart entity (possibly null).

setRefreshBuffer

public void setRefreshBuffer(boolean flag)
Sets the refresh buffer flag.

Parameters:
flag - true indicate, that the buffer should be refreshed.

paintComponent

public void paintComponent(java.awt.Graphics g)
Paints the component by drawing the chart to fill the entire component, but allowing for the insets (which will be non-zero if a border has been set for this component). To increase performance (at the expense of memory), an off-screen buffer image can be used.

Overrides:
paintComponent in class javax.swing.JComponent
Parameters:
g - the graphics device for drawing on.

chartChanged

public void chartChanged(ChartChangeEvent event)
Receives notification of changes to the chart, and redraws the chart.

Specified by:
chartChanged in interface ChartChangeListener
Parameters:
event - details of the chart change event.

chartProgress

public void chartProgress(ChartProgressEvent event)
Receives notification of a chart progress event.

Specified by:
chartProgress in interface ChartProgressListener
Parameters:
event - the event.

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Handles action events generated by the popup menu.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
event - the event.

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Handles a 'mouse entered' event.

This method does nothing, but is required for implementation of the MouseListener interface.

Specified by:
mouseEntered in interface java.awt.event.MouseListener
Parameters:
e - the mouse event.

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Handles a 'mouse exited' event.

This method does nothing, but is required for implementation of the MouseListener interface.

Specified by:
mouseExited in interface java.awt.event.MouseListener
Parameters:
e - the mouse event.

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Handles a 'mouse pressed' event.

This event is the popup trigger on Unix/Linux. For Windows, the popup trigger is the 'mouse released' event.

Specified by:
mousePressed in interface java.awt.event.MouseListener
Parameters:
e - The mouse event.

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Handles a 'mouse released' event.

On Windows, we need to check if this is a popup trigger, but only if we haven't already been tracking a zoom rectangle.

Specified by:
mouseReleased in interface java.awt.event.MouseListener
Parameters:
e - Information about the event.

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent event)
Receives notification of mouse clicks on the panel. These are translated and passed on to any registered chart mouse click listeners.

Specified by:
mouseClicked in interface java.awt.event.MouseListener
Parameters:
event - Information about the mouse event.

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Implementation of the MouseMotionListener's method

Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener
Parameters:
e - the event.

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Handles a 'mouse dragged' event.

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Parameters:
e - the mouse event.

zoomInBoth

public void zoomInBoth(double x,
                       double y)
Zooms in on an anchor point (measured in Java2D coordinates).

Parameters:
x - The x value.
y - The y value.

zoomInHorizontal

public void zoomInHorizontal(double x)
Decreases the range on the horizontal axis, centered about a Java2D x coordinate.

The range on the x axis is halved.

Parameters:
x - The x coordinate in Java2D space.

zoomInVertical

public void zoomInVertical(double y)
Decreases the range on the vertical axis, centered about a Java2D y coordinate.

The range on the y axis is halved.

Parameters:
y - The y coordinate in Java2D space.

zoomOutBoth

public void zoomOutBoth(double x,
                        double y)
Zooms out on an anchor point (measured in Java2D coordinates).

Parameters:
x - The x value.
y - The y value.

zoomOutHorizontal

public void zoomOutHorizontal(double x)
Increases the range on the horizontal axis, centered about a Java2D x coordinate.

The range on the x axis is doubled.

Parameters:
x - The x coordinate in Java2D space.

zoomOutVertical

public void zoomOutVertical(double y)
Increases the range on the vertical axis, centered about a Java2D y coordinate.

The range on the y axis is doubled.

Parameters:
y - the y coordinate in Java2D space.

zoom

public void zoom(java.awt.geom.Rectangle2D selection)
Zooms in on a selected region.

Parameters:
selection - the selected region.

autoRangeBoth

public void autoRangeBoth()
Restores the auto-range calculation on both axes.


autoRangeHorizontal

public void autoRangeHorizontal()
Restores the auto-range calculation on the horizontal axis.


autoRangeVertical

public void autoRangeVertical()
Restores the auto-range calculation on the vertical axis.


getScaledDataArea

public java.awt.geom.Rectangle2D getScaledDataArea()
Returns the data area for the chart (the area inside the axes) with the current scaling applied.

Returns:
the scaled data area.

doSaveAs

public void doSaveAs()
              throws java.io.IOException
Opens a file chooser and gives the user an opportunity to save the chart in PNG format.

Throws:
java.io.IOException - if there is an I/O error.

createChartPrintJob

public void createChartPrintJob()
Creates a print job for the chart.


print

public int print(java.awt.Graphics g,
                 java.awt.print.PageFormat pf,
                 int pageIndex)
Prints the chart on a single page.

Specified by:
print in interface java.awt.print.Printable
Parameters:
g - the graphics context.
pf - the page format to use.
pageIndex - the index of the page. If not 0, nothing gets print.
Returns:
the result of printing.

addChartMouseListener

public void addChartMouseListener(ChartMouseListener listener)
Adds a listener to the list of objects listening for chart mouse events.

Parameters:
listener - the listener.

removeChartMouseListener

public void removeChartMouseListener(ChartMouseListener listener)
Removes a listener from the list of objects listening for chart mouse events.

Parameters:
listener - the listener.

createPopupMenu

protected javax.swing.JPopupMenu createPopupMenu(boolean properties,
                                                 boolean save,
                                                 boolean print,
                                                 boolean zoom)
Creates a popup menu for the panel.

Parameters:
properties - include a menu item for the chart property editor.
save - include a menu item for saving the chart.
print - include a menu item for printing the chart.
zoom - include menu items for zooming.
Returns:
The popup menu.

displayPopupMenu

protected void displayPopupMenu(int x,
                                int y)
The idea is to modify the zooming options depending on the type of chart being displayed by the panel. This code is incomplete.

Parameters:
x - horizontal position of the popup.
y - vertical position of the popup.