Class ViewJFrameLightBox

All Implemented Interfaces:
ViewImageUpdateInterface, ActionListener, ComponentListener, ItemListener, WindowListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ChangeListener, RootPaneContainer, WindowConstants

public class ViewJFrameLightBox extends ViewJFrameBase implements ItemListener
This class builds a "light box" view of a 3D or 4D dataset. In addition, a 2nd image can be overlayed and an alpha value can be adjusted to control the amount of each image that is displayed. The user can control how the images are tiled by specifing the number of row or cols, border thickness and size, and magnification. The options can changed using the dialog accessed via the options menu.
See Also:
  • Field Details

    • serialVersionUID

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

      private static final int DEFAULT_IMAGE_MAX
      DOCUMENT ME!
      See Also:
    • DEFAULT_IMAGE_MIN

      private static final int DEFAULT_IMAGE_MIN
      DOCUMENT ME!
      See Also:
    • DEFAULT_XSCREEN_SPACE

      private static final int DEFAULT_XSCREEN_SPACE
      DOCUMENT ME!
      See Also:
    • DEFAULT_YSCREEN_SPACE

      private static final int DEFAULT_YSCREEN_SPACE
      DOCUMENT ME!
      See Also:
    • DEFAULT_DEPENDENT_ROW

      public static final boolean DEFAULT_DEPENDENT_ROW
      Default row is dependent, and column independent.

      the default is the number of rows is the dependent variable, and is dependent apon the total number of images and the number of columns.

      See Also:
    • MIN_MAGNIFICATION

      public static final float MIN_MAGNIFICATION
      Minimum amount of magnification in the light-box.
      See Also:
    • MAX_MAGNIFICATION

      public static final float MAX_MAGNIFICATION
      Maximum amount of magnification in the light-box.
      See Also:
    • MAX_GRID_ROW

      public static final int MAX_GRID_ROW
      Maximum row value (when it is the independent variable).
      See Also:
    • MAX_GRID_COL

      public static final int MAX_GRID_COL
      Maximum column value (when it is the independent variable).
      See Also:
    • MAX_GRID_SIZE

      public static final int MAX_GRID_SIZE
      Maximum spacing in-between images in the light-box.
      See Also:
    • MAX_GRID_BORDER

      public static final int MAX_GRID_BORDER
      Maximum spacing of the border surrounding images in the light-box.
      See Also:
    • MAX_SELECTED_GRID_BORDER

      public static final int MAX_SELECTED_GRID_BORDER
      Maximum spacing of the selection border surrounding images in the light-box.
      See Also:
    • toggleArray

      private static JToggleButton[] toggleArray
      Elements of tBar.
    • activeSliceButton

      private JButton activeSliceButton
      DOCUMENT ME!
    • borderColor

      private Color borderColor
      Color for the line border surrounding each image in the light-box.
    • borderSize

      private int borderSize
      Spacing for the line border surrounding each image in the light-box.
    • componentImage

      private ViewJComponentEditImage[] componentImage
      DOCUMENT ME!
    • controls

      private ViewControlsImage controls
      DOCUMENT ME!
    • currentPage

      private int currentPage
      Page information.
    • currentSelectedSlice

      private int currentSelectedSlice
      DOCUMENT ME!
    • currentSlice

      private int currentSlice
      Current info -- this slice info refers to the *real* slice number, not the page index for a slice on a page.
    • currentTSlice

      private int currentTSlice
      DOCUMENT ME!
    • deleteButton

      private JButton deleteButton
      DOCUMENT ME!
    • deleteSelection

      private JMenuItem deleteSelection
      DOCUMENT ME!
    • extractButton

      private JButton extractButton
      DOCUMENT ME!
    • extractSelection

      private JMenuItem extractSelection
      DOCUMENT ME!
    • interpolateShapesButton

      private JButton interpolateShapesButton
      DOCUMENT ME!
    • firstPageButton

      private JButton firstPageButton
      DOCUMENT ME!
    • firstPageMenuItem

      private JMenuItem firstPageMenuItem
      DOCUMENT ME!
    • frameHeight

      private int frameHeight
      DOCUMENT ME!
    • frameWidth

      private int frameWidth
      Frame information.
    • goToSliceText

      private JTextField goToSliceText
      DOCUMENT ME!
    • gridColor

      private Color gridColor
      Color for the region in-between the images in the light-box.
    • gridColumn

      private int gridColumn
      DOCUMENT ME!
    • gridRow

      private int gridRow
      Value for the number of rows (number of images along the y-axis) and columns (number of images along the x-axis) in the light-box.

      Note that both row and column set to 1 cannot make sense, but that one or the other will be the 'dependent variable' as defined by the row_dependent boolean var.

      A value of 0 means that the dependent variable will automatically be sized to its maximum size that can fit nicely on the screen.

    • gridSpacing

      private int gridSpacing
      Spacing between images in the light-box.
    • increment

      private int increment
    • group

      private ButtonGroup group
      DOCUMENT ME!
    • imageBorder

      private CompoundBorder[] imageBorder
      DOCUMENT ME!
    • imageBufferA

      private float[] imageBufferA
      DOCUMENT ME!
    • imageBufferB

      private float[] imageBufferB
      DOCUMENT ME!
    • imageFrame

      private ViewJFrameImage imageFrame
      DOCUMENT ME!
    • imageHeight

      private int imageHeight
      DOCUMENT ME!
    • imagePanel

      private JPanel[] imagePanel
      DOCUMENT ME!
    • imagePanelSizeX

      private int imagePanelSizeX
      Per num visible images information.
    • imagePanelSizeY

      private int imagePanelSizeY
      Per num visible images information.
    • imageWidth

      private int imageWidth
      DOCUMENT ME!
    • lastPageButton

      private JButton lastPageButton
      DOCUMENT ME!
    • lastPageMenuItem

      private JMenuItem lastPageMenuItem
      DOCUMENT ME!
    • lastSelectedSlice

      private int lastSelectedSlice
      DOCUMENT ME!
    • lightBoxOptions

      private JDialogLightBox lightBoxOptions
      DOCUMENT ME!
    • LUTa

      private ModelLUT LUTa
      DOCUMENT ME!
    • LUTb

      private ModelLUT LUTb
      DOCUMENT ME!
    • magMax

      private float magMax
      DOCUMENT ME!
    • magMin

      private float magMin
      DOCUMENT ME!
    • magnification

      private float magnification
      Magnification of images in the light-box (mag is a percentage).
    • maxPagePanelSizeX

      private int maxPagePanelSizeX
      DOCUMENT ME!
    • maxPagePanelSizeY

      private int maxPagePanelSizeY
      DOCUMENT ME!
    • nextPageButton

      private JButton nextPageButton
      elements of paging toolbar.
    • nextPageMenuItem

      private JMenuItem nextPageMenuItem
      DOCUMENT ME!
    • numPages

      private int numPages
      DOCUMENT ME!
    • numTotalSlices

      private int numTotalSlices
      DOCUMENT ME!
    • numTSlices

      private int numTSlices
      DOCUMENT ME!
    • numVisibleSlices

      private int numVisibleSlices
      DOCUMENT ME!
    • pagePanel

      private JPanel pagePanel
      DOCUMENT ME!
    • pagePanelSizeX

      private int pagePanelSizeX
      DOCUMENT ME!
    • pagePanelSizeY

      private int pagePanelSizeY
      DOCUMENT ME!
    • pagingTBar

      private JToolBar pagingTBar
      DOCUMENT ME!
    • pixBuffer

      private int[] pixBuffer
      DOCUMENT ME!
    • pixBufferB

      private int[] pixBufferB
      DOCUMENT ME!
    • prevPageButton

      private JButton prevPageButton
      DOCUMENT ME!
    • prevPageMenuItem

      private JMenuItem prevPageMenuItem
      DOCUMENT ME!
    • repaintButton

      private JButton repaintButton
      DOCUMENT ME!
    • resolutionX

      private float resolutionX
      DOCUMENT ME!
    • resolutionY

      private float resolutionY
      DOCUMENT ME!
    • row_dependent

      private boolean row_dependent
      Indicates which--row or column--should be dependent on the other.

      the default is the number of rows is the dependent variable, and is dependent apon the total number of images and the number of columns. Don't confuse the reading to be "This display is (t/f) dependent on the row." It -could- be read as "The display is a column-independent (t/f) matrix".

    • selectedBorderColor

      private Color selectedBorderColor
      Color for the line border surrounding each selected image in the light-box.
    • selectedBorderSize

      private int selectedBorderSize
      Spacing for the selected line border surrounding each image in the light-box.
    • selectedImages

      private Vector<String> selectedImages
      The selectedImages contains the *real* slice numbers -- not the index of a slice on a page. So the maximum number in the vector will be numTotalSlices - 1.
    • selectedTimeSlices

      private Vector<String> selectedTimeSlices
      The selected Time Slices vector contains the real slice number and time slice number in the format (slice #).(time slice #) the maximum number in the vector will be numTotalSlices * t.
    • selectIndividualTSlices

      private JCheckBoxMenuItem selectIndividualTSlices
      DOCUMENT ME!
    • singleTSlice

      private boolean singleTSlice
      DOCUMENT ME!
    • srcImage

      private ModelImage srcImage
      DOCUMENT ME!
    • tBar

      private JToolBar tBar
      DOCUMENT ME!
    • toolbarPanel

      private JPanel toolbarPanel
      Variables for the toolbar.
    • unselectedBorderColor

      private Color unselectedBorderColor
      DOCUMENT ME!
    • updatePaint

      private JCheckBoxMenuItem updatePaint
      DOCUMENT ME!
    • xScreen

      private int xScreen
      DOCUMENT ME!
    • yScreen

      private int yScreen
      DOCUMENT ME!
    • voiManager

      protected VOIManagerInterface voiManager
  • Constructor Details

    • ViewJFrameLightBox

      public ViewJFrameLightBox(ViewJFrameImage imgFrame, String _frameTitle, ModelImage _imageA, ModelLUT _LUTa, ModelImage _imageB, ModelLUT _LUTb, float resX, float resY, Dimension loc, ViewControlsImage _controls, VOIManagerInterface voiManager)
      Builds the initial lightbox view.
      Parameters:
      imgFrame - the parent image frame
      _frameTitle - title of the frame
      _imageA - model of image A
      _LUTa - Lookup table used for image A
      _imageB - model of image B
      _LUTb - Lookup table used for image B
      resX - x dimension image resolution
      resY - y dimension image resolution
      loc - location to display frame of image - NOT USED
      _controls - controls for the frame
  • Method Details

    • actionPerformed

      public void actionPerformed(ActionEvent event)
      Handler for action events.
      Specified by:
      actionPerformed in interface ActionListener
      Specified by:
      actionPerformed in class ViewJFrameBase
      Parameters:
      event - event which trigger the call to the handler
    • buildPage

      public void buildPage() throws OutOfMemoryError
      Builds the panels for a page and adds them to the page.
      Throws:
      OutOfMemoryError - DOCUMENT ME!
    • calcImagePanelSize

      public void calcImagePanelSize()
      Calculate the individual image panel size based on the current magnification of the image.
    • calcMaxPagePanelSize

      public void calcMaxPagePanelSize()
      Calculate the maximum page panel size based on the screen size, the size of the menubar and toolbars and whether the columns or rows are independent.
    • calcNumPages

      public int calcNumPages()
      Calculate the number of pages. This is dependent on the number of visible slices and the number of total slices. It's possible that the last page will not be completely filled with images.
      Returns:
      DOCUMENT ME!
    • calcPagePanelSize

      public void calcPagePanelSize()
      Calculate the size of the page Panel. First the maximum size of the pagePanel must have been determined. Once the maximum page panel size is determined, then the actual size may be reduced to nicely fit the current image panel size. This will also determine how many images will fit into the page panel.
    • calcScreenSize

      public void calcScreenSize()
      Calculate the screen size in pixels.
    • close

      public void close()
      Closes the frame.
      Overrides:
      close in class ViewJFrameBase
    • closeImageA

      public void closeImageA()
      Closes image A.
    • closeImageB

      public void closeImageB()
      Closes image B.
      Overrides:
      closeImageB in class ViewJFrameBase
    • componentResized

      public void componentResized(ComponentEvent event)
      Method called when a component resize event is generated. This method snaps the size of the frame and pagePanel to the nearest row, column sizing (so the gridRow and gridColumn and page layout may change).
      Specified by:
      componentResized in interface ComponentListener
      Overrides:
      componentResized in class ViewJFrameBase
      Parameters:
      event - DOCUMENT ME!
    • createImageBorder

      public CompoundBorder[] createImageBorder(int size)
      This method creates the compound image border array for each image in the light box. The outer border is a LineBorder that uses the border color defined in the settings. The inner border is also a Line Border, however it's color depends on whether an image is selected or not (see the selectedImages vector).
      Parameters:
      size - the number of images for which borders are needed
      Returns:
      DOCUMENT ME!
    • getBorderColor

      public Color getBorderColor()
      Returns the color of the image border.
      Returns:
      the image border color.
    • getBorderSize

      public int getBorderSize()
      Returns the size of the image border.
      Returns:
      the size of the image border.
    • getControls

      public ViewControlsImage getControls()
      Gets control widgets for frame.
      Specified by:
      getControls in class ViewJFrameBase
      Returns:
      DOCUMENT ME!
    • getCurrentTSlice

      public int getCurrentTSlice()
      Returns the current tslice.
      Returns:
      the current time slice.
    • getGridColor

      public Color getGridColor()
      Returns the color of the background of the grid panel.
      Returns:
      the background color of the grid panel.
    • getGridColumn

      public int getGridColumn()
      getLightBoxCol - return the number of columns.
      Returns:
      the number of columns.
    • getGridRow

      public int getGridRow()
      Returns the number of rows.
      Returns:
      the number of rows.
    • getGridSpacing

      public int getGridSpacing()
      Returns the size of the space between image borders.
      Returns:
      the size of space between image borders.
    • getIncrement

      public int getIncrement()
      Returns the increment between displayed slices
      Returns:
      increment between displayed slices
    • getImageA

      public ModelImage getImageA()
      Returns the reference to imageA.
      Specified by:
      getImageA in class ViewJFrameBase
      Returns:
      image
    • getImageB

      public ModelImage getImageB()
      Returns the reference to imageB.
      Specified by:
      getImageB in class ViewJFrameBase
      Returns:
      imageB
    • getMagMax

      public float getMagMax()
      Returns the maximum magnification of the image.
      Returns:
      the maximum magnification of the image.
    • getMagMin

      public float getMagMin()
      Returns the minimum magnificaiton of the image.
      Returns:
      the minimum magnification of the image.
    • getMagnification

      public float getMagnification()
      Returns the present magnification of the image.
      Returns:
      the present magnification of the image.
    • getNumTotalSlices

      public int getNumTotalSlices()
      Returns the number of images in the volume.
      Returns:
      the number of image (slices).
    • getNumTSlices

      public int getNumTSlices()
      Returns the number of time slices.
      Returns:
      the number of time slices.
    • getRowDependent

      public boolean getRowDependent()
      Returns the row dependent flag.
      Returns:
      the boolean indicating if rows are the dependent variable.
    • getSelectedBorderColor

      public Color getSelectedBorderColor()
      Returns the color of the selected image border.
      Returns:
      the selected image border color.
    • initBuffers

      public void initBuffers()
      Initializes the buffers that hold the image data.
    • initImageLUTs

      public void initImageLUTs(ModelLUT _LUTa, ModelLUT _LUTb) throws OutOfMemoryError
      Initializes the LUTs for the images.
      Parameters:
      _LUTa - DOCUMENT ME!
      _LUTb - DOCUMENT ME!
      Throws:
      OutOfMemoryError - DOCUMENT ME!
    • itemStateChanged

      public void itemStateChanged(ItemEvent event)
      itemStateChanged.
      Specified by:
      itemStateChanged in interface ItemListener
      Parameters:
      event - DOCUMENT ME!
    • loadPage

      public void loadPage() throws OutOfMemoryError
      Loads the currentPage images see loadPage(int page).
      Throws:
      OutOfMemoryError - DOCUMENT ME!
    • loadPage

      public void loadPage(int page) throws OutOfMemoryError
      Loads the images for a page into component images and then loads the page.
      Parameters:
      page - DOCUMENT ME!
      Throws:
      OutOfMemoryError - DOCUMENT ME!
    • removeControls

      public void removeControls()
      Removes the menu and controls of the main frame so that a new frame can load the main frame with the proper controls.

      This function no longer loads its controls into the main control window however, this method is required because this class extends ViewJFrameBase

      Specified by:
      removeControls in class ViewJFrameBase
    • setActiveImage

      public void setActiveImage(int active)
      Sets the active image for drawing VOIs.
      Specified by:
      setActiveImage in class ViewJFrameBase
      Parameters:
      active - IMAGE_A or IMAGE_B
    • setAlphaBlend

      public void setAlphaBlend(int value)
      Sets the alpha blending of parameter for two image displaying.
      Specified by:
      setAlphaBlend in class ViewJFrameBase
      Parameters:
      value - amount [0,100] that is the percentage of Image A to be displayed
    • setBorderColor

      public void setBorderColor(Color col)
      Sets the color of the image borders.
      Parameters:
      col - color of the image borders
    • setBorderSize

      public void setBorderSize(int size)
      Sets the image border size.
      Parameters:
      size - thichness of the image border.
    • setControls

      public void setControls()
      Sets the menu and controls (i.e. toolbars) of the main frame! This puts the menus and controls needed to controls the operations of this frame. Different image frames have different menu and controls.

      This function no longer loads its controls into the main control window however, this method is required because this class extends ViewJFrameBase

      Specified by:
      setControls in class ViewJFrameBase
    • setEnabled

      public void setEnabled(boolean flag)
      Controls whether or not the images/VOIs of the frame can be modified.
      Specified by:
      setEnabled in class ViewJFrameBase
      Parameters:
      flag - if true the image/VOIs can be modified; if false image/VOIs can NOT be modified
    • setGridColor

      public void setGridColor(Color col)
      Sets the background color of the panel that is in the scrollpane.
      Parameters:
      col - the color the background of the panel that is in the scrollpane
    • setGridColumn

      public void setGridColumn(int col)
      This method is called when there is a change to the light box column number--in the limiting case. It ensures that the column value is within bounds.
      Parameters:
      col - the number of columns to be used to display the images
    • setGridRow

      public void setGridRow(int row)
      This method is called when there is a change to the light box row number--in the limiting case. It ensures that the row value is within bounds.
      Parameters:
      row - the number of rows to be used to display the images
    • setGridSpacing

      public void setGridSpacing(int width)
      Sets the distance between adjacent images. verifies that the width value is within bounds. If width is outside of bounds, method fails quietly.
      Parameters:
      width - the width of space between images.
    • setIncrement

      public void setIncrement(int _increment)
      Sets the increment between displayed slices
      Parameters:
      _increment - increment between displayed slices
    • setHighlightColor

      public void setHighlightColor(Color col)
      Sets the color of all the images highlight to the specified color.
      Parameters:
      col - color of the image highlight
    • setImageA

      public void setImageA(ModelImage _imageA)
      Accessor that sets the reference to imageA.
      Overrides:
      setImageA in class ViewJFrameBase
      Parameters:
      _imageA - image to set the frame to
    • setImageB

      public void setImageB(ModelImage _imageB)
      Accessor that sets the reference to imageB.
      Specified by:
      setImageB in class ViewJFrameBase
      Parameters:
      _imageB - image to set the frame to
    • setMagnification

      public void setMagnification(int num)
      Sets the magnification of the images will ensure that the current magnification is not larger than the maximum.
      Parameters:
      num - number between magMin and magMax
    • setMagnification

      public void setMagnification(float num)
      Sets the magnification of the images will ensure that the current magnification is not smaller than the minimum.
      Parameters:
      num - number between magMin and magMax
    • setPageToCurrentSlice

      public void setPageToCurrentSlice()
      Sets the current page so that the current image slice is displayed.
    • setPageToSlice

      public void setPageToSlice(int slice)
      Sets the page so that the given image slice is displayed.
      Parameters:
      slice - - the image slice to display
    • setPaintBitmapSwitch

      public void setPaintBitmapSwitch(boolean paintBitmapSwitch)
      When switching the active image, copy the paintBitmap of the previous active image into the paintBitmap of the new active image.
      Specified by:
      setPaintBitmapSwitch in class ViewJFrameBase
      Parameters:
      paintBitmapSwitch - DOCUMENT ME!
    • setRGBTA

      public void setRGBTA(ModelRGB RGBT)
      The following 2 functions set the RGB tables for ARGB images A and B.
      Specified by:
      setRGBTA in class ViewJFrameBase
      Parameters:
      RGBT - DOCUMENT ME!
    • setRGBTB

      public void setRGBTB(ModelRGB RGBT)
      DOCUMENT ME!
      Specified by:
      setRGBTB in class ViewJFrameBase
      Parameters:
      RGBT - DOCUMENT ME!
    • setRowDependent

      public void setRowDependent(boolean imgMatrixIsRowDependent)
      setRowDependent -- sets the row dependent flag.
      Parameters:
      imgMatrixIsRowDependent - DOCUMENT ME!
    • setSelectedBorderColor

      public void setSelectedBorderColor(Color col)
      Sets the color of the selected image borders.
      Parameters:
      col - color of the selected image borders
    • setSelectedBorderSize

      public void setSelectedBorderSize(int size)
      Sets the selected image border size.
      Parameters:
      size - thichness of the selected image border.
    • setSlice

      public void setSlice(int slice)
      Used in ViewImageUpdateInterface. This method sets the
      Specified by:
      setSlice in interface ViewImageUpdateInterface
      Parameters:
      slice - image plane
    • setTimeSlice

      public void setTimeSlice(int tslice)
      Sets the time slice if the image has 4 dimensions and updates the image and title.
      Specified by:
      setTimeSlice in interface ViewImageUpdateInterface
      Parameters:
      tslice - time slice
    • setTitle

      public void setTitle()
      Sets the title of the frame with the image name of slice location.
      Specified by:
      setTitle in class ViewJFrameBase
    • setZoom

      public boolean setZoom(float zX, float zY)
      Sets the scales that defines the magnification of the image.
      Parameters:
      zX - zoom in the x direction
      zY - zoom in the y direction
      Returns:
      DOCUMENT ME!
    • storeToDefaults

      public void storeToDefaults()
      Stores the current light box display properties.
      • row dependent
      • grid row
      • grid column
      • grid size
      • grid color
      • border size
      • border color
      • magnification
      • frame location

      into the MipavPreferences file.

    • updateBorderColor

      public void updateBorderColor(Color col)
      Sets the color of the image borders.
      Parameters:
      col - color of the image borders
    • updateBorderSize

      public void updateBorderSize(int size)
      Sets the image border size and then updates light box. Verifies that the width value is within bounds. If width is outside of bounds, method fails quietly.
      Parameters:
      size - thichness of the image border.
    • updateGridColor

      public void updateGridColor(Color col)
      Sets the background color of the panel that is in the scrollpane.
      Parameters:
      col - the color the background of the panel that is in the scrollpane
    • updateGridColumn

      public void updateGridColumn(int col)
      This method is called when there is a change to the light box column number verifies that the width value is within bounds. If width is outside of bounds, method fails quietly. 1. recalculate the rows of the light box 2. recalculate the size of the scrollPanel and scrollPane 3. change the layout accordingly
      Parameters:
      col - the number of columns to be used to display the images
    • updateGridRow

      public void updateGridRow(int row)
      This method is called when there is a change to the light box row number and then updates light box. Verifies that the width value is within bounds row value. If width is outside of bounds, method fails quietly. 1. recalculate the columns of the light box 2. recalculate the size of the scrollPanel and scrollPane 3. change the layout accordingly
      Parameters:
      row - the number of rows to be used to display the images
    • updateGridSpacing

      public void updateGridSpacing(int width)
      Set the distance between adjacent images and updates light box. verifies that the width value is within bounds. If width is outside of bounds, method fails quietly.
      Parameters:
      width - the width of space between images.
    • updateIncrement

      public void updateIncrement(int increment)
      Sets the increment between displayed slices and updates the light box.
      Parameters:
      increment - between displayed slices
    • updateImage

      public final boolean updateImage(int slice, boolean highlightFlag)
      This methods calls the componentImage's update method to repaint the screen. This will set the requested highlight when the repaint is issued. Use setSlice() to update a single frames highlight, as this will not set the current slice.
      Parameters:
      slice - the slice of the image to update -- NOT the index into the visible slices.
      highlightFlag - requests to paint the highlight around the component image
      Returns:
      boolean confirming successful update see setSlice
      See Also:
    • updateImageBorder

      public void updateImageBorder(int i)
      This methods updates the image border for a single slice.
      Parameters:
      i - the index of the image to update (NOT the slice number)
    • updateImageBorders

      public void updateImageBorders()
      This method updates all the image borders for a page. This needs to be called whenever a new page is loaded.
    • updateImageExtents

      public boolean updateImageExtents()
      (Part of ViewImageUpdateInterface) This methods calls the componentImage's REPAINT method to redraw the screen. The extents on this image have changed, so the extents need to be read in again and menus, panes and slide bars adjusted accordingly.
      Specified by:
      updateImageExtents in interface ViewImageUpdateInterface
      Specified by:
      updateImageExtents in class ViewJFrameBase
      Returns:
      DOCUMENT ME!
      See Also:
    • updateImages

      public final boolean updateImages()
      This methods calls the componentImage's update method to repaint the screen.
      Specified by:
      updateImages in interface ViewImageUpdateInterface
      Returns:
      boolean confirming successful update
    • updateImages

      public final boolean updateImages(boolean forceShow)
      This methods calls the componentImage's update method to redraw the screen. Without LUT changes.
      Specified by:
      updateImages in interface ViewImageUpdateInterface
      Parameters:
      forceShow - forces show to re import image and calc. java image
      Returns:
      boolean confirming successful update
    • updateImages

      public final boolean updateImages(ModelLUT _LUTa, ModelLUT _LUTb, boolean forceShow, int interpMode)
      This methods calls the componentImage's update method to redraw the screen.
      Specified by:
      updateImages in interface ViewImageUpdateInterface
      Parameters:
      _LUTa - LUT used to update imageA
      _LUTb - LUT used to update imageB
      forceShow - forces show to re import image and calc. java image
      interpMode - image interpolation method (Nearest or Smooth)
      Returns:
      boolean confirming successful update
    • updateImageSelection

      public void updateImageSelection(int plane, boolean applyToRange)
      Updates the image selection list by toggling the selection of the Z(3rd dimension) plane and the time (4th dimesion) volume.
      Parameters:
      plane - image plane that is to displayed
      applyToRange - the volume in which the plane the is to be displayed from
    • updateImageSlice

      public void updateImageSlice(int plane, int timeVolume)
      Updates the Z(3rd dimension) plane and the time (4th dimesion) volume.
      Parameters:
      plane - image plane that is to displayed
      timeVolume - the volume in which the plane the is to be displayed from
    • updateMagnification

      public void updateMagnification(int num)
      Sets the magnification of the images and then updates light box.
      Parameters:
      num - number between magMin and magMax
    • updatePagingToolbar

      public void updatePagingToolbar()
      Enable or disable the buttons on the paging toolbar and the view menu items based on the current page and the number of pages.
    • updateRowsColumns

      public void updateRowsColumns(boolean row_dependent, int row, int col)
      This method is called when there is a change to the light box setting for rows, columns, or row_dependency.
      Parameters:
      row_dependent - boolean indicating if rows are the dependent variables
      row - int indicating the number of rows to display on a page
      col - int indicating the number of columns to display on a page
    • updateToolbarLayout

      public void updateToolbarLayout()
      Updates the toolbar panel's layout based on the row dependcies.
    • windowActivated

      public void windowActivated(WindowEvent event)
      Over loaded so that it doesn't do anything.
      Specified by:
      windowActivated in interface WindowListener
      Overrides:
      windowActivated in class ViewJFrameBase
      Parameters:
      event - DOCUMENT ME!
    • windowClosing

      public void windowClosing(WindowEvent event)
      Ask user if really wishes to close the image frame.
      Specified by:
      windowClosing in interface WindowListener
      Overrides:
      windowClosing in class ViewJFrameBase
      Parameters:
      event - DOCUMENT ME!
    • invertSelections

      protected void invertSelections(boolean updateBorders)
      Method to invert the selection of slices in an image.
      Parameters:
      updateBorders - DOCUMENT ME!
    • selectAll

      protected void selectAll()
      Method to select all the slices in an image.
    • selectNone

      protected void selectNone()
      Method to select none of the slices in an image.
    • setButtonStatus

      protected void setButtonStatus()
      Method to set the status of the delete and extract menuItems and Buttons based on the selectedImages vector.
    • setMagMax

      protected void setMagMax()
      Sets the maximum magnification to the image. will ensure that the current magnification is not larger than the maximum.
    • setMagMin

      protected void setMagMin()
      Sets the minimum magnification to the image. will ensure that the current magnification is not smaller than the minimum.
    • buildMenuBar

      private void buildMenuBar()
      Builds a simple menubar for this frame (ViewJFrameLightBox).
    • buildToolbar

      private void buildToolbar()
      Builds a simple toolbar for this frame (ViewJFrameLightBox).
    • callExtractAlgorithm

      private void callExtractAlgorithm()
      call the ExractSlices algorithm, building the dest image based on the type of the src image. The ExtractSlices algorithm always extracts slices to a new dest image.
    • callRemoveAlgorithm

      private void callRemoveAlgorithm()
      call the RemoveSlices algorithm, building the dest image based on the type of the src image. The RemoveSlices algorithm always deletes slices from the src image, replacing the old src image.
    • extractColor

      private Color extractColor(String preferencesColorString)
      Makes a series of ints, corresponding to a color string stored in the Mipav.preferences file which looks like a color string defined in web pages ("RRGGBB"). and returns a java.awt.Color based on those values.

      Call with extractColor(Preferences.getProperty("OneOfThoseColors"));

      if preferencesColorString is null, or incomplete, returns black.

      Parameters:
      String - preferencesColorString-- this class pre-arranges the colors to be
      Returns:
      java.awt.Color
      See Also:
    • makeColorString

      private String makeColorString(Color aColor)
      Takes a java.awt.Color and forms a string representing its color. the string appears as 6 hex digits and looks like the color coding used in html files, as in: "RRGGBB".
      Parameters:
      aColor - the color to be converted to a hexidecimal
      Returns:
      hexa-decimal string representing the 8-bit values of an RGB color, in the form of "RRGGBB".
    • resize

      private void resize()
      Method that resizes the frame and adjusts the rows, columns as needed.
    • setupLightBox

      private void setupLightBox(ModelLUT LUTa, ModelLUT LUTb)
      Setup the light box view. A scrollpane is added to the frame. A panel with a grid layout is added to the scrollpane. Bordered panels the size of the image are added to each position of the grid. Lastly image slices are added to each bordered panel.
      Parameters:
      LUTa - Lookup table used to display image A.
      LUTb - Lookup table used to display image B.
    • updateLayout

      private void updateLayout()
      Changes the layout of the light box (i.e. row or col) 1. reset the layout 2. reset the size of panel and pane 3. resize accordingly

      This will work for simple layout updates --- where the new page size can fit on the screen. If the number of pages decrease, then the page needs to be rebuilt.

    • updateLightBoxLocation

      private void updateLightBoxLocation(String ulCorner)
      Gets the string from the preferences and verifies the upper-left-hand verifies the upper-left-hand corner is within the screen boundaries. So long as it is within screen boundaries, sets the frame to the given location. String is specified by: "x,y" where x invalid input: '&' y are pixel locations (ints in those dimensions).
      Parameters:
      ulCorner - DOCUMENT ME!