net.talvi.puffinplot.window
Class GraphDisplay

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 net.talvi.puffinplot.window.GraphDisplay
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.print.Printable, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
MainGraphDisplay, SiteMeanDisplay, SuiteEqAreaDisplay

public abstract class GraphDisplay
extends javax.swing.JPanel
implements java.awt.print.Printable

A graphical UI component which lays out and draws one or more plots. It may allow the user to resize and rearrange the plots, and provides facilities to export the display to a file and to print it via the standard Java printing interface. This is an abstract superclass which cannot be instantiated directly; concrete subclasses must implement the print method.

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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  java.util.Map<java.lang.String,Plot> plots
          A map from internal plot names to the plots themselves.
protected  java.awt.geom.AffineTransform zoomTransform
          A transformation applied to the graphics before painting them, intended to be used for zooming in and out of the display.
 
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.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Method Summary
protected  java.awt.geom.AffineTransform getAntiZoom()
          Returns the inverse transform of the zoom transform.
 Plot getPlotByClassName(java.lang.String name)
          Returns the plot with a specified class name.
 java.util.Collection<Plot> getPlots()
          Returns a collection of all the plots in this graph display.
 java.lang.String getPlotSizeString()
          Returns a string representation of all this display's plot sizes and positions.
 java.util.List<Plot> getVisiblePlots()
          Returns a list of the plots which are currently visible.
protected  boolean isDragPlotMode()
          Reports whether the plots are currently draggable by the user.
 void paint(java.awt.Graphics g)
          Paints this graph display to a graphics context.
protected  void printPlots(java.awt.print.PageFormat pf, java.awt.Graphics graphics)
          Prints all this display's plots to a graphics context.
 void resetLayout()
          Resets each plot's size and position to their defaults.
 void saveToSvgBatik(java.lang.String filename)
          Writes the contents of this display to an SVG file using the Batik library.
 void saveToSvgFreehep(java.lang.String filename)
          Writes the contents of this display to an SVG file using the FreeHEP library.
protected  void setDragPlotMode(boolean dragPlotMode)
          Sets whether the plots are draggable by the user.
 
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, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, getBounds, 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, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.print.Printable
print
 

Field Detail

plots

protected java.util.Map<java.lang.String,Plot> plots
A map from internal plot names to the plots themselves.


zoomTransform

protected java.awt.geom.AffineTransform zoomTransform
A transformation applied to the graphics before painting them, intended to be used for zooming in and out of the display. It is initially set to the identity transformation.

Method Detail

getPlotSizeString

public java.lang.String getPlotSizeString()

Returns a string representation of all this display's plot sizes and positions. This is intended to be written to a preferences object, allowing the plot layout to be saved and restored.

Returns:
a string representation of all this display's plot sizes and positions

getVisiblePlots

public java.util.List<Plot> getVisiblePlots()
Returns a list of the plots which are currently visible.

Returns:
a list of the plots which are currently visible

getPlots

public java.util.Collection<Plot> getPlots()
Returns a collection of all the plots in this graph display.

Returns:
all the plots in this graph display.

getPlotByClassName

public Plot getPlotByClassName(java.lang.String name)
Returns the plot with a specified class name.

Parameters:
name - the name of a subclass of Plot
Returns:
the plot with the given class, or null if there is none

paint

public void paint(java.awt.Graphics g)
Paints this graph display to a graphics context.

Overrides:
paint in class javax.swing.JComponent
Parameters:
g - the graphics context in which to paint

getAntiZoom

protected java.awt.geom.AffineTransform getAntiZoom()

Returns the inverse transform of the zoom transform. This can be used, for example, to map mouse clicks back to the graph display's original, untransformed co-ordinates.

Returns:
the inverse transform of the zoom transform

isDragPlotMode

protected boolean isDragPlotMode()
Reports whether the plots are currently draggable by the user.

Returns:
true if the plots are currently draggable by the user

setDragPlotMode

protected void setDragPlotMode(boolean dragPlotMode)
Sets whether the plots are draggable by the user.

Parameters:
dragPlotMode - true to make the plots draggable; false to make them non-draggable

resetLayout

public void resetLayout()
Resets each plot's size and position to their defaults.


printPlots

protected void printPlots(java.awt.print.PageFormat pf,
                          java.awt.Graphics graphics)
Prints all this display's plots to a graphics context.

Parameters:
pf - the page format for printing
graphics - the graphics context to which to draw

saveToSvgBatik

public void saveToSvgBatik(java.lang.String filename)
Writes the contents of this display to an SVG file using the Batik library.

Parameters:
filename - the name of the file to which to write

saveToSvgFreehep

public void saveToSvgFreehep(java.lang.String filename)
                      throws java.io.IOException
Writes the contents of this display to an SVG file using the FreeHEP library.

Parameters:
filename - the name of the file to which to write
Throws:
java.io.IOException