Package gov.nih.mipav.view.dialogs
Class JDialogRegistrationBSpline
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Dialog
javax.swing.JDialog
gov.nih.mipav.view.dialogs.JDialogBase
gov.nih.mipav.view.dialogs.JDialogScriptableBase
gov.nih.mipav.view.dialogs.JDialogRegistrationBSpline
- All Implemented Interfaces:
AlgorithmInterface,ScriptableActionInterface,DialogDefaultsInterface,ActionDiscovery,ActionListener,FocusListener,ItemListener,WindowListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,RootPaneContainer,WindowConstants
public class JDialogRegistrationBSpline
extends JDialogScriptableBase
implements AlgorithmInterface, ActionDiscovery
This class is used to display the options to the user for performing 2D, 3D, and 2.5D B-Spline registration. In the
case of 2D and 3D, a separate target image is specified. In the case of 2.5D, the target image (slice) is selected
from the input source image. The registration is always performed against the target image so the output registered
image has the values from the input source image but the dimensions of the target for 2D/3D and the dimensions of the
source image for 2.5D. The same dialog is presented for 2D and 3D. The dialog is nearly the same for 2.5D except for
how the target slice is selected.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classPrivate class which holds dialog controls associated with the values in the AlgorithmRegBSpline.Options class for a "pass" of registration.Nested classes/interfaces inherited from class gov.nih.mipav.view.dialogs.JDialogBase
JDialogBase.CancelAction, JDialogBase.HelpAction, JDialogBase.OKActionNested classes/interfaces inherited from class javax.swing.JDialog
JDialog.AccessibleJDialogNested classes/interfaces inherited from class java.awt.Dialog
Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityTypeNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StringDOCUMENT MEprivate String[]Contains names of compatible target images that can be registered to the input source image for 2D/3D registration.private booleanFlag set if the deformation computation is to be performed.private intIndex of the slice from the source image to use for 2.5 registration.private AlgorithmRegBSplineFlag set if the deformation computation is to be performed.private JCheckBoxDOCUMENT ME!private JCheckBoxDOCUMENT ME!private JComboBoxDOCUMENT ME!private JComboBoxControls displayed in the dialog box.private JComboBoxDOCUMENT ME!Container for controls to select the parameters for the first pass of registration.Container for controls to select the parameters for the optional second pass of registration.private ModelImageReference to new image creatd with computed deformation resulting from registration.private ModelImageReference to new image created with result of registration of source image.private ModelImageReference to the input source image.private ModelImageReference to the selected target image.private JLabelDOCUMENT ME!private JLabelDOCUMENT ME!private JLabelDOCUMENT ME!private JLabelDOCUMENT ME!private AlgorithmRegBSpline.OptionsReference to parameters to use for first pass of registration.private AlgorithmRegBSpline.OptionsReference to parameters to use for optional second pass of registration.private JRadioButtonDOCUMENT ME!private JRadioButtonDOCUMENT ME!private RegistrationMeasureReference to concrete implementation of the RegistrationMeasure abstract class which defines the particular measure to use during registration.private ViewUserInterfaceUsed for scripting and to access the currently registered images.private static final longUse serialVersionUID for interoperability.Fields inherited from class gov.nih.mipav.view.dialogs.JDialogScriptableBase
displayInNewFrame, isComplete, scriptParametersFields inherited from class gov.nih.mipav.view.dialogs.JDialogBase
applyButton, bar, cancelButton, cancelFlag, closeButton, HELP, helpButton, mainDialogPanel, NEW, OKButton, parentFrame, progressBar, REPLACE, runInSeparateThread, runningScriptFlag, runQuiet, serif12, serif12B, voiManagerFields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabledFields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPEFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionEmpty constructor needed for dynamic instantiation.JDialogRegistrationBSpline(Frame kParentFrame, ModelImage kImageSrc, String[] akNamesCompatibleTargetImages) Creates new registration dialog. -
Method Summary
Modifier and TypeMethodDescriptionvoidactionPerformed(ActionEvent event) Closes dialog box when the OK button is pressed, sets up the variables needed for running the algorithm, and calls the algorithm.voidalgorithmPerformed(AlgorithmBase algorithm) This method is required if the AlgorithmPerformed interface is implemented.protected voidRuns the algorithm.Returns a table listing the input parameters of this algorithm (which should match up with the scripting parameters used insetGUIFromParams()).Returns a table listing the output parameters of this algorithm (usually just labels used to obtain output image names later).protected voidStore the result image in the script runner's image table now that the action execution is finished.Return meta-information about this discoverable action for categorization and labeling purposes.static String[]getNamesCompatibleTargetImages(ModelImage kImageSrc) Find the frame images that are compatible as targets with the specified source image for the purpose of B-spline registration.getOutputImageName(String imageParamName) Returns the name of an image output by this algorithm, the image returned depends on the parameter label given (which can be used to retrieve the image object from the image registry).private voidInitializes the GUI components and displays the dialog.booleanReturns whether the action has successfully completed its execution.private booleanConvenience method to determine if this is a 2.5D registration where the reference (target) image is once of the slices in the source image.voiditemStateChanged(ItemEvent event) Implementation of JDialogBase abstract method.protected voidSet the dialog GUI using the script parameters while running this algorithm as part of a script.protected voidRecord the parameters just used to run this algorithm in a script.private voidCalled to create the RegistrationMeasure-derived class associated with the current selection in the combo box of possible registration measures.private voidCalled to reset all of the controls to their default values.private voidCalled to setup controls passed on the current state of the check box for selecting single- or two-pass registration.private voiduserSetRefImage(ModelImage image) Accessor to set the target image.private voidCalled whenever the user changes the selection of the target slice for 2.5D image registration.Methods inherited from class gov.nih.mipav.view.dialogs.JDialogScriptableBase
getDialogActionString, insertScriptLine, isComplete, scriptRun, setCompleteMethods inherited from class gov.nih.mipav.view.dialogs.JDialogBase
buildApplyButton, buildButtons, buildCancelButton, buildCancelButton, buildCloseButton, buildHelpButton, buildImageComboBox, buildOKButton, buildOKButton, buildOKCancelButtons, buildTitledBorder, buildTitledBorder, createLabel, createProgressBar, createProgressBar, createTextField, focusGained, focusLost, getDialogName, isCancelled, isQuietRunning, isRunInSeparateThread, isScriptRunning, loadDefaults, loadDefaults, makeImageName, makeString, openNewFrame, saveDefaults, saveDefaults, setLeftHandSystem, setQuietRunning, setScriptRunning, setSeparateThread, setVisible, setVisible, setVisibleMenuBar, setVisibleStandard, setVOIManager, setWCSystem, testParameter, testParameterMin, updateFFTFileInfo, updateFileInfo, updateFileInfoOtherModality, updateFileInfoStatic, updateFileInfoStatic, updateFileTypeInfo, updateFileTypeInfo, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpenedMethods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, updateMethods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBackMethods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, 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, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, toFrontMethods inherited from class java.awt.Container
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, validateTreeMethods inherited from class java.awt.Component
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, 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, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface gov.nih.mipav.view.dialogs.ActionDiscovery
scriptRun
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDUse serialVersionUID for interoperability.- See Also:
-
kStringDimension
DOCUMENT ME.* -
m_akNamesCompatibleTargetImages
Contains names of compatible target images that can be registered to the input source image for 2D/3D registration. Null reference for 2.5D registration. -
m_bCreateDeformationImage
private boolean m_bCreateDeformationImageFlag set if the deformation computation is to be performed. Reflects the state of the associated check box in the dialog. -
m_iTargetSlice
private int m_iTargetSliceIndex of the slice from the source image to use for 2.5 registration. The index may be -1 to indicate registration is with adjacent slice. Reflects the state of the target slice radio buttons and the combo box if a particular reference slice is to be used. -
m_kAlgorithmReg
Flag set if the deformation computation is to be performed. -
m_kCheckCreateDeformationImage
DOCUMENT ME! -
m_kCheckMultiPass
DOCUMENT ME! -
m_kComboBoxCostFunction
DOCUMENT ME! -
m_kComboBoxTargetImage
Controls displayed in the dialog box. All of these controls are always displayed unless otherwise noted. -
m_kComboBoxTargetSlice
DOCUMENT ME! -
m_kControlsPass1
Container for controls to select the parameters for the first pass of registration. These controls are always displayed. -
m_kControlsPass2
Container for controls to select the parameters for the optional second pass of registration. These controls are created but are only displayed when the check box is selected for two-pass registration. -
m_kImageDef
Reference to new image creatd with computed deformation resulting from registration. Null reference is deformation computation is not selected. -
m_kImageReg
Reference to new image created with result of registration of source image. Cannot be null. -
m_kImageSrc
Reference to the input source image. Cannot be null. -
m_kImageTrg
Reference to the selected target image. Null reference for 2.5D registration. -
m_kLabelIterationsPass1
DOCUMENT ME! -
m_kLabelIterationsPass2
DOCUMENT ME! -
m_kLabelOptionsPass1
DOCUMENT ME! -
m_kLabelOptionsPass2
DOCUMENT ME! -
m_kOptionsPass1
Reference to parameters to use for first pass of registration. Cannot be null. -
m_kOptionsPass2
Reference to parameters to use for optional second pass of registration. Null reference if only a single pass of registration is to be performed. -
m_kRadioSliceAdjacent
DOCUMENT ME! -
m_kRadioSliceReference
DOCUMENT ME! -
m_kRegMeasure
Reference to concrete implementation of the RegistrationMeasure abstract class which defines the particular measure to use during registration. Cannot be null. Reflects the selection in the associated combo box in the dialog. -
m_kUI
Used for scripting and to access the currently registered images.
-
-
Constructor Details
-
JDialogRegistrationBSpline
public JDialogRegistrationBSpline()Empty constructor needed for dynamic instantiation. Used primarily for the script to store variables and run the algorithm. No actual dialog will appear but the set up info and result image will be stored here. -
JDialogRegistrationBSpline
public JDialogRegistrationBSpline(Frame kParentFrame, ModelImage kImageSrc, String[] akNamesCompatibleTargetImages) Creates new registration dialog.- Parameters:
kParentFrame- Parent framekImageSrc- Source imageakNamesCompatibleTargetImages- String[] Array containing the names of target images which are compatible for registering to the input source image. This list must contain at least one image name and the list must not contain the name of the input source image. A target image is used for 2D/3D registration. If this reference is null, then the registration is for 2.5 meaning the target image will be a selected slice from within the 3D image.
-
-
Method Details
-
getNamesCompatibleTargetImages
Find the frame images that are compatible as targets with the specified source image for the purpose of B-spline registration.- Parameters:
kImageSrc- ModelImage Reference to the source image.- Returns:
- String[] Array of names of compatible images.
-
actionPerformed
Closes dialog box when the OK button is pressed, sets up the variables needed for running the algorithm, and calls the algorithm.- Specified by:
actionPerformedin interfaceActionListener- Overrides:
actionPerformedin classJDialogBase- Parameters:
event- Event that triggers function
-
algorithmPerformed
This method is required if the AlgorithmPerformed interface is implemented. It is called by the algorithm when it has completed or failed to to complete, so that the dialog can display the result image and/or clean up.- Specified by:
algorithmPerformedin interfaceAlgorithmInterface- Parameters:
algorithm- Algorithm that caused the event.
-
itemStateChanged
Implementation of JDialogBase abstract method. Method to handle item events.- Specified by:
itemStateChangedin interfaceItemListener- Overrides:
itemStateChangedin classJDialogBase- Parameters:
event- Event that caused the method to fire
-
callAlgorithm
protected void callAlgorithm()Runs the algorithm.- Specified by:
callAlgorithmin classJDialogScriptableBase
-
doPostAlgorithmActions
protected void doPostAlgorithmActions()Store the result image in the script runner's image table now that the action execution is finished.- Overrides:
doPostAlgorithmActionsin classJDialogScriptableBase
-
setGUIFromParams
protected void setGUIFromParams()Set the dialog GUI using the script parameters while running this algorithm as part of a script.- Specified by:
setGUIFromParamsin classJDialogScriptableBase
-
storeParamsFromGUI
Record the parameters just used to run this algorithm in a script.- Specified by:
storeParamsFromGUIin classJDialogScriptableBase- Throws:
ParserException- If there is a problem creating/recording the new parameters.
-
initControls
private void initControls()Initializes the GUI components and displays the dialog. -
isRefImageSourceSlice
private boolean isRefImageSourceSlice()Convenience method to determine if this is a 2.5D registration where the reference (target) image is once of the slices in the source image.- Returns:
- boolean
-
userSetCostFunction
private void userSetCostFunction()Called to create the RegistrationMeasure-derived class associated with the current selection in the combo box of possible registration measures. -
userSetDefaults
private void userSetDefaults()Called to reset all of the controls to their default values. -
userSetMultiPassControls
private void userSetMultiPassControls()Called to setup controls passed on the current state of the check box for selecting single- or two-pass registration. -
userSetRefImage
Accessor to set the target image.- Parameters:
image- The target image.
-
userSetTargetSlice
private void userSetTargetSlice()Called whenever the user changes the selection of the target slice for 2.5D image registration. -
getActionMetadata
Return meta-information about this discoverable action for categorization and labeling purposes.- Specified by:
getActionMetadatain interfaceActionDiscovery- Returns:
- Metadata for this action.
-
createInputParameters
Returns a table listing the input parameters of this algorithm (which should match up with the scripting parameters used insetGUIFromParams()).- Specified by:
createInputParametersin interfaceActionDiscovery- Returns:
- A parameter table listing the inputs of this algorithm.
-
createOutputParameters
Returns a table listing the output parameters of this algorithm (usually just labels used to obtain output image names later).- Specified by:
createOutputParametersin interfaceActionDiscovery- Returns:
- A parameter table listing the outputs of this algorithm.
-
getOutputImageName
Returns the name of an image output by this algorithm, the image returned depends on the parameter label given (which can be used to retrieve the image object from the image registry).- Specified by:
getOutputImageNamein interfaceActionDiscovery- Parameters:
imageParamName- The output image parameter label for which to get the image name.- Returns:
- The image name of the requested output image parameter label.
-
isActionComplete
public boolean isActionComplete()Returns whether the action has successfully completed its execution.- Specified by:
isActionCompletein interfaceActionDiscovery- Returns:
- True, if the action is complete. False, if the action failed or is still running.
-