Class ViewJComponentHistoLUT

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

    public class ViewJComponentHistoLUT
    extends ViewJComponentHLUTBase
    This class extends the ViewJComponentHLUTBase class and used to coordinate how a histogram and LUT for an image are to be displayed to the screen. For display purposes, this component has a LUT Model. Note y inversion in transfer segment because graphical origin is in upper left corner.
                 255     ^                __________
                         |               /
                         |              /
                         |             /  
    
                          min                         max
    
                                  Image intensity
     

    The transfer function ( member of the LUT class) dictates how the image intensity values are converted into the LUT.

    Version:
    0.1 Aug 1, 1997
    Author:
    Matthew J. McAuliffe, Ph.D.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • 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 addFunctionPoint​(float x, float y)
      Add a new function point to the current LUT transfer function.
      void checkProximityToTransferFunction​(float px, float py, boolean remove)
      Check to see if the position of the mouse is close to one of the points in the LUT transfer function or the line drawn in between the points.
      void ctMode​(int preset1, int preset2)
      Sets mode to CT and sets range to CT presets.
      void dispose()
      Sets variables to null and gets rid of frame.
      void dragPoint​(java.awt.event.MouseEvent mouseEvent)
      Drag a point on the Histo LUT to another value.
      void dualThresholdMode​(int newMode)
      Switch the histogram component to (inverse or regular) dual threshold mode.
      void evenDistribution()
      Evenly distributed the controls points of linear transfer function.
      protected void finalize()
      Clean up some resources!
      ModelLUT getLUT()
      Get the lookup table associated with the image and histogram.
      float getThresholdFill()
      DOCUMENT ME!
      TransferFunction getTransferFunction()
      Get the current transfer function we are working with.
      void linearMode()
      Sets mode to linear and shows component.
      void paintComponent​(java.awt.Graphics g)
      Paints the component.
      void removeClickedFunctionPoint()
      Remove the point of the LUT transfer function which the mouse is hovering over (determined by mouseMotion).
      private float setLinearIndex​(float mx, float my)
      Checks boundaries for new dragged point in LUT.
      void setLUT​(ModelStorageBase newLUT)
      Change the lookup table associated with the image and histogram.
      void showHistogram​(ModelLUT LUT)
      Filters the histogram through the LUT and produces an int array (aRGB) that can be converted to a java image of the histogram for display purposes.
      void updateCursor​(float _mx, float _my, int _index)
      Update the cursor position when mouse slider is moved.
      void updateCursorXPos​(float _mx, float _my, int _index)
      Update the cursor position when mouse slider is moved.
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

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

      • serialVersionUID

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

      • ViewJComponentHistoLUT

        public ViewJComponentHistoLUT​(HistoLUTParent _histoFrame,
                                      ModelHistogram _histo,
                                      ModelLUT _lut,
                                      ModelImage _image)
        Creates new component histogram LUT.
        Parameters:
        _histoFrame - Frame where histogram is to be displayed
        _histo - histogram model
        _lut - lut used to display histogram
        _image - image of the displayed histogram and associated LUT
    • Method Detail

      • addFunctionPoint

        public void addFunctionPoint​(float x,
                                     float y)
        Add a new function point to the current LUT transfer function.
        Specified by:
        addFunctionPoint in class ViewJComponentHLUTBase
        Parameters:
        x - the x position within the component to add the new point
        y - the y position within the component to add the new point
      • checkProximityToTransferFunction

        public void checkProximityToTransferFunction​(float px,
                                                     float py,
                                                     boolean remove)
        Check to see if the position of the mouse is close to one of the points in the LUT transfer function or the line drawn in between the points.
        Specified by:
        checkProximityToTransferFunction in class ViewJComponentHLUTBase
        Parameters:
        px - the x position within the component
        py - the y position within the component
        remove - whether we want to remove a point (assuming that we are near one)
      • ctMode

        public void ctMode​(int preset1,
                           int preset2)
        Sets mode to CT and sets range to CT presets.
        Parameters:
        preset1 - first CT preset
        preset2 - second CT preset
      • dragPoint

        public void dragPoint​(java.awt.event.MouseEvent mouseEvent)
        Drag a point on the Histo LUT to another value.
        Parameters:
        mouseEvent - the mouse dragged event (passed on from the containing panel)
      • setLinearIndex

        private float setLinearIndex​(float mx,
                                     float my)
        Checks boundaries for new dragged point in LUT.
        Parameters:
        mx - new x value for point based on mouse movement
        my - new y value for point based on mouse movement
        Returns:
        the resulting x[index] based on boundary checks
      • dualThresholdMode

        public void dualThresholdMode​(int newMode)
        Switch the histogram component to (inverse or regular) dual threshold mode.
        Specified by:
        dualThresholdMode in class ViewJComponentHLUTBase
        Parameters:
        newMode - either DUAL_THRESHOLD, DUAL_THRESHOLD_INV, or NO_THRESHOLD
      • getLUT

        public ModelLUT getLUT()
        Get the lookup table associated with the image and histogram.
        Returns:
        returns the LUT used to display the image
      • getThresholdFill

        public float getThresholdFill()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • paintComponent

        public void paintComponent​(java.awt.Graphics g)
        Paints the component.
        Overrides:
        paintComponent in class ViewJComponentHLUTBase
        Parameters:
        g - graphics to paint in
      • removeClickedFunctionPoint

        public void removeClickedFunctionPoint()
        Remove the point of the LUT transfer function which the mouse is hovering over (determined by mouseMotion).
        Specified by:
        removeClickedFunctionPoint in class ViewJComponentHLUTBase
      • showHistogram

        public void showHistogram​(ModelLUT LUT)
        Filters the histogram through the LUT and produces an int array (aRGB) that can be converted to a java image of the histogram for display purposes.
        Specified by:
        showHistogram in class ViewJComponentHLUTBase
        Parameters:
        LUT - LUT to filter with
      • updateCursor

        public void updateCursor​(float _mx,
                                 float _my,
                                 int _index)
        Update the cursor position when mouse slider is moved.
        Parameters:
        _mx - cursor x postion.
        _my - cursor y position.
        _index - cursor index
      • updateCursorXPos

        public void updateCursorXPos​(float _mx,
                                     float _my,
                                     int _index)
        Update the cursor position when mouse slider is moved.
        Parameters:
        _mx - cursor x postion.
        _my - cursor y position.
        _index - cursor index
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Clean up some resources!
        Overrides:
        finalize in class ViewJComponentHLUTBase
        Throws:
        java.lang.Throwable - DOCUMENT ME!