LiveGraph
data visualisation and analysis framework

org.LiveGraph.gui
Class PlotWindow

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by org.LiveGraph.gui.PlotWindow
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, CacheObserver, SettingsObserver

public class PlotWindow
extends javax.swing.JFrame
implements CacheObserver, SettingsObserver

The plot window of the application.

This product includes software developed by the LiveGraph project and its contributors.
(http://www.live-graph.org)
Copyright (c) 2007 G. Paperin.
All rights reserved.

File: PlotWindow.java

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following terms and conditions are met:

1. Redistributions of source code must retain the above acknowledgement of the LiveGraph project and its web-site, the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above acknowledgement of the LiveGraph project and its web-site, the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software or any derived software must display the following acknowledgement:
This product includes software developed by the LiveGraph project and its contributors.
(http://www.live-graph.org)

4. All advertising materials distributed in form of HTML pages or any other technology permitting active hyper-links that mention features or use of this software or any derived software must display the acknowledgment specified in condition 3 of this agreement, and in addition, include a visible and working hyper-link to the LiveGraph homepage (http://www.live-graph.org).

THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Version:
"1.1.1"
Author:
Greg Paperin (http://www.paperin.org)
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Nested classes/interfaces inherited from interface org.LiveGraph.dataCache.CacheObserver
CacheObserver.CacheEvent
 
Field Summary
private  javax.swing.JPanel canvas
           
private  boolean highlightDataPoints
           
private  javax.swing.Popup hlSerPopup
           
private  Plotter plotter
           
private  java.util.List<SeriesHighlightListener> seriesHighlightListeners
           
private  java.util.List<java.lang.String> seriesLabels
           
private  javax.swing.JLabel statusLabel
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PlotWindow(Plotter plotter)
          Created and setts up a plotter window.
 
Method Summary
 boolean addSeriesHighlightListeners(SeriesHighlightListener listener)
          Adds a SeriesHighlightListener.
 void cacheEventFired(DataCache cache, CacheObserver.CacheEvent event)
          Repaints the plot canvas when the cache was updated.
 int countSeriesHighlightListeners()
           
private  void initialize()
          This method initializes the window.
private  void notifySeriesHighlightListeners(java.util.List<java.lang.Integer> hlSeries)
          Notifies the listeners about the highlighted series.
 boolean removeSeriesHighlightListeners(SeriesHighlightListener listener)
          Removed a SeriesHighlightListener.
 void setStatusMessage(java.lang.String msg)
          Update the status bar message.
 void settingHasChanged(DataSeriesSettings settings, java.lang.String info)
          Repaints the plot canvas when the data file settings change.
 void settingHasChanged(GraphSettings settings, java.lang.String info)
          Repaints the plot canvas when the graph settings change.
 void settingHasChanged(ObservableSettings settings, java.lang.Object info)
          Dispatches settings change events.
private  void showHlSeriesPopup(java.util.List<java.lang.Integer> hlSeries, int mx, int my)
          Shows the popup with the labels of highlighted data series.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

statusLabel

private javax.swing.JLabel statusLabel

plotter

private Plotter plotter

canvas

private javax.swing.JPanel canvas

seriesHighlightListeners

private java.util.List<SeriesHighlightListener> seriesHighlightListeners

highlightDataPoints

private boolean highlightDataPoints

hlSerPopup

private javax.swing.Popup hlSerPopup

seriesLabels

private java.util.List<java.lang.String> seriesLabels
Constructor Detail

PlotWindow

public PlotWindow(Plotter plotter)
Created and setts up a plotter window.

Parameters:
plotter - The plotter object for this window.
Method Detail

initialize

private void initialize()
This method initializes the window.


showHlSeriesPopup

private void showHlSeriesPopup(java.util.List<java.lang.Integer> hlSeries,
                               int mx,
                               int my)
Shows the popup with the labels of highlighted data series.

Parameters:
hlSeries - List of indices of highlighted data series.
mx - Current mouse position on screen (x).
my - Current mouse position on screen (y).

setStatusMessage

public void setStatusMessage(java.lang.String msg)
Update the status bar message.

Parameters:
msg - message.

cacheEventFired

public void cacheEventFired(DataCache cache,
                            CacheObserver.CacheEvent event)
Repaints the plot canvas when the cache was updated.

Specified by:
cacheEventFired in interface CacheObserver

settingHasChanged

public void settingHasChanged(ObservableSettings settings,
                              java.lang.Object info)
Dispatches settings change events.

Specified by:
settingHasChanged in interface SettingsObserver
Parameters:
settings - The settings object that was changed.
info - Is used to further specify the change. Usually this is a String containing the name of the changed setting.
See Also:
settingHasChanged(DataSeriesSettings, String), settingHasChanged(GraphSettings, String)

settingHasChanged

public void settingHasChanged(DataSeriesSettings settings,
                              java.lang.String info)
Repaints the plot canvas when the data file settings change.

Parameters:
settings - Series settings (not currentluy used).
info - Event info (not currently used).

settingHasChanged

public void settingHasChanged(GraphSettings settings,
                              java.lang.String info)
Repaints the plot canvas when the graph settings change.

Parameters:
settings - Series settings (not currentluy used).
info - Event info (not currently used).

addSeriesHighlightListeners

public boolean addSeriesHighlightListeners(SeriesHighlightListener listener)
Adds a SeriesHighlightListener.

Parameters:
listener - A listener.
Returns:
Whether the listener was actually added because it did not exist.

removeSeriesHighlightListeners

public boolean removeSeriesHighlightListeners(SeriesHighlightListener listener)
Removed a SeriesHighlightListener.

Parameters:
listener - A listener.
Returns:
Whether the listener was actually removed because it was there.

countSeriesHighlightListeners

public int countSeriesHighlightListeners()
Returns:
Number of SeriesHighlightListeners.

notifySeriesHighlightListeners

private void notifySeriesHighlightListeners(java.util.List<java.lang.Integer> hlSeries)
Notifies the listeners about the highlighted series.

Parameters:
hlSeries - highlighted series indices.

LiveGraph
data visualisation and analysis framework