Class JDialogSubsample

  • All Implemented Interfaces:
    AlgorithmInterface, ScriptableActionInterface, DialogDefaultsInterface, ActionDiscovery, 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.RootPaneContainer, javax.swing.WindowConstants

    public class JDialogSubsample
    extends JDialogScriptableBase
    implements AlgorithmInterface, ActionDiscovery, java.awt.event.ItemListener
    Dialog for subsampling a 2D or 3D or 4D image by 2, 4, or 8. With 4D images only the first 3 dimensions are subsampled.
    Version:
    1.0
    Author:
    Sir Benjamin Link
    See Also:
    Serialized Form
    • 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
    • Constructor Summary

      Constructors 
      Constructor Description
      JDialogSubsample()
      Empty constructor needed for dynamic instantiation (used during scripting).
      JDialogSubsample​(java.awt.Frame theParentFrame, ModelImage sourceImage)
      Constructor for creating the dialog via a parent frame.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)
      Method for catching actions (button/script).
      void algorithmPerformed​(AlgorithmBase algo)
      Method for catching end of algorithm events.
      protected void callAlgorithm()
      Method for calling the Subsample algorithm.
      ParameterTable createInputParameters()
      Returns a table listing the input parameters of this algorithm (which should match up with the scripting parameters used in setGUIFromParams()).
      ParameterTable createOutputParameters()
      Returns a table listing the output parameters of this algorithm (usually just labels used to obtain output image names later).
      protected void doPostAlgorithmActions()
      Store the result image in the script runner's image table now that the action execution is finished.
      ActionMetadata getActionMetadata()
      Return meta-information about this discoverable action for categorization and labeling purposes.
      java.lang.String getOutputImageName​(java.lang.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).
      ModelImage getResultImage()
      Accessor that returns the image.
      private void init()
      Sets up the dialog window and makes it visible.
      boolean isActionComplete()
      Returns whether the action has successfully completed its execution.
      private boolean isDivisible​(int dimValue, int scale)
      Check if the extent value is divisible by 2, 4 or 8.
      void itemStateChanged​(java.awt.event.ItemEvent event)
      Respond to checkbox item events.
      private int makeExtentDivisibleByDenom​(int dimValue, int scale)
      Calculate the nearest extent value divisible by 2, 4 or 8
      void setDoVOI​(boolean doVOI)
      Accessor that tells whether VOIs are transformed.
      protected void setGUIFromParams()
      Set the dialog GUI using the script parameters while running this algorithm as part of a script.
      void setProcessIndep​(boolean processIndep)
      Accessor that sets whether slices are processed independently.
      boolean setSubsamplingRate​(int subSample)
      Accessor that programatically sets the subsampling amount
      private boolean setVariables()
      Sets the variables based on the user's dialog input.
      protected void storeParamsFromGUI()
      Record the parameters just used to run this algorithm in a script.
      • 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

      • serialVersionUID

        private static final long serialVersionUID
        Use serialVersionUID for interoperability.
        See Also:
        Constant Field Values
      • by2Button

        private javax.swing.JRadioButton by2Button
        DOCUMENT ME!
      • by8Button

        private javax.swing.JRadioButton by8Button
        DOCUMENT ME!
      • by4Button

        private javax.swing.JRadioButton by4Button
        DOCUMENT ME!
      • label2OriginalExtentX

        private javax.swing.JLabel label2OriginalExtentX
        Label for displaying the original extent X
      • label2OriginalExtentY

        private javax.swing.JLabel label2OriginalExtentY
        Label for displaying the original extent Y
      • label2OriginalExtentZ

        private javax.swing.JLabel label2OriginalExtentZ
        Label for displaying the original extent Z
      • labelPaddedExtentX

        private javax.swing.JLabel labelPaddedExtentX
        Label for displaying the padded extent X
      • labelPaddedExtentY

        private javax.swing.JLabel labelPaddedExtentY
        Label for displaying the padded extent Y
      • labelPaddedExtentZ

        private javax.swing.JLabel labelPaddedExtentZ
        label for displaying the padded extent Z
      • denom

        private int denom
        DOCUMENT ME!
      • doVOI

        private boolean doVOI
        DOCUMENT ME!
      • dim

        private int dim
        Number of dimensions in an image e.g 2D, 3D
      • doPad

        private boolean doPad
        The boolean value to determine whether to pad the original image or not.
      • extents

        private int[] extents
        The extents of original image
      • padExtents

        private int[] padExtents
        The extents of padded image
      • newExtents

        private int[] newExtents
        DOCUMENT ME!
      • oXres

        private float oXres
        DOCUMENT ME!
      • oYres

        private float oYres
        DOCUMENT ME!
      • oZres

        private float oZres
        DOCUMENT ME!
      • processIndep

        private boolean processIndep
        DOCUMENT ME!
      • processIndepBox

        private javax.swing.JCheckBox processIndepBox
        DOCUMENT ME!
      • resultImage

        private ModelImage resultImage
        DOCUMENT ME!
      • sigmas

        private float[] sigmas
        DOCUMENT ME!
      • Sx

        private float Sx
        DOCUMENT ME!
      • Sy

        private float Sy
        DOCUMENT ME!
      • Sz

        private float Sz
        DOCUMENT ME!
      • voiCheckBox

        private javax.swing.JCheckBox voiCheckBox
        DOCUMENT ME!
    • Constructor Detail

      • JDialogSubsample

        public JDialogSubsample()
        Empty constructor needed for dynamic instantiation (used during scripting).
      • JDialogSubsample

        public JDialogSubsample​(java.awt.Frame theParentFrame,
                                ModelImage sourceImage)
        Constructor for creating the dialog via a parent frame.
        Parameters:
        theParentFrame - the parent frame
        sourceImage - the source image
    • Method Detail

      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        Method for catching actions (button/script).
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Overrides:
        actionPerformed in class JDialogBase
        Parameters:
        e - the action event
      • getResultImage

        public ModelImage getResultImage()
        Accessor that returns the image.
        Returns:
        The result image.
      • itemStateChanged

        public void itemStateChanged​(java.awt.event.ItemEvent event)
        Respond to checkbox item events.
        Specified by:
        itemStateChanged in interface java.awt.event.ItemListener
        Overrides:
        itemStateChanged in class JDialogBase
        Parameters:
        event - item event
      • setDoVOI

        public void setDoVOI​(boolean doVOI)
        Accessor that tells whether VOIs are transformed.
        Parameters:
        doVOI - boolean
      • setProcessIndep

        public void setProcessIndep​(boolean processIndep)
        Accessor that sets whether slices are processed independently.
        Parameters:
        processIndep - DOCUMENT ME!
      • setSubsamplingRate

        public boolean setSubsamplingRate​(int subSample)
        Accessor that programatically sets the subsampling amount
        Parameters:
        subSample - the subsampling rate, allowable values are 2, 4, and 8
        Returns:
        false when rate is unsupported
      • 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 class JDialogScriptableBase
      • 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 class JDialogScriptableBase
      • init

        private void init()
        Sets up the dialog window and makes it visible.
      • setVariables

        private boolean setVariables()
        Sets the variables based on the user's dialog input.
        Returns:
        was everything ok (unnecessary because there is no possible illegal user input)
      • isDivisible

        private boolean isDivisible​(int dimValue,
                                    int scale)
        Check if the extent value is divisible by 2, 4 or 8.
        Parameters:
        dimValue - dimension value
        Returns:
        isPower2 true if dimValue is divisible 2, 4 or 8 false otherwise.
      • makeExtentDivisibleByDenom

        private int makeExtentDivisibleByDenom​(int dimValue,
                                               int scale)
        Calculate the nearest extent value divisible by 2, 4 or 8
        Parameters:
        dimValue - extent value
        Returns:
        newDimValue extent value divisible by 2, 4 or 8.
      • getActionMetadata

        public ActionMetadata getActionMetadata()
        Return meta-information about this discoverable action for categorization and labeling purposes.
        Specified by:
        getActionMetadata in interface ActionDiscovery
        Returns:
        Metadata for this action.
      • createInputParameters

        public ParameterTable createInputParameters()
        Returns a table listing the input parameters of this algorithm (which should match up with the scripting parameters used in setGUIFromParams()).
        Specified by:
        createInputParameters in interface ActionDiscovery
        Returns:
        A parameter table listing the inputs of this algorithm.
      • createOutputParameters

        public ParameterTable createOutputParameters()
        Returns a table listing the output parameters of this algorithm (usually just labels used to obtain output image names later).
        Specified by:
        createOutputParameters in interface ActionDiscovery
        Returns:
        A parameter table listing the outputs of this algorithm.
      • getOutputImageName

        public java.lang.String getOutputImageName​(java.lang.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).
        Specified by:
        getOutputImageName in interface ActionDiscovery
        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:
        isActionComplete in interface ActionDiscovery
        Returns:
        True, if the action is complete. False, if the action failed or is still running.