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.
javax.swing.JFrame.AccessibleJFrame
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor and Description |
---|
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.
|
Modifier and Type | Method and 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) |
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
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, 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, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
protected java.lang.String ourAETitle
protected java.lang.String[] dicomFileNames
protected java.lang.String currentFileName
protected int currentFileNumber
protected javax.swing.Box mainPanel
protected javax.swing.JPanel multiPanel
protected SingleImagePanel imagePanel
protected AttributeList list
protected SourceImage sImg
protected boolean changesWereMade
protected boolean usedjpegblockredaction
protected boolean deferredDecompression
protected java.io.File redactedJPEGFile
protected int previousRows
protected int previousColumns
protected java.util.Vector previousPersistentDrawingShapes
protected javax.swing.JPanel cineSliderControlsPanel
protected DicomImageBlackout.CineSliderChangeListener cineSliderChangeListener
protected javax.swing.JSlider cineSlider
protected javax.swing.JLabel imagesRemainingLabel
protected EventContext ourEventContext
protected boolean burnInOverlays
protected boolean useZeroBlackoutValue
protected boolean usePixelPaddingBlackoutValue
protected javax.swing.JCheckBox useZeroBlackoutValueCheckBox
protected javax.swing.JCheckBox usePixelPaddingBlackoutValueCheckBox
protected com.pixelmed.display.DicomImageBlackout.OurFrameSelectionChangeListener ourFrameSelectionChangeListener
protected int burnedinflag
protected DicomImageBlackout.StatusNotificationHandler statusNotificationHandler
protected DicomImageBlackout.ApplyActionListener applyActionListener
protected DicomImageBlackout.SaveActionListener saveActionListener
protected DicomImageBlackout.NextActionListener nextActionListener
protected DicomImageBlackout.PreviousActionListener previousActionListener
protected javax.swing.JButton blackoutApplyButton
protected javax.swing.JButton blackoutSaveButton
protected javax.swing.JButton blackoutNextButton
protected javax.swing.JButton blackoutPreviousButton
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.
title
- the string to use in the title bar of the windowdicomFileNames
- the list of file names to process, if null a file chooser dialog will be raisedsnh
- an instance of StatusNotificationHandler
; 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 of BurnedInAnnotationFlagAction
protected void recordStateOfDrawingShapesForFileChange()
protected void createCineSliderIfNecessary(int min, int max, int value)
min
- minimum frame number, starting from 1max
- number of framesvalue
- frame number, starting from 1protected void updateDisplayedFileNumber(int current, int total)
protected void loadDicomFileOrDirectory(java.lang.String dicomFileName)
Load the named DICOM file and display it in the image panel.
dicomFileName
- protected void loadDicomFileOrDirectory(java.io.File currentFile)
Load the named DICOM file and display it in the image panel.
currentFile
- protected double getScaleFactorToFitInMaximumAvailable(double useWidth, double useHeight, double maxWidth, double maxHeight)
protected java.awt.Dimension changeDimensionToFitInMaximumAvailable(java.awt.Dimension useDimension, java.awt.Dimension maxDimension, boolean onlySmaller)
protected java.awt.Dimension reduceDimensionToFitInMaximumAvailable(java.awt.Dimension useDimension)
protected void addSingleImagePanelToMultiPanelAndEstablishLayout()
protected void addSingleImagePanelToMultiPanelAndEstablishLayoutWithCenterMaximumAfterInitialSizeLayout()
protected void showUIComponents()
protected void buildUIComponents()
public void deconstruct()
public void dispose()
dispose
in class java.awt.Window
protected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
java.lang.Throwable
public static void main(java.lang.String[] arg)
The method to invoke the application.
arg
- optionally, a list of files; if absent a file dialog is presented