Class ECGPanel

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

    public class ECGPanel
    extends javax.swing.JComponent

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

    See Also:
    Serialized Form
    • Nested Class Summary

      • 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 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 
      Constructor Description
      ECGPanel​(short[][] samples, int numberOfChannels, int nSamplesPerChannel, java.lang.String[] channelNames, int nTilesPerColumn, int nTilesPerRow, float samplingIntervalInMilliSeconds, float[] amplitudeScalingFactorInMilliVolts, float horizontalPixelsPerMilliSecond, float verticalPixelsPerMilliVolt, float timeOffsetInMilliSeconds, int[] displaySequence, int width, int height)
      Construct a component containing an array of tiles of ECG waveforms.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static void main​(java.lang.String[] arg)
      For testing.
      void paintComponent​(java.awt.Graphics g)
      Draw the data onto the supplied graphic with the specified background.
      • 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
    • Constructor Detail

      • ECGPanel

        public ECGPanel​(short[][] samples,
                        int numberOfChannels,
                        int nSamplesPerChannel,
                        java.lang.String[] channelNames,
                        int nTilesPerColumn,
                        int nTilesPerRow,
                        float samplingIntervalInMilliSeconds,
                        float[] amplitudeScalingFactorInMilliVolts,
                        float horizontalPixelsPerMilliSecond,
                        float verticalPixelsPerMilliVolt,
                        float timeOffsetInMilliSeconds,
                        int[] displaySequence,
                        int width,
                        int height)

        Construct a component containing an array of tiles of ECG waveforms.

        Parameters:
        samples - the ECG data as separate channels
        numberOfChannels - the number of channels (leads)
        nSamplesPerChannel - the number of samples per channel (same for all channels)
        channelNames - the names of each channel with which to annotate them
        nTilesPerColumn - the number of tiles to display per column
        nTilesPerRow - the number of tiles to display per row (if 1, then nTilesPerColumn should == numberOfChannels)
        samplingIntervalInMilliSeconds - the sampling interval (duration of each sample) in milliseconds
        amplitudeScalingFactorInMilliVolts - how many millivolts per unit of sample data (may be different for each channel)
        horizontalPixelsPerMilliSecond - how may pixels to use to represent one millisecond
        verticalPixelsPerMilliVolt - how may pixels to use to represent one millivolt
        timeOffsetInMilliSeconds - how much of the sample data to skip, specified in milliseconds from the start of the samples
        displaySequence - an array of indexes into samples (etc.) sorted into desired sequential display order
        width - the width of the resulting component (sample data is truncated to fit if necessary)
        height - the height of the resulting component (sample data is truncated to fit if necessary)
    • Method Detail

      • paintComponent

        public void paintComponent​(java.awt.Graphics g)

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

        Overrides:
        paintComponent in class javax.swing.JComponent
        Parameters:
        g - the graphic to draw into
      • 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 - an argument selecting the input type ("RAW", "DICOM" or "SCPECG"), followed by either 8 more arguments, the raw data filename (2 bytes per signed 16 bit sample interleaved), the number of channels, the number of samples per channel, the number of tiles per column, the number of tiles per row, the sampling interval in milliseconds, the amplitude scaling factor in millivolts, and the time offset in milliseconds for the left edge of the display or 4 more arguments, the SCPECG or DICOM data filename, the number of tiles per column, the number of tiles per row, and the time offset in milliseconds for the left edge of the display