Class ViewJComponentVolOpacityBase

  • All Implemented Interfaces:
    java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener
    Direct Known Subclasses:
    ViewJComponentVolOpacity, ViewJComponentVolOpacityRGB

    public abstract class ViewJComponentVolOpacityBase
    extends javax.swing.JComponent
    implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener
    Abstract class used for generating custom components, especially within images.
    Version:
    1 - Sept 6, 2005
    Author:
    Lee M Orsino, 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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean addPointFlag
      DOCUMENT ME!
      static int ALL
      Move all the channel transfer functions.
      protected static java.awt.Color backgroundColor
      The default background color of JPanels (look and feel dependent).
      static int BLUE
      The blue channel transfer function.
      protected java.awt.Dimension componentDim
      The outer dimension of the histogram component we will be drawing.
      protected java.awt.Dimension dim
      The histogram image dimension.
      static int GREEN
      The green channel transfer function.
      protected ModelHistogram histogram
      The image histogram.
      protected int[] histogramBuffer
      DOCUMENT ME!
      protected double histogramMax
      DOCUMENT ME!
      protected double histogramMaxLog
      DOCUMENT ME!
      protected ModelImage image
      The image whose histo lut we are displaying.
      protected java.awt.Image img
      DOCUMENT ME!
      static int INACTIVE
      DOCUMENT ME!
      protected boolean logFlag
      Whether to transform the histogram data by log10.
      protected int[] lutIndexBuffer
      DOCUMENT ME!
      protected float max
      DOCUMENT ME!
      protected float min
      DOCUMENT ME!
      protected int mode
      The current mode of the histogram component.
      protected int newPointIndex
      DOCUMENT ME!
      protected int offsetX
      DOCUMENT ME!
      protected int offsetY
      DOCUMENT ME!
      protected ViewJComponentVolOpacityListener parentListener  
      protected JPanelVolOpacityBase parentPanel
      The container of this histogram component.
      protected int[] pixBuffer
      DOCUMENT ME!
      protected float range
      DOCUMENT ME!
      static int RED
      The red channel transfer function.
      private static long serialVersionUID
      Use serialVersionUID for interoperability.
      protected int stRange
      DOCUMENT ME!
      protected int tfActiveIndex
      DOCUMENT ME!
      protected TransferFunction transferFunction
      DOCUMENT ME!
      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected float convertFnPtToScreenSpaceX​(float point_x)
      This method converts a transfer function point value into screen space so that it can be displayed on the histogram.
      protected float convertScreenSpaceXToFnPt​(int pixel)
      This method converts a point in screen space into a transfer function point value.
      void dispose()
      Abstract method to force extended classes to implement a disposal method to clean up memory.
      protected void drawAxisAccoutrements​(java.awt.Graphics2D graphics)
      Draw the histogram border and the stationary marker ticks (function point ticks are drawn in drawTransferFunctionHandleTicks(Graphics2D).
      protected void drawRotatedVerticalAxisLabel​(java.awt.Graphics2D graphics)
      DOCUMENT ME!
      protected void drawTransferFunctionHandles​(java.awt.Graphics2D graphics, TransferFunction tf)
      Draw the transfer function handles (the little squares used to drag points).
      private void drawTransferFunctionHandleTicks​(java.awt.Graphics2D graphics, TransferFunction tf)
      This method draws the transfer function handle marks on the axes of the histogram.
      protected void drawTransferFunctionLine​(java.awt.Graphics2D graphics, TransferFunction tf, java.awt.Color color)
      This method draws the transfer function line.
      protected void finalize()
      Clean up some resources.
      int getActiveIndex()
      DOCUMENT ME!
      ModelImage getImage()
      Access the associated image.
      java.awt.Dimension getMinimumSize()
      Gets minimum size equal to object size.
      int getMode()
      Get the histogram mode (ie - RED, GREEN, BLUE ).
      TransferFunction getOpacityTransferFunction()
      DOCUMENT ME!
      java.awt.Dimension getPreferredSize()
      Gets preferred size to set object size to.
      VOIBase getTransferFunction()
      Get the current transfer function we are working with.
      void horizonMode()
      Resets mode to linear horizontal and shows component.
      void importImage​(int[] data)
      Creates a Image object from an array of ints that have been formatted (packed) properly (ie, aRGB).
      protected boolean isNearLine​(int offsetMouseX, int offsetMouseY)
      Determines whether the mouse cursor is near the active transfer function line.
      void linearBackSlashMode()
      Sets mode to linear and shows component.
      void linearMode()
      Resets mode to linear and shows component.
      void mouseClicked​(java.awt.event.MouseEvent mouseEvent)
      DOCUMENT ME!
      void mouseDragged​(java.awt.event.MouseEvent mouseEvent)
      Continually updates the image depending on where the mouse is.
      void mouseEntered​(java.awt.event.MouseEvent mouseEvent)
      DOCUMENT ME!
      void mouseExited​(java.awt.event.MouseEvent mouseEvent)
      DOCUMENT ME!
      void mouseMoved​(java.awt.event.MouseEvent mouseEvent)
      Changes the cursor so that function can add points depending on how near the line it is.
      void mousePressed​(java.awt.event.MouseEvent mouseEvent)
      ************************************************************************ ***************************** Mouse Events *****************************
      void mouseReleased​(java.awt.event.MouseEvent mouseEvent)
      DOCUMENT ME!
      void paintComponent​(java.awt.Graphics graphics)
      Paints the component.
      void setHistogramInfo​(ModelImage _image, ModelHistogram _histo)
      Set up the image, LUT and histogram information.
      void setLogFlag​(boolean value)
      This flag indicates if the histogram should be displayed using a log10 scale.
      void setMode​(int _mode)
      Accessor that sets the mode.
      void showHistogram()
      Show the histogram without filtering it through a LUT.
      abstract 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 updateCursorXPos​(float _mx)
      Update the cursor position when mouse slider is moved.
      void updateTransFunc​(TransferFunction transFunc)
      Load preset transfer function for the image.
      • 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
      • GREEN

        public static final int GREEN
        The green channel transfer function.
        See Also:
        Constant Field Values
      • ALL

        public static final int ALL
        Move all the channel transfer functions.
        See Also:
        Constant Field Values
      • backgroundColor

        protected static final java.awt.Color backgroundColor
        The default background color of JPanels (look and feel dependent).
      • addPointFlag

        protected boolean addPointFlag
        DOCUMENT ME!
      • componentDim

        protected java.awt.Dimension componentDim
        The outer dimension of the histogram component we will be drawing.
      • dim

        protected java.awt.Dimension dim
        The histogram image dimension.
      • histogramBuffer

        protected int[] histogramBuffer
        DOCUMENT ME!
      • histogramMax

        protected double histogramMax
        DOCUMENT ME!
      • histogramMaxLog

        protected double histogramMaxLog
        DOCUMENT ME!
      • image

        protected ModelImage image
        The image whose histo lut we are displaying.
      • img

        protected java.awt.Image img
        DOCUMENT ME!
      • logFlag

        protected boolean logFlag
        Whether to transform the histogram data by log10.
      • lutIndexBuffer

        protected int[] lutIndexBuffer
        DOCUMENT ME!
      • min

        protected float min
        DOCUMENT ME!
      • max

        protected float max
        DOCUMENT ME!
      • mode

        protected int mode
        The current mode of the histogram component.
      • newPointIndex

        protected int newPointIndex
        DOCUMENT ME!
      • offsetX

        protected int offsetX
        DOCUMENT ME!
      • offsetY

        protected int offsetY
        DOCUMENT ME!
      • parentPanel

        protected JPanelVolOpacityBase parentPanel
        The container of this histogram component.
      • pixBuffer

        protected int[] pixBuffer
        DOCUMENT ME!
      • range

        protected float range
        DOCUMENT ME!
      • stRange

        protected int stRange
        DOCUMENT ME!
      • tfActiveIndex

        protected int tfActiveIndex
        DOCUMENT ME!
    • Constructor Detail

      • ViewJComponentVolOpacityBase

        public ViewJComponentVolOpacityBase​(JPanelVolOpacityBase parent,
                                            ModelHistogram histo,
                                            ModelImage image,
                                            java.awt.Dimension compDim)
        Creates object of size defined by width & height.
        Parameters:
        parent - DOCUMENT ME!
        histo - DOCUMENT ME!
        image - DOCUMENT ME!
        compDim - width and height of component
      • ViewJComponentVolOpacityBase

        public ViewJComponentVolOpacityBase​(ViewJComponentVolOpacityListener parent,
                                            ModelHistogram histo,
                                            ModelImage image,
                                            java.awt.Dimension compDim)
        Parameters:
        parent - ViewJComponentVolOpacityListener -- container displaying this clas
        histo - histogram
        image - input modelImage
        compDim - widht and height of component
    • Method Detail

      • showHistogram

        public abstract 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.
        Parameters:
        LUT - LUT to filter with
      • dispose

        public void dispose()
        Abstract method to force extended classes to implement a disposal method to clean up memory.
      • getActiveIndex

        public int getActiveIndex()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • getImage

        public ModelImage getImage()
        Access the associated image.
        Returns:
        ModelImage Reference to image instance.
      • getMinimumSize

        public java.awt.Dimension getMinimumSize()
        Gets minimum size equal to object size.
        Overrides:
        getMinimumSize in class javax.swing.JComponent
        Returns:
        Dimension with the size
      • getMode

        public int getMode()
        Get the histogram mode (ie - RED, GREEN, BLUE ).
        Returns:
        the histogram mode
      • getOpacityTransferFunction

        public TransferFunction getOpacityTransferFunction()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • getPreferredSize

        public java.awt.Dimension getPreferredSize()
        Gets preferred size to set object size to.
        Overrides:
        getPreferredSize in class javax.swing.JComponent
        Returns:
        Dimension with the size
      • getTransferFunction

        public VOIBase getTransferFunction()
        Get the current transfer function we are working with.
        Returns:
        the LUT tranfer function
      • horizonMode

        public void horizonMode()
        Resets mode to linear horizontal and shows component.
      • importImage

        public void importImage​(int[] data)
        Creates a Image object from an array of ints that have been formatted (packed) properly (ie, aRGB).
        Parameters:
        data - Data (image) to be displayed.
      • linearBackSlashMode

        public void linearBackSlashMode()
        Sets mode to linear and shows component.
      • linearMode

        public void linearMode()
        Resets mode to linear and shows component.
      • mouseClicked

        public void mouseClicked​(java.awt.event.MouseEvent mouseEvent)
        DOCUMENT ME!
        Specified by:
        mouseClicked in interface java.awt.event.MouseListener
        Parameters:
        mouseEvent - DOCUMENT ME!
      • mouseDragged

        public void mouseDragged​(java.awt.event.MouseEvent mouseEvent)
        Continually updates the image depending on where the mouse is.
        Specified by:
        mouseDragged in interface java.awt.event.MouseMotionListener
        Parameters:
        mouseEvent - event that triggered this function
      • mouseEntered

        public void mouseEntered​(java.awt.event.MouseEvent mouseEvent)
        DOCUMENT ME!
        Specified by:
        mouseEntered in interface java.awt.event.MouseListener
        Parameters:
        mouseEvent - DOCUMENT ME!
      • mouseExited

        public void mouseExited​(java.awt.event.MouseEvent mouseEvent)
        DOCUMENT ME!
        Specified by:
        mouseExited in interface java.awt.event.MouseListener
        Parameters:
        mouseEvent - DOCUMENT ME!
      • mouseMoved

        public void mouseMoved​(java.awt.event.MouseEvent mouseEvent)
        Changes the cursor so that function can add points depending on how near the line it is.
        Specified by:
        mouseMoved in interface java.awt.event.MouseMotionListener
        Parameters:
        mouseEvent - event that triggered this function
      • mousePressed

        public void mousePressed​(java.awt.event.MouseEvent mouseEvent)
        ************************************************************************ ***************************** Mouse Events *****************************.************************************************************************
        Specified by:
        mousePressed in interface java.awt.event.MouseListener
        Parameters:
        mouseEvent - DOCUMENT ME!
      • mouseReleased

        public void mouseReleased​(java.awt.event.MouseEvent mouseEvent)
        DOCUMENT ME!
        Specified by:
        mouseReleased in interface java.awt.event.MouseListener
        Parameters:
        mouseEvent - DOCUMENT ME!
      • paintComponent

        public void paintComponent​(java.awt.Graphics graphics)
        Paints the component.
        Overrides:
        paintComponent in class javax.swing.JComponent
        Parameters:
        graphics - graphics to paint in
      • setHistogramInfo

        public void setHistogramInfo​(ModelImage _image,
                                     ModelHistogram _histo)
        Set up the image, LUT and histogram information.
        Parameters:
        _image - image
        _histo - histogram of the image
      • setLogFlag

        public void setLogFlag​(boolean value)
        This flag indicates if the histogram should be displayed using a log10 scale.
        Parameters:
        value - true use the Log scale and false paint bars in linear scale
      • setMode

        public void setMode​(int _mode)
        Accessor that sets the mode.
        Parameters:
        _mode - the mode of the histogram
      • showHistogram

        public void showHistogram()
        Show the histogram without filtering it through a LUT.
      • updateCursorXPos

        public void updateCursorXPos​(float _mx)
        Update the cursor position when mouse slider is moved.
        Parameters:
        _mx - cursor x postion.
      • updateTransFunc

        public void updateTransFunc​(TransferFunction transFunc)
        Load preset transfer function for the image.
        Parameters:
        transFunc - transfer function
      • convertFnPtToScreenSpaceX

        protected float convertFnPtToScreenSpaceX​(float point_x)
        This method converts a transfer function point value into screen space so that it can be displayed on the histogram. This is necessary because the histogram that is painted on the screen is typically has a different range than the transfer function.
        Parameters:
        point_x - float - the point on the transfer function
        Returns:
        float
      • convertScreenSpaceXToFnPt

        protected float convertScreenSpaceXToFnPt​(int pixel)
        This method converts a point in screen space into a transfer function point value. This is necessary because the histogram that is painted on the screen is typically has a different range than the transfer function.
        Parameters:
        pixel - int - the pixel value to translate into a transfer function point
        Returns:
        float
      • drawAxisAccoutrements

        protected void drawAxisAccoutrements​(java.awt.Graphics2D graphics)
        Draw the histogram border and the stationary marker ticks (function point ticks are drawn in drawTransferFunctionHandleTicks(Graphics2D).
        Parameters:
        graphics - Graphics2D - the graphics context to draw in
      • drawRotatedVerticalAxisLabel

        protected void drawRotatedVerticalAxisLabel​(java.awt.Graphics2D graphics)
        DOCUMENT ME!
        Parameters:
        graphics - DOCUMENT ME!
      • drawTransferFunctionHandles

        protected void drawTransferFunctionHandles​(java.awt.Graphics2D graphics,
                                                   TransferFunction tf)
        Draw the transfer function handles (the little squares used to drag points).
        Parameters:
        graphics - Graphics2D - the graphics context to draw in
        tf - TransferFunction - the TransferFunction object to draw
      • drawTransferFunctionLine

        protected void drawTransferFunctionLine​(java.awt.Graphics2D graphics,
                                                TransferFunction tf,
                                                java.awt.Color color)
        This method draws the transfer function line.
        Parameters:
        graphics - Graphics2D - the graphics context to draw in
        tf - TransferFunction - the TransferFunction object to draw
        color - Color - the color used to draw the function line
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Clean up some resources.
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable - if there is a problem during cleanup
      • isNearLine

        protected boolean isNearLine​(int offsetMouseX,
                                     int offsetMouseY)
        Determines whether the mouse cursor is near the active transfer function line.
        Parameters:
        offsetMouseX - int
        offsetMouseY - int
        Returns:
        boolean true if cursor is near the active transfer function line, false otherwise
      • drawTransferFunctionHandleTicks

        private void drawTransferFunctionHandleTicks​(java.awt.Graphics2D graphics,
                                                     TransferFunction tf)
        This method draws the transfer function handle marks on the axes of the histogram.
        Parameters:
        graphics - Graphics2D - the graphics context to draw in
        tf - TransferFunction - the TransferFunction object to draw