Class DicomImageBlackout

  • 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:
    DicomCleaner.OurDicomImageBlackout

    public class DicomImageBlackout
    extends javax.swing.JFrame

    This class displays images and allows the user to black out burned-in annotation, and save the result.

    A main method is provided, which can be supplied with a list of file names or pop up a file chooser dialog.

    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addSingleImagePanelToMultiPanelAndEstablishLayout()  
      protected void addSingleImagePanelToMultiPanelAndEstablishLayoutWithCenterMaximumAfterInitialSizeLayout()  
      protected void buildUIComponents()  
      protected java.awt.Dimension changeDimensionToFitInMaximumAvailable​(java.awt.Dimension useDimension, java.awt.Dimension maxDimension, boolean onlySmaller)  
      protected void createCineSliderIfNecessary​(int min, int max, int value)  
      void deconstruct()  
      void dispose()  
      protected void finalize()  
      protected double getScaleFactorToFitInMaximumAvailable​(double useWidth, double useHeight, double maxWidth, double maxHeight)  
      protected void loadDicomFileOrDirectory​(java.io.File currentFile)
      Load the named DICOM file and display it in the image panel.
      protected void loadDicomFileOrDirectory​(java.lang.String dicomFileName)
      Load the named DICOM file and display it in the image panel.
      static void main​(java.lang.String[] arg)
      The method to invoke the application.
      protected void recordStateOfDrawingShapesForFileChange()  
      protected java.awt.Dimension reduceDimensionToFitInMaximumAvailable​(java.awt.Dimension useDimension)  
      protected void showUIComponents()  
      protected void updateDisplayedFileNumber​(int current, int total)  
      • Methods inherited from class javax.swing.JFrame

        addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
      • Methods inherited from class java.awt.Frame

        addNotify, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
      • Methods inherited from class java.awt.Window

        addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, toBack, toFront
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, list, list, paintComponents, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, hasFocus, imageUpdate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, list, list, list, 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, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, toString, transferFocus, transferFocusBackward, 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
    • Field Detail

      • resourceBundleName

        protected static java.lang.String resourceBundleName
      • resourceBundle

        protected java.util.ResourceBundle resourceBundle
      • ourAETitle

        protected java.lang.String ourAETitle
      • dicomFileNames

        protected java.lang.String[] dicomFileNames
      • currentFileName

        protected java.lang.String currentFileName
      • currentFileNumber

        protected int currentFileNumber
      • mainPanel

        protected javax.swing.Box mainPanel
      • multiPanel

        protected javax.swing.JPanel multiPanel
      • changesWereMade

        protected boolean changesWereMade
      • usedjpegblockredaction

        protected boolean usedjpegblockredaction
      • deferredDecompression

        protected boolean deferredDecompression
      • redactedJPEGFile

        protected java.io.File redactedJPEGFile
      • previousRows

        protected int previousRows
      • previousColumns

        protected int previousColumns
      • previousPersistentDrawingShapes

        protected java.util.Vector previousPersistentDrawingShapes
      • cineSliderControlsPanel

        protected javax.swing.JPanel cineSliderControlsPanel
      • cineSlider

        protected javax.swing.JSlider cineSlider
      • imagesRemainingLabel

        protected javax.swing.JLabel imagesRemainingLabel
      • burnInOverlays

        protected boolean burnInOverlays
      • useZeroBlackoutValue

        protected boolean useZeroBlackoutValue
      • usePixelPaddingBlackoutValue

        protected boolean usePixelPaddingBlackoutValue
      • useZeroBlackoutValueCheckBox

        protected javax.swing.JCheckBox useZeroBlackoutValueCheckBox
      • usePixelPaddingBlackoutValueCheckBox

        protected javax.swing.JCheckBox usePixelPaddingBlackoutValueCheckBox
      • ourFrameSelectionChangeListener

        protected com.pixelmed.display.DicomImageBlackout.OurFrameSelectionChangeListener ourFrameSelectionChangeListener
      • burnedinflag

        protected int burnedinflag
      • blackoutApplyButton

        protected javax.swing.JButton blackoutApplyButton
      • blackoutSaveButton

        protected javax.swing.JButton blackoutSaveButton
      • blackoutNextButton

        protected javax.swing.JButton blackoutNextButton
      • blackoutPreviousButton

        protected javax.swing.JButton blackoutPreviousButton
    • Constructor Detail

      • DicomImageBlackout

        public DicomImageBlackout​(java.lang.String[] dicomFileNames,
                                  DicomImageBlackout.StatusNotificationHandler snh,
                                  int burnedinflag)

        Opens a window to display the supplied list of DICOM files to allow them to have burned in annotation blacked out.

        Each file will be processed sequentially, with the edited pixel data overwriting the original file.

        Parameters:
        dicomFileNames - the list of file names to process, if null a file chooser dialog will be raised
        snh - an instance of StatusNotificationHandler; if null, a default handler will be used that writes to stderr
        burnedinflag - whether or not and under what circumstances to to add/change BurnedInAnnotation attribute; takes one of the values of BurnedInAnnotationFlagAction
      • DicomImageBlackout

        public DicomImageBlackout​(java.lang.String title,
                                  java.lang.String[] dicomFileNames,
                                  DicomImageBlackout.StatusNotificationHandler snh,
                                  int burnedinflag)

        Opens a window to display the supplied list of DICOM files to allow them to have burned in annotation blacked out.

        Each file will be processed sequentially, with the edited pixel data overwriting the original file.

        Parameters:
        title - the string to use in the title bar of the window or null if use default for locale
        dicomFileNames - the list of file names to process, if null a file chooser dialog will be raised
        snh - an instance of StatusNotificationHandler; if null, a default handler will be used that writes to stderr
        burnedinflag - whether or not and under what circumstances to to add/change BurnedInAnnotation attribute; takes one of the values of BurnedInAnnotationFlagAction
    • Method Detail

      • recordStateOfDrawingShapesForFileChange

        protected void recordStateOfDrawingShapesForFileChange()
      • createCineSliderIfNecessary

        protected void createCineSliderIfNecessary​(int min,
                                                   int max,
                                                   int value)
        Parameters:
        min - minimum frame number, starting from 1
        max - number of frames
        value - frame number, starting from 1
      • updateDisplayedFileNumber

        protected void updateDisplayedFileNumber​(int current,
                                                 int total)
      • loadDicomFileOrDirectory

        protected void loadDicomFileOrDirectory​(java.lang.String dicomFileName)

        Load the named DICOM file and display it in the image panel.

        Parameters:
        dicomFileName -
      • loadDicomFileOrDirectory

        protected void loadDicomFileOrDirectory​(java.io.File currentFile)

        Load the named DICOM file and display it in the image panel.

        Parameters:
        currentFile -
      • getScaleFactorToFitInMaximumAvailable

        protected double getScaleFactorToFitInMaximumAvailable​(double useWidth,
                                                               double useHeight,
                                                               double maxWidth,
                                                               double maxHeight)
      • changeDimensionToFitInMaximumAvailable

        protected java.awt.Dimension changeDimensionToFitInMaximumAvailable​(java.awt.Dimension useDimension,
                                                                            java.awt.Dimension maxDimension,
                                                                            boolean onlySmaller)
      • reduceDimensionToFitInMaximumAvailable

        protected java.awt.Dimension reduceDimensionToFitInMaximumAvailable​(java.awt.Dimension useDimension)
      • addSingleImagePanelToMultiPanelAndEstablishLayout

        protected void addSingleImagePanelToMultiPanelAndEstablishLayout()
      • addSingleImagePanelToMultiPanelAndEstablishLayoutWithCenterMaximumAfterInitialSizeLayout

        protected void addSingleImagePanelToMultiPanelAndEstablishLayoutWithCenterMaximumAfterInitialSizeLayout()
      • showUIComponents

        protected void showUIComponents()
      • buildUIComponents

        protected void buildUIComponents()
      • deconstruct

        public void deconstruct()
      • dispose

        public void dispose()
        Overrides:
        dispose in class java.awt.Window
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Throws:
        java.lang.Throwable
      • main

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

        The method to invoke the application.

        Parameters:
        arg - optionally, a list of files; if absent a file dialog is presented