Class JDialogTimeFitting

    • Nested Class Summary

      • 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
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent event)
      action performed
      void algorithmPerformed​(AlgorithmBase algorithm)
      algorithm performed
      private javax.swing.JPanel buildBoundsPanel()  
      private javax.swing.JPanel buildFittingPanel()  
      protected void callAlgorithm()
      call algorithm
      ModelImage getResultImage()
      get result image
      private void init()  
      void itemStateChanged​(java.awt.event.ItemEvent event)
      item state changed
      private void loadImage()  
      protected void setGUIFromParams()
      set GUI from params
      private boolean setVariables()  
      protected void storeParamsFromGUI()
      store params from gui
      void windowClosing​(java.awt.event.WindowEvent event)
      window closing
      • 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • LINEAR_FIT

        private static final int LINEAR_FIT
        This dialog only allows 1 constant and 3 exponentials in the MULTIEXPONENTIAL_FIT at the present. From "Pade-Laplace Analysis in the Fitting of Multi-exponential Nuclear Magnetic Resonance Decay Curves" by N. J. Clayden: "The problem of the correct number of exponentials required to describe a decay has a long history, for 25 years ago Lanczos demonstrated that various three-exponential functions with similar time constants could be accurately reproduced by two-exponential expressions with markedly different amplitudes and time constants. Experimentally, the consequence of this is that the signal-to-noise ratio must be excellent, perhaps unachievably so, if a true three-exponential decay is not to be confused with a spurious two-exponential fit. More recently, this conclusion has been tested for a non-linear least squares analytical method over a wide range of three-exponential functions with varying levels of experimental noise. At practical signal-to-noise ratios, for example 1000:1, the time constants of three exponentials must differ by a factor of > two if a two-exponential fit is not to be statistically significant using non-linear least squares fitting." From "Exponential analysis in physical phenomena" by Andrei A. Istratov and Oleg F. Vyvenko: "The nonlinear least squares (NLS) method was successfully used for analysis of decays that consisted of one to three exponential decays. Grinvald, Morimoto et al., and Tahira et al. found that for a SNR better than 10E3 a double-exponential decay could be resolved if the ratio of time constants was tau1/tau2 > 2. However, in the case of three exponents the method was found to be very sensitive to even a small amount of noise. Bromage concluded that for a decay-time-constant ratio of 2:1, the retrieved values of parameters are about 200 times more uncertain on going from two to three exponentials. Clayden et al. concluded that in the case of a double-exponential decay, NLS fit is robust if tau1/tau2 > 2.4 and SNR is about 1E3. If a decay consists of three exponentials and SNR equals about 1E3, the components can be resolved if tau1/tau2 = tau2/tau3 > 3.5. If the SNR is about 100, three components can be resolved if the decay-time-constant ratio is above 10. It was also noted that the least squares method is not robust with respect to nonrandom errors in the transient."
        See Also:
        Constant Field Values
      • functionFit

        private int functionFit
      • resultImage

        private ModelImage resultImage
        result image
      • exitStatusImage

        private ModelImage exitStatusImage
      • isMultifile

        private boolean isMultifile
        boolean isMultifile
      • nDims

        private int nDims
      • textImage

        private javax.swing.JTextField textImage
      • buttonImage

        private javax.swing.JButton buttonImage
      • functionGroup

        private javax.swing.ButtonGroup functionGroup
      • linearFit

        private javax.swing.JRadioButton linearFit
      • exponentialFit

        private javax.swing.JRadioButton exponentialFit
      • gaussianFit

        private javax.swing.JRadioButton gaussianFit
      • laplaceFit

        private javax.swing.JRadioButton laplaceFit
      • lorentzFit

        private javax.swing.JRadioButton lorentzFit
      • multiExponentialFit

        private javax.swing.JRadioButton multiExponentialFit
      • numVariablesLabel

        private javax.swing.JLabel numVariablesLabel
      • numVariablesField

        private javax.swing.JTextField numVariablesField
      • numVariables

        private int numVariables
      • rayleighFit

        private javax.swing.JRadioButton rayleighFit
      • altTimeCheckBox

        private javax.swing.JCheckBox altTimeCheckBox
      • altTimeTagLabel

        private javax.swing.JLabel altTimeTagLabel
      • altTimeTagField

        private javax.swing.JTextField altTimeTagField
      • useAltTime

        private boolean useAltTime
      • altTimeDicomTag

        private java.lang.String altTimeDicomTag
      • logCheckBox

        private javax.swing.JCheckBox logCheckBox
      • useLog

        private boolean useLog
      • imageList

        private javax.swing.JComboBox imageList
      • labelVOI

        private javax.swing.JLabel labelVOI
      • buttonVOIFile

        private javax.swing.JButton buttonVOIFile
      • textVOIFile

        private javax.swing.JTextField textVOIFile
      • directoryVOI

        private java.lang.String directoryVOI
      • fileNameVOI

        private java.lang.String fileNameVOI
      • voi

        private VOI[] voi
      • initialCheckBox

        private javax.swing.JCheckBox initialCheckBox
      • findInitialFromData

        private boolean findInitialFromData
      • tabbedPane

        private javax.swing.JTabbedPane tabbedPane
      • labela0

        private javax.swing.JLabel labela0
      • labela1

        private javax.swing.JLabel labela1
      • labela2

        private javax.swing.JLabel labela2
      • labela3

        private javax.swing.JLabel labela3
      • labela4

        private javax.swing.JLabel labela4
      • labela5

        private javax.swing.JLabel labela5
      • labela6

        private javax.swing.JLabel labela6
      • texta0

        private javax.swing.JTextField texta0
      • texta1

        private javax.swing.JTextField texta1
      • texta2

        private javax.swing.JTextField texta2
      • texta3

        private javax.swing.JTextField texta3
      • texta4

        private javax.swing.JTextField texta4
      • texta5

        private javax.swing.JTextField texta5
      • texta6

        private javax.swing.JTextField texta6
      • b0CheckBox

        private javax.swing.JCheckBox b0CheckBox
      • b1CheckBox

        private javax.swing.JCheckBox b1CheckBox
      • b2CheckBox

        private javax.swing.JCheckBox b2CheckBox
      • b3CheckBox

        private javax.swing.JCheckBox b3CheckBox
      • b4CheckBox

        private javax.swing.JCheckBox b4CheckBox
      • b5CheckBox

        private javax.swing.JCheckBox b5CheckBox
      • b6CheckBox

        private javax.swing.JCheckBox b6CheckBox
      • low0Label

        private javax.swing.JLabel low0Label
      • low0TextField

        private javax.swing.JTextField low0TextField
      • high0Label

        private javax.swing.JLabel high0Label
      • high0TextField

        private javax.swing.JTextField high0TextField
      • low1Label

        private javax.swing.JLabel low1Label
      • low1TextField

        private javax.swing.JTextField low1TextField
      • high1Label

        private javax.swing.JLabel high1Label
      • high1TextField

        private javax.swing.JTextField high1TextField
      • low2Label

        private javax.swing.JLabel low2Label
      • low2TextField

        private javax.swing.JTextField low2TextField
      • high2Label

        private javax.swing.JLabel high2Label
      • high2TextField

        private javax.swing.JTextField high2TextField
      • low3Label

        private javax.swing.JLabel low3Label
      • low3TextField

        private javax.swing.JTextField low3TextField
      • high3Label

        private javax.swing.JLabel high3Label
      • high3TextField

        private javax.swing.JTextField high3TextField
      • low4Label

        private javax.swing.JLabel low4Label
      • low4TextField

        private javax.swing.JTextField low4TextField
      • high4Label

        private javax.swing.JLabel high4Label
      • high4TextField

        private javax.swing.JTextField high4TextField
      • low5Label

        private javax.swing.JLabel low5Label
      • low5TextField

        private javax.swing.JTextField low5TextField
      • high5Label

        private javax.swing.JLabel high5Label
      • high5TextField

        private javax.swing.JTextField high5TextField
      • low6Label

        private javax.swing.JLabel low6Label
      • low6TextField

        private javax.swing.JTextField low6TextField
      • high6Label

        private javax.swing.JLabel high6Label
      • high6TextField

        private javax.swing.JTextField high6TextField
      • initial

        private double[] initial
      • useBounds

        private boolean[] useBounds
      • lowBounds

        private double[] lowBounds
      • highBounds

        private double[] highBounds
    • Constructor Detail

      • JDialogTimeFitting

        public JDialogTimeFitting()
    • Method Detail

      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent event)
        action performed
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Overrides:
        actionPerformed in class JDialogBase
      • loadImage

        private void loadImage()
      • init

        private void init()
      • buildFittingPanel

        private javax.swing.JPanel buildFittingPanel()
      • buildBoundsPanel

        private javax.swing.JPanel buildBoundsPanel()
      • setVariables

        private boolean setVariables()
      • getResultImage

        public ModelImage getResultImage()
        get result image
        Returns:
        The result image.
      • itemStateChanged

        public void itemStateChanged​(java.awt.event.ItemEvent event)
        item state changed
        Specified by:
        itemStateChanged in interface java.awt.event.ItemListener
        Overrides:
        itemStateChanged in class JDialogBase
        Parameters:
        event - DOCUMENT ME!
      • windowClosing

        public void windowClosing​(java.awt.event.WindowEvent event)
        window closing
        Specified by:
        windowClosing in interface java.awt.event.WindowListener
        Overrides:
        windowClosing in class JDialogBase
        Parameters:
        event - WindowEvent