Package com.pixelmed.display

# Class PlotGraph

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

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`

Direct Known Subclasses:
  `SpectraPanel`

public class PlotGraph extends 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
Modifier and Type
Class
Description
`protected class`
`PlotGraph.FloatArrayStatistics`

## Nested classes/interfaces inherited from class javax.swing.JComponent

`JComponent.AccessibleJComponent`

## Nested classes/interfaces inherited from class java.awt.Container

`Container.AccessibleAWTContainer`

## Nested classes/interfaces inherited from class java.awt.Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected float`
`heightOfTile`
`protected 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

`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

`accessibleContext, 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
Modifier
Constructor
Description
``
`PlotGraph(float[] samples, int nTilesPerColumn, int nTilesPerRow)`
`protected`
`PlotGraph(int nTilesPerColumn, int nTilesPerRow, float minimum, float maximum)`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`actuallyPaintComponent(Graphics g, BufferedImage backgroundImage, Rectangle boundsOfPlot, Rectangle boundsOfBackgroundImage)`
Draw the data onto the supplied graphic with the specified background.
`static void`
`main(String[] arg)`
For testing.
`void`
`paintComponent(Graphics g)`

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

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, 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, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, 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, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, list, list, paintComponents, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree`

### Methods inherited from class java.awt.Component

`add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, hasFocus, imageUpdate, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, list, list, list, paintAll, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class java.lang.Object

`clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

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

## Constructor Details

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

### actuallyPaintComponent

protected void actuallyPaintComponent(Graphics g, BufferedImage backgroundImage, Rectangle boundsOfPlot, 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(Graphics g)

Overrides:
  `paintComponent` in class `JComponent`
Parameters:
  `g` -

### main

public static void main(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)