Class ViewJComponentVolOpacityBase

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
gov.nih.mipav.view.renderer.ViewJComponentVolOpacityBase
All Implemented Interfaces:
MouseListener, MouseMotionListener, ImageObserver, MenuContainer, Serializable, EventListener
Direct Known Subclasses:
ViewJComponentVolOpacity, ViewJComponentVolOpacityRGB

public abstract class ViewJComponentVolOpacityBase extends JComponent implements MouseListener, MouseMotionListener
Abstract class used for generating custom components, especially within images.
Version:
1 - Sept 6, 2005
Author:
Lee M Orsino, Ph.D.
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Use serialVersionUID for interoperability.
      See Also:
    • RED

      public static final int RED
      The red channel transfer function.
      See Also:
    • GREEN

      public static final int GREEN
      The green channel transfer function.
      See Also:
    • BLUE

      public static final int BLUE
      The blue channel transfer function.
      See Also:
    • ALL

      public static final int ALL
      Move all the channel transfer functions.
      See Also:
    • INACTIVE

      public static final int INACTIVE
      DOCUMENT ME!
      See Also:
    • backgroundColor

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

      protected boolean addPointFlag
      DOCUMENT ME!
    • componentDim

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

      protected Dimension dim
      The histogram image dimension.
    • histogram

      protected ModelHistogram histogram
      The image histogram.
    • 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 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.
    • parentListener

      protected ViewJComponentVolOpacityListener parentListener
    • pixBuffer

      protected int[] pixBuffer
      DOCUMENT ME!
    • range

      protected float range
      DOCUMENT ME!
    • stRange

      protected int stRange
      DOCUMENT ME!
    • tfActiveIndex

      protected int tfActiveIndex
      DOCUMENT ME!
    • transferFunction

      protected TransferFunction transferFunction
      DOCUMENT ME!
  • Constructor Details

    • ViewJComponentVolOpacityBase

      public ViewJComponentVolOpacityBase(JPanelVolOpacityBase parent, ModelHistogram histo, ModelImage image, 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, Dimension compDim)
      Parameters:
      parent - ViewJComponentVolOpacityListener -- container displaying this clas
      histo - histogram
      image - input modelImage
      compDim - widht and height of component
  • Method Details

    • 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 Dimension getMinimumSize()
      Gets minimum size equal to object size.
      Overrides:
      getMinimumSize in class 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 Dimension getPreferredSize()
      Gets preferred size to set object size to.
      Overrides:
      getPreferredSize in class 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(MouseEvent mouseEvent)
      DOCUMENT ME!
      Specified by:
      mouseClicked in interface MouseListener
      Parameters:
      mouseEvent - DOCUMENT ME!
    • mouseDragged

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

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

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

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

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

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

      public void paintComponent(Graphics graphics)
      Paints the component.
      Overrides:
      paintComponent in class 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(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(Graphics2D graphics)
      DOCUMENT ME!
      Parameters:
      graphics - DOCUMENT ME!
    • drawTransferFunctionHandles

      protected void drawTransferFunctionHandles(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(Graphics2D graphics, TransferFunction tf, 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 Throwable
      Clean up some resources.
      Overrides:
      finalize in class Object
      Throws:
      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(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