Class ViewJComponentHLUTBase

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
    Direct Known Subclasses:
    ViewJComponentHistoLUT, ViewJComponentHistoRGB

    public abstract class ViewJComponentHLUTBase
    extends javax.swing.JComponent
    Abstract class used for generating custom components, especially within images.
    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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean addPointFlag
      DOCUMENT ME!
      static int ALL
      Move all the channel transfer functions.
      static int ALPHA
      The alpha channel transfer function.
      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 static java.awt.Cursor crosshairCursor
      Crosshair mouse cursor.
      static int CT
      CT predefined tranfer function.
      protected java.awt.Dimension dim
      The histogram image dimension.
      static int DUAL_THRESHOLD
      Dual threshold function.
      static int DUAL_THRESHOLD_INV
      Inverse dual threshold function.
      static int GREEN
      The green channel transfer function.
      protected static java.awt.Cursor handCursor
      Hand-shaped mouse cursor.
      protected ModelHistogram histogram
      The image histogram.
      protected int[] histogramBuffer
      DOCUMENT ME!
      protected double histogramMax
      DOCUMENT ME!
      protected double histogramMaxLog
      DOCUMENT ME!
      protected HistoLUTParent histogramParent
      The container of this histogram component.
      protected ModelImage image
      The image whose histo lut we are displaying.
      protected java.awt.Image img
      DOCUMENT ME!
      protected static int INACTIVE
      DOCUMENT ME!
      protected int index
      DOCUMENT ME!
      static int LINEAR
      Linear tranfer function mode (grayscale).
      protected boolean logFlag
      Whether to transform the histogram data by log10.
      protected int[] lutIndexBuffer
      DOCUMENT ME!
      protected int mode
      The current mode of the histogram component.
      protected static java.awt.Cursor moveCursor
      Movement mouse cursor.
      static int NO_THRESHOLD
      Not using a tranfer function (grayscale).
      protected int offsetX
      DOCUMENT ME!
      protected int offsetY
      DOCUMENT ME!
      protected int[] pixBuffer
      DOCUMENT ME!
      protected int range
      DOCUMENT ME!
      static int RED
      The red channel transfer function.
      protected static java.awt.Cursor resizeCursor
      Component resize mouse cursor.
      private static long serialVersionUID
      Use serialVersionUID for interoperability.
      static int STAIRCASE
      Staircase transfer function.
      protected int stRange
      DOCUMENT ME!
      static int THRESHOLD
      Thresholded transfer function mode (grayscale).
      protected int thresholdMode
      The current threshold mode (dual or dual inverse) or NO_THRESHOLD if not in theshold mode.
      protected float[] x
      DOCUMENT ME!
      protected int[] xN
      DOCUMENT ME!
      protected float[] y
      DOCUMENT ME!
      protected int[] yN
      DOCUMENT ME!
      protected float[] z
      DOCUMENT ME!
      protected int[] zN
      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
      abstract void addFunctionPoint​(float x, float y)
      Add a new function point to the current LUT transfer function.
      abstract void checkProximityToTransferFunction​(float x, float y, 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 dispose()
      Abstract method to force extended classes to implement a disposal method to clean up memory.
      abstract void dualThresholdMode​(int thresholdMode)
      Switch the histogram component to (inverse or regular) dual threshold mode.
      abstract void evenDistribution()
      Switch the histogram component to even distribution linear transfer mode.
      protected void finalize()
      Clean up some resources.
      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 ).
      java.awt.Dimension getPreferredSize()
      Gets preferred size to set object size to.
      TransferFunction getTransferFunction()
      Get the current transfer function we are working with.
      void importImage​(int[] data)
      Creates a Image object from an array of ints that have been formatted (packed) properly (ie, aRGB).
      boolean isVolOpacityChanged()
      DOCUMENT ME!
      abstract void linearMode()
      Switch the histogram component to linear line mode.
      void paintComponent​(java.awt.Graphics g)
      Paints the image and border.
      abstract void removeClickedFunctionPoint()
      Remove the point of the LUT transfer function which the mouse is hovering over (determined by mouseMotion).
      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.
      abstract void setLUT​(ModelStorageBase LUT)  
      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 updateDualThreshold​(float lower, float upper)
      Updates the corresponding points for the threshold (transfer line).
      void updateTransFunc​(VOIContour transFunc)
      DOCUMENT ME!
      • 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
      • LINEAR

        public static final int LINEAR
        Linear tranfer function mode (grayscale).
        See Also:
        Constant Field Values
      • THRESHOLD

        public static final int THRESHOLD
        Thresholded transfer function mode (grayscale).
        See Also:
        Constant Field Values
      • NO_THRESHOLD

        public static final int NO_THRESHOLD
        Not using a tranfer function (grayscale).
        See Also:
        Constant Field Values
      • DUAL_THRESHOLD

        public static final int DUAL_THRESHOLD
        Dual threshold function.
        See Also:
        Constant Field Values
      • DUAL_THRESHOLD_INV

        public static final int DUAL_THRESHOLD_INV
        Inverse dual threshold function.
        See Also:
        Constant Field Values
      • STAIRCASE

        public static final int STAIRCASE
        Staircase transfer function.
        See Also:
        Constant Field Values
      • GREEN

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

        public static final int ALPHA
        The alpha 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).
      • crosshairCursor

        protected static final java.awt.Cursor crosshairCursor
        Crosshair mouse cursor. Should move to MipavUtil eventually.
      • moveCursor

        protected static final java.awt.Cursor moveCursor
        Movement mouse cursor. Should move to MipavUtil eventually.
      • resizeCursor

        protected static final java.awt.Cursor resizeCursor
        Component resize mouse cursor. Should move to MipavUtil eventually.
      • handCursor

        protected static final java.awt.Cursor handCursor
        Hand-shaped mouse cursor. Should move to MipavUtil eventually.
      • 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!
      • histogramParent

        protected HistoLUTParent histogramParent
        The container of this histogram component.
      • image

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

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

        protected int index
        DOCUMENT ME!
      • logFlag

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

        protected int[] lutIndexBuffer
        DOCUMENT ME!
      • mode

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

        protected int offsetX
        DOCUMENT ME!
      • offsetY

        protected int offsetY
        DOCUMENT ME!
      • pixBuffer

        protected int[] pixBuffer
        DOCUMENT ME!
      • range

        protected int range
        DOCUMENT ME!
      • stRange

        protected int stRange
        DOCUMENT ME!
      • thresholdMode

        protected int thresholdMode
        The current threshold mode (dual or dual inverse) or NO_THRESHOLD if not in theshold mode.
      • x

        protected float[] x
        DOCUMENT ME!
      • xN

        protected int[] xN
        DOCUMENT ME!
      • y

        protected float[] y
        DOCUMENT ME!
      • yN

        protected int[] yN
        DOCUMENT ME!
      • z

        protected float[] z
        DOCUMENT ME!
      • zN

        protected int[] zN
        DOCUMENT ME!
    • Constructor Detail

      • ViewJComponentHLUTBase

        public ViewJComponentHLUTBase​(HistoLUTParent 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
    • Method Detail

      • addFunctionPoint

        public abstract void addFunctionPoint​(float x,
                                              float y)
        Add a new function point to the current LUT transfer function.
        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 abstract void checkProximityToTransferFunction​(float x,
                                                              float y,
                                                              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.
        Parameters:
        x - the x position within the component
        y - the y position within the component
        remove - whether we want to remove a point (assuming that we are near one)
      • dualThresholdMode

        public abstract void dualThresholdMode​(int thresholdMode)
        Switch the histogram component to (inverse or regular) dual threshold mode.
        Parameters:
        thresholdMode - either DUAL_THRESHOLD, DUAL_THRESHOLD_INV, or NO_THRESHOLD
      • evenDistribution

        public abstract void evenDistribution()
        Switch the histogram component to even distribution linear transfer mode.
      • linearMode

        public abstract void linearMode()
        Switch the histogram component to linear line mode.
      • removeClickedFunctionPoint

        public abstract void removeClickedFunctionPoint()
        Remove the point of the LUT transfer function which the mouse is hovering over (determined by mouseMotion).
      • 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.
      • 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
      • 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 TransferFunction getTransferFunction()
        Get the current transfer function we are working with.
        Returns:
        the LUT tranfer function
      • 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.
      • isVolOpacityChanged

        public boolean isVolOpacityChanged()
        DOCUMENT ME!
        Returns:
        DOCUMENT ME!
      • paintComponent

        public void paintComponent​(java.awt.Graphics g)
        Paints the image and border.
        Overrides:
        paintComponent in class javax.swing.JComponent
        Parameters:
        g - Graphics handle
      • 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.
      • updateDualThreshold

        public void updateDualThreshold​(float lower,
                                        float upper)
        Updates the corresponding points for the threshold (transfer line).
        Parameters:
        lower - the lower threshold value
        upper - the upper threshold value
      • updateTransFunc

        public void updateTransFunc​(VOIContour transFunc)
        DOCUMENT ME!
        Parameters:
        transFunc - VOIContour
      • 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