com.pixelmed.display

## Class PlotGraph

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - com.pixelmed.display.PlotGraph

All Implemented Interfaces:
  java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

Direct Known Subclasses:
  SpectraPanel

    public class PlotGraph
    extends javax.swing.JComponent

Implements a component that can display an array of tiles, each of which is a 2D graph of sample values.

See Also:
  Serialized Form

### Nested Class Summary

Nested Classes
`protected class` `PlotGraph.FloatArrayStatistics`

### 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

Fields
`protected float` `heightOfTile`
`protected java.awt.image.BufferedImage` `imageOfRenderedPlot`
`protected int` `nTilesPerColumn`
`protected int` `nTilesPerRow`
`protected float[]` `samples`
`protected int` `samplesPerRow`
`protected int` `samplesPerTile`
`protected PlotGraph.FloatArrayStatistics` `statistics`
`protected float` `widthOfTile`

### 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

Constructors
`` `PlotGraph(float[] samples, int nTilesPerColumn, int nTilesPerRow)`
`protected` `PlotGraph(int nTilesPerColumn, int nTilesPerRow, float minimum, float maximum)`

### Method Summary

Methods
`protected void` `actuallyPaintComponent(java.awt.Graphics g, java.awt.image.BufferedImage backgroundImage, java.awt.Rectangle boundsOfPlot, java.awt.Rectangle boundsOfBackgroundImage)` Draw the data onto the supplied graphic with the specified background.
`static void` `main(java.lang.String[] arg)` For testing.
`void` `paintComponent(java.awt.Graphics g)`

### Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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, updateUI`

### 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`

### Field Detail

#### samples

    protected float[] samples

#### statistics

    protected PlotGraph.FloatArrayStatistics statistics

#### nTilesPerColumn

    protected int nTilesPerColumn

#### nTilesPerRow

    protected int nTilesPerRow

#### samplesPerRow

    protected int samplesPerRow

#### samplesPerTile

    protected int samplesPerTile

#### widthOfTile

    protected float widthOfTile

#### heightOfTile

    protected float heightOfTile

#### imageOfRenderedPlot

    protected java.awt.image.BufferedImage imageOfRenderedPlot

### Constructor Detail

#### PlotGraph

    protected PlotGraph(int nTilesPerColumn,
             int nTilesPerRow,
             float minimum,
             float maximum)

Parameters:
  `nTilesPerColumn` -
  `nTilesPerRow` -
  `minimum` -
  `maximum` -

#### PlotGraph

    public PlotGraph(float[] samples,
             int nTilesPerColumn,
             int nTilesPerRow)

Parameters:
  `samples` -
  `nTilesPerColumn` -
  `nTilesPerRow` -

### Method Detail

#### actuallyPaintComponent

    protected void actuallyPaintComponent(java.awt.Graphics g,
                              java.awt.image.BufferedImage backgroundImage,
                              java.awt.Rectangle boundsOfPlot,
                              java.awt.Rectangle boundsOfBackgroundImage)

Draw the data onto the supplied graphic with the specified background.

Parameters:
  `g` - the graphic to draw into
  `backgroundImage` - the image to use as a background
  `boundsOfPlot` - what sub-region of the "image" that are the rendered tiles to draw the background image
  `boundsOfBackgroundImage` - what sub-region of the background image to use

#### paintComponent

    public void paintComponent(java.awt.Graphics g)

Overrides:
  `paintComponent` in class `javax.swing.JComponent`
Parameters:
  `g` -

#### main

    public static void main(java.lang.String[] arg)

For testing.

Display the specified sample values as an array of tiles in a window, and take a snapshot of it as a JPEG file.

Parameters:
  `arg` - 5 arguments, the data filename (4 bytes per float, two floats per complex pair), the number of samples per tile, the number of tiles per column, the number of tiles per row, and the number of frames to skip (each samples*rows*columns)