Class ViewJComponentHLUTBase

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable
Direct Known Subclasses:
ViewJComponentHistoLUT, ViewJComponentHistoRGB

public abstract class ViewJComponentHLUTBase extends 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:
  • Field Details

    • serialVersionUID

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

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

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

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

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

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

      public static final int STAIRCASE
      Staircase transfer function.
      See Also:
    • CT

      public static final int CT
      CT predefined tranfer function.
      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:
    • ALPHA

      public static final int ALPHA
      The alpha channel transfer function.
      See Also:
    • ALL

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

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

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

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

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

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

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

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

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

      protected 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 Details

    • ViewJComponentHLUTBase

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

    • 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
    • setLUT

      public abstract void setLUT(ModelStorageBase LUT)
    • 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 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
    • getPreferredSize

      public Dimension getPreferredSize()
      Gets preferred size to set object size to.
      Overrides:
      getPreferredSize in class 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(Graphics g)
      Paints the image and border.
      Overrides:
      paintComponent in class 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 Throwable
      Clean up some resources.
      Overrides:
      finalize in class Object
      Throws:
      Throwable - if there is a problem during cleanup