Class DicomImageBlackout
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Frame
-
- javax.swing.JFrame
-
- com.pixelmed.display.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
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
-
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
-
Field Summary
-
Fields inherited from class java.awt.Frame
ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, NORMAL
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description 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.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.
-
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
-
-
-
-
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
-
imagePanel
protected SingleImagePanel imagePanel
-
list
protected AttributeList list
-
sImg
protected SourceImage sImg
-
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
-
cineSliderChangeListener
protected DicomImageBlackout.CineSliderChangeListener cineSliderChangeListener
-
cineSlider
protected javax.swing.JSlider cineSlider
-
imagesRemainingLabel
protected javax.swing.JLabel imagesRemainingLabel
-
ourEventContext
protected EventContext ourEventContext
-
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
-
statusNotificationHandler
protected DicomImageBlackout.StatusNotificationHandler statusNotificationHandler
-
applyActionListener
protected DicomImageBlackout.ApplyActionListener applyActionListener
-
saveActionListener
protected DicomImageBlackout.SaveActionListener saveActionListener
-
nextActionListener
protected DicomImageBlackout.NextActionListener nextActionListener
-
previousActionListener
protected DicomImageBlackout.PreviousActionListener previousActionListener
-
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 raisedsnh
- an instance ofStatusNotificationHandler
; if null, a default handler will be used that writes to stderrburnedinflag
- whether or not and under what circumstances to to add/change BurnedInAnnotation attribute; takes one of the values ofBurnedInAnnotationFlagAction
-
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 localedicomFileNames
- the list of file names to process, if null a file chooser dialog will be raisedsnh
- an instance ofStatusNotificationHandler
; if null, a default handler will be used that writes to stderrburnedinflag
- whether or not and under what circumstances to to add/change BurnedInAnnotation attribute; takes one of the values ofBurnedInAnnotationFlagAction
-
-
Method Detail
-
recordStateOfDrawingShapesForFileChange
protected void recordStateOfDrawingShapesForFileChange()
-
createCineSliderIfNecessary
protected void createCineSliderIfNecessary(int min, int max, int value)
- Parameters:
min
- minimum frame number, starting from 1max
- number of framesvalue
- 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 classjava.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
-
-