Package gov.nih.mipav.view.dialogs
Class JDialogIndependentComponents
- 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.JDialogIndependentComponents
-
- All Implemented Interfaces:
AlgorithmInterface
,ScriptableActionInterface
,DialogDefaultsInterface
,java.awt.event.ActionListener
,java.awt.event.FocusListener
,java.awt.event.ItemListener
,java.awt.event.WindowListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,javax.swing.event.ListSelectionListener
,javax.swing.RootPaneContainer
,javax.swing.WindowConstants
public class JDialogIndependentComponents extends JDialogScriptableBase implements AlgorithmInterface, javax.swing.event.ListSelectionListener
Dialog to get user input, then call the algorithm.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class gov.nih.mipav.view.dialogs.JDialogBase
JDialogBase.CancelAction, JDialogBase.HelpAction, JDialogBase.OKAction
-
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
-
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
-
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
-
Field Summary
Fields Modifier and Type Field Description private double
a1
private AlgorithmIndependentComponents
aicAlgo
DOCUMENT ME!private boolean
changeRemoveIndex
DOCUMENT ME!private javax.swing.JButton
chooserButton
DOCUMENT ME!private JPanelColorChannels
colorPanel
DOCUMENT ME!private javax.swing.JRadioButton
cubicButton
private javax.swing.JRadioButton
deflationaryOrthogonalization
DOCUMENT ME!private int[]
destExtents
DOCUMENT ME!private double
endTol
DOCUMENT ME!private javax.swing.JRadioButton
expButton
private int
icAlgorithm
DOCUMENT ME!private javax.swing.ButtonGroup
icAlgorithmGroup
DOCUMENT ME!private javax.swing.JPanel
icAlgorithmPanel
DOCUMENT ME!private int
icNumber
Number of independent componentsprivate javax.swing.JList
imageList
DOCUMENT ME!private javax.swing.JPanel
imagePanel
DOCUMENT ME!private javax.swing.JLabel
labela1
private javax.swing.JLabel
labelEndTol
DOCUMENT ME!private javax.swing.JLabel
labelICNumber
DOCUMENT ME!private javax.swing.JLabel
labelMaxIter
DOCUMENT ME!private javax.swing.JRadioButton
maximumLikelihoodEstimation
DOCUMENT ME!private int
maxIter
DOCUMENT ME!private javax.swing.DefaultListModel
model
DOCUMENT ME!private int
nonlinearFunction
private javax.swing.ButtonGroup
nonlinearFunctionGroup
DOCUMENT ME!private javax.swing.JPanel
nonlinearFunctionPanel
DOCUMENT ME!private javax.swing.JPanel
paramPanel
DOCUMENT ME!private javax.swing.JButton
removeButton
DOCUMENT ME!private int
removeIndex
DOCUMENT ME!private ModelImage[]
resultImage
DOCUMENT ME!private ModelImage[]
srcImage
DOCUMENT ME!private int
srcNumber
DOCUMENT ME!private javax.swing.JRadioButton
symmetricOrthogonalization
DOCUMENT ME!private javax.swing.JRadioButton
tanhButton
private ModelImage[]
tempImage
DOCUMENT ME!private javax.swing.JTextField
texta1
private javax.swing.JTextField
textEndTol
DOCUMENT ME!private javax.swing.JTextField
textICNumber
DOCUMENT ME!private javax.swing.JTextField
textMaxIter
DOCUMENT ME!private ViewUserInterface
userInterface
DOCUMENT ME!-
Fields inherited from class gov.nih.mipav.view.dialogs.JDialogScriptableBase
displayInNewFrame, isComplete, scriptParameters
-
Fields 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, voiManager
-
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description JDialogIndependentComponents()
Empty constructor needed for dynamic instantiation (used during scripting).JDialogIndependentComponents(java.awt.Frame theParentFrame, ModelImage im)
Creates a new JDialogIndependentComponents object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(java.awt.event.ActionEvent event)
Closes dialog box when the OK button is pressed and calls the algorithm.void
algorithmPerformed(AlgorithmBase algorithm)
This method is required if the AlgorithmPerformed interface is implemented.protected void
callAlgorithm()
Once all the necessary variables are set, call the Fuzzy C Means algorithm based on what type of image this is and whether or not there is a separate destination image.private boolean
checkImage(ModelImage testImage)
Checks the color and dimensionality of the new image vs. the original source image.protected void
doPostAlgorithmActions()
Store the result image in the script runner's image table now that the action execution is finished.private javax.swing.filechooser.FileFilter
getFileFilter(javax.swing.JFileChooser chooser, int index)
A private helper function to get the current used FileFilter from JFileChooser.ModelImage[]
getResultImage()
Accessor that returns the image.private void
init()
Sets up the GUI (panels, buttons, etc) and displays it on the screen.private ModelImage
open()
Open an image based on the suffix of the file.void
seta1(double a1)
Accessor that sets parameter a1 for tanh functionvoid
setEndTol(double scale)
Accessor that sets the end tol.protected void
setGUIFromParams()
Set the dialog GUI using the script parameters while running this algorithm as part of a script.void
setICAlgorithm(int icAlgorithm)
Accessor that sets the icAlgorithm type (SYMMETRIC_ORTHOGONALIZATION, DEFLATIONARY_ORTHOGONALIZATION, or MAXIMUM_LIKELIHOOD_ESTIMATION).void
setICNumber(int icNumber)
Accessor that sets the number of independent components.void
setMaxIter(int max)
Accessor that sets the max iterations.void
setNonlinearFunction(int nonlinearFunction)
Accessor that sets the nonlinear function type(tanh(a1*y), y*exp(-y*y/2), or y*y*y)void
setSourceImage(ModelImage[] images)
Accessor that sets the array of source images.private boolean
setVariables()
Use the GUI results to set up the variables needed to run the algorithm.protected void
storeParamsFromGUI()
Record the parameters just used to run this algorithm in a script.void
valueChanged(javax.swing.event.ListSelectionEvent evt)
Sets the remove index based on the selected index in the list.-
Methods inherited from class gov.nih.mipav.view.dialogs.JDialogScriptableBase
getDialogActionString, insertScriptLine, isComplete, scriptRun, setComplete
-
Methods 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, itemStateChanged, 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, windowOpened
-
Methods 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, update
-
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBack
-
Methods 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, toFront
-
Methods 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, validateTree
-
Methods 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, transferFocusUpCycle
-
-
-
-
Field Detail
-
aicAlgo
private AlgorithmIndependentComponents aicAlgo
DOCUMENT ME!
-
changeRemoveIndex
private boolean changeRemoveIndex
DOCUMENT ME!
-
chooserButton
private javax.swing.JButton chooserButton
DOCUMENT ME!
-
colorPanel
private JPanelColorChannels colorPanel
DOCUMENT ME!
-
destExtents
private int[] destExtents
DOCUMENT ME!
-
endTol
private double endTol
DOCUMENT ME!
-
deflationaryOrthogonalization
private javax.swing.JRadioButton deflationaryOrthogonalization
DOCUMENT ME!
-
maximumLikelihoodEstimation
private javax.swing.JRadioButton maximumLikelihoodEstimation
DOCUMENT ME!
-
symmetricOrthogonalization
private javax.swing.JRadioButton symmetricOrthogonalization
DOCUMENT ME!
-
imageList
private javax.swing.JList imageList
DOCUMENT ME!
-
imagePanel
private javax.swing.JPanel imagePanel
DOCUMENT ME!
-
nonlinearFunctionGroup
private javax.swing.ButtonGroup nonlinearFunctionGroup
DOCUMENT ME!
-
nonlinearFunctionPanel
private javax.swing.JPanel nonlinearFunctionPanel
DOCUMENT ME!
-
nonlinearFunction
private int nonlinearFunction
-
tanhButton
private javax.swing.JRadioButton tanhButton
-
labela1
private javax.swing.JLabel labela1
-
texta1
private javax.swing.JTextField texta1
-
a1
private double a1
-
expButton
private javax.swing.JRadioButton expButton
-
cubicButton
private javax.swing.JRadioButton cubicButton
-
labelEndTol
private javax.swing.JLabel labelEndTol
DOCUMENT ME!
-
labelMaxIter
private javax.swing.JLabel labelMaxIter
DOCUMENT ME!
-
labelICNumber
private javax.swing.JLabel labelICNumber
DOCUMENT ME!
-
maxIter
private int maxIter
DOCUMENT ME!
-
model
private javax.swing.DefaultListModel model
DOCUMENT ME!
-
icNumber
private int icNumber
Number of independent components
-
paramPanel
private javax.swing.JPanel paramPanel
DOCUMENT ME!
-
removeButton
private javax.swing.JButton removeButton
DOCUMENT ME!
-
removeIndex
private int removeIndex
DOCUMENT ME!
-
resultImage
private ModelImage[] resultImage
DOCUMENT ME!
-
icAlgorithm
private int icAlgorithm
DOCUMENT ME!
-
icAlgorithmGroup
private javax.swing.ButtonGroup icAlgorithmGroup
DOCUMENT ME!
-
icAlgorithmPanel
private javax.swing.JPanel icAlgorithmPanel
DOCUMENT ME!
-
srcImage
private ModelImage[] srcImage
DOCUMENT ME!
-
srcNumber
private int srcNumber
DOCUMENT ME!
-
tempImage
private ModelImage[] tempImage
DOCUMENT ME!
-
textEndTol
private javax.swing.JTextField textEndTol
DOCUMENT ME!
-
textMaxIter
private javax.swing.JTextField textMaxIter
DOCUMENT ME!
-
textICNumber
private javax.swing.JTextField textICNumber
DOCUMENT ME!
-
userInterface
private ViewUserInterface userInterface
DOCUMENT ME!
-
-
Constructor Detail
-
JDialogIndependentComponents
public JDialogIndependentComponents()
Empty constructor needed for dynamic instantiation (used during scripting).
-
JDialogIndependentComponents
public JDialogIndependentComponents(java.awt.Frame theParentFrame, ModelImage im)
Creates a new JDialogIndependentComponents object.- Parameters:
theParentFrame
- parent frameim
- source image
-
-
Method Detail
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent event)
Closes dialog box when the OK button is pressed and calls the algorithm.- Specified by:
actionPerformed
in interfacejava.awt.event.ActionListener
- Overrides:
actionPerformed
in classJDialogBase
- Parameters:
event
- Event that triggers function.
-
algorithmPerformed
public void algorithmPerformed(AlgorithmBase algorithm)
This method is required if the AlgorithmPerformed interface is implemented. It is called by the algorithms when it has completed or failed to to complete, so that the dialog can be display the result image and/or clean up.- Specified by:
algorithmPerformed
in interfaceAlgorithmInterface
- Parameters:
algorithm
- Algorithm that caused the event.
-
getResultImage
public ModelImage[] getResultImage()
Accessor that returns the image.- Returns:
- The result image.
-
setEndTol
public void setEndTol(double scale)
Accessor that sets the end tol.- Parameters:
scale
- Value to set end tol to.
-
setMaxIter
public void setMaxIter(int max)
Accessor that sets the max iterations.- Parameters:
max
- The max iterations
-
setICNumber
public void setICNumber(int icNumber)
Accessor that sets the number of independent components.- Parameters:
classes
- The number of independent components.
-
setICAlgorithm
public void setICAlgorithm(int icAlgorithm)
Accessor that sets the icAlgorithm type (SYMMETRIC_ORTHOGONALIZATION, DEFLATIONARY_ORTHOGONALIZATION, or MAXIMUM_LIKELIHOOD_ESTIMATION).- Parameters:
icAlgorithm
- The independent component algorithm.
-
setNonlinearFunction
public void setNonlinearFunction(int nonlinearFunction)
Accessor that sets the nonlinear function type(tanh(a1*y), y*exp(-y*y/2), or y*y*y)- Parameters:
nonlinearFunction
-
-
seta1
public void seta1(double a1)
Accessor that sets parameter a1 for tanh function- Parameters:
a1
-
-
setSourceImage
public void setSourceImage(ModelImage[] images)
Accessor that sets the array of source images.- Parameters:
images
- new source images.
-
valueChanged
public void valueChanged(javax.swing.event.ListSelectionEvent evt)
Sets the remove index based on the selected index in the list.- Specified by:
valueChanged
in interfacejavax.swing.event.ListSelectionListener
- Parameters:
evt
- Event that caused this method to fire.
-
callAlgorithm
protected void callAlgorithm()
Once all the necessary variables are set, call the Fuzzy C Means algorithm based on what type of image this is and whether or not there is a separate destination image.- Specified by:
callAlgorithm
in classJDialogScriptableBase
-
doPostAlgorithmActions
protected void doPostAlgorithmActions()
Store the result image in the script runner's image table now that the action execution is finished.- Overrides:
doPostAlgorithmActions
in classJDialogScriptableBase
-
setGUIFromParams
protected void setGUIFromParams()
Set the dialog GUI using the script parameters while running this algorithm as part of a script.- Specified by:
setGUIFromParams
in classJDialogScriptableBase
-
storeParamsFromGUI
protected void storeParamsFromGUI() throws ParserException
Record the parameters just used to run this algorithm in a script.- Specified by:
storeParamsFromGUI
in classJDialogScriptableBase
- Throws:
ParserException
- If there is a problem creating/recording the new parameters.
-
checkImage
private boolean checkImage(ModelImage testImage)
Checks the color and dimensionality of the new image vs. the original source image. All new images should have the same color modality as the source and be of the same dimensions.- Parameters:
testImage
- DOCUMENT ME!- Returns:
- Flag indicating if the image checks out.
-
getFileFilter
private javax.swing.filechooser.FileFilter getFileFilter(javax.swing.JFileChooser chooser, int index)
A private helper function to get the current used FileFilter from JFileChooser.- Parameters:
chooser
- DOCUMENT ME!index
- the index of the choosable file filters.- Returns:
- the current used file filter.
-
init
private void init()
Sets up the GUI (panels, buttons, etc) and displays it on the screen.
-
open
private ModelImage open()
Open an image based on the suffix of the file.- Returns:
- The image.
-
setVariables
private boolean setVariables()
Use the GUI results to set up the variables needed to run the algorithm.- Returns:
true
if parameters set successfully,false
otherwise.
-
-