edu.mines.jtk.mosaic
Class PlotFrame

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 edu.mines.jtk.mosaic.PlotFrame
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants
Direct Known Subclasses:
SimplePlot

public class PlotFrame
extends javax.swing.JFrame

A plot frame is a window containing one or two plot panels. A plot frame (like any JFrame) has a content pane with a border layout, and it adds a panel (JPanel) containing its plot panel(s) to the center of that content pane. Menu and tool bars can be added as for any other JFrame.

Plot frames that contain two plot panels also contain a split pane with either a horizontal (side by side) or vertical (above and below) orientation. The split pane enables interactive resizing of the plot panels.

A plot frame has a single mode manager (ModeManager). When constructed, a plot frame adds and sets active (1) a tile zoom mode (TileZoomMode) and (2) a mouse track mode (MouseTrackMode) to that mode manager. Of course, other modes of interaction can be added as well.

The default font and background and foreground colors for a plot frame depend on the Java Swing look-and-feel installed when the plot frame is constructed. Any of these attributes can be changed. For both simplicity and consistency, when any of these attributes are set for this frame, they are set for all components in this frame as well. For example, calling the method setFont(java.awt.Font) will set the font for all panels and, in turn, all mosaics, tiles, tile axes, color bars, and titles in this frame.

Version:
2005.12.31
Author:
Dave Hale, Colorado School of Mines
See Also:
Serialized Form

Nested Class Summary
static class PlotFrame.Split
          Orientation of the split pane (if any) containing two plot panels.
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
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
PlotFrame(PlotPanel panel)
          Constructs a plot frame for the specified plot panel.
PlotFrame(PlotPanel panelTL, PlotPanel panelBR, PlotFrame.Split split)
          Constructs a plot frame with two plot panels in a split pane.
 
Method Summary
 ModeManager getModeManager()
          Gets the mode manager for this plot frame.
 MouseTrackMode getMouseTrackMode()
          Gets the mouse track mode for this plot frame.
 PlotPanel getPlotPanel()
          Gets the plot panel in this frame.
 PlotPanel getPlotPanelBottomRight()
          Gets the bottom-right plot panel in this frame.
 PlotPanel getPlotPanelTopLeft()
          Gets the top-left plot panel in this frame.
 TileZoomMode getTileZoomMode()
          Gets the tile zoom mode for this plot frame.
 void paintToPng(double dpi, double win, java.lang.String fileName)
          Paints this panel to a PNG image with specified resolution and width.
 void setBackground(java.awt.Color color)
          Sets the background color in all components in this frame.
 void setFont(java.awt.Font font)
          Sets the font in all components in this frame.
 void setFontSize(int size)
          Sets the font size (in points) for all panels in this frame.
 void setForeground(java.awt.Color color)
          Sets the foreground color in all components in this frame.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, 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, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, 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, 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, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, 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, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

PlotFrame

public PlotFrame(PlotPanel panel)
Constructs a plot frame for the specified plot panel.

Parameters:
panel -

PlotFrame

public PlotFrame(PlotPanel panelTL,
                 PlotPanel panelBR,
                 PlotFrame.Split split)
Constructs a plot frame with two plot panels in a split pane.

Parameters:
panelTL - the top-left panel.
panelBR - the bottom-right panel.
split - the split pane orientation.
Method Detail

getPlotPanel

public PlotPanel getPlotPanel()
Gets the plot panel in this frame. If this frame contains more than one plot panel, this method returns the top-left panel.

Returns:
the plot panel.

getPlotPanelTopLeft

public PlotPanel getPlotPanelTopLeft()
Gets the top-left plot panel in this frame. If this panel contains only one panel, then the top-left and bottom-right panels are the same.

Returns:
the top-left plot panel.

getPlotPanelBottomRight

public PlotPanel getPlotPanelBottomRight()
Gets the bottom-right plot panel in this frame. If this panel contains only one panel, then the top-left and bottom-right panels are the same.

Returns:
the bottom-right plot panel.

getModeManager

public ModeManager getModeManager()
Gets the mode manager for this plot frame.

Returns:
the mode manager.

getTileZoomMode

public TileZoomMode getTileZoomMode()
Gets the tile zoom mode for this plot frame. By default, this mode is active.

Returns:
the tile zoom mode.

getMouseTrackMode

public MouseTrackMode getMouseTrackMode()
Gets the mouse track mode for this plot frame. By default, this mode is active.

Returns:
the mouse track mode.

paintToPng

public void paintToPng(double dpi,
                       double win,
                       java.lang.String fileName)
Paints this panel to a PNG image with specified resolution and width. The image height is computed so that the image has the same aspect ratio as this panel.

Parameters:
dpi - the image resolution, in dots per inch.
win - the image width, in inches.
fileName - the name of the file to contain the PNG image.

setFontSize

public void setFontSize(int size)
Sets the font size (in points) for all panels in this frame.

Parameters:
size - the size.

setFont

public void setFont(java.awt.Font font)
Sets the font in all components in this frame.

Overrides:
setFont in class java.awt.Container
Parameters:
font - the font.

setForeground

public void setForeground(java.awt.Color color)
Sets the foreground color in all components in this frame.

Overrides:
setForeground in class java.awt.Component
Parameters:
color - the foreground color.

setBackground

public void setBackground(java.awt.Color color)
Sets the background color in all components in this frame.

Overrides:
setBackground in class java.awt.Component
Parameters:
color - the background color.