CmpSpots
Class CmpSpotsScrollableImagePanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by CmpSpots.CmpSpotsScrollableImagePanel
All Implemented Interfaces:
java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class CmpSpotsScrollableImagePanel
extends javax.swing.JPanel
implements java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener

Class CmpSpotsScrollableImagePanel implements a JPanel GUI to show images used in the 2D spot pairing program.

This work was produced by Peter Lemkin of the National Cancer Institute, an agency of the United States Government. As a work of the United States Government there is no associated copyright. It is offered as open source software under the Mozilla Public License (version 1.1) subject to the limitations noted in the accompanying LEGAL file. This notice must be included with the code. The Open2Dprot Mozilla and Legal files are available on http://Open2Dprot.sourceforge.net/.

Version:
$Date: 2005/10/20 12:20:34 $ $Revision: 1.8 $
Author:
P. Lemkin, NCI-Frederick, Frederick, MD, 21702
See Also:
Open2Dprot Home, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 boolean altMod
          ALT/Mouse
 int canvasHeight
          canvas height
 int canvasWidth
          canvas width
 int centerPtX
          center point X
 int centerPtY
          center point Y
private  CmpSpots cs
          instance of the main class
 CmpShowImage csi
          instance of CmpShowImage
 boolean ctrlMod
          CTRL/Mouse
 boolean ctrlShiftMod
          CTRL-SHIFT/Mouse
 java.awt.Dimension curDim
          keep track size, resizing window
 int curLMS
          current landmark set of current spot.
 int curPixHeight
          img height
 int curPixWidth
          img width
(package private)  java.awt.Point curPos
          keep track of position of scroller
 java.awt.Color cursorColor
          Overlay color for cursor
 java.awt.Font cursorFont
           
 DbSpot curSpot
          current spot if not null
 java.awt.Color dbugRoiColor
          Overlay dbug ROI color
 DrawOverlays dol
          instance of DrawOverlays
 int dx1
           
 int dx2
           
 int dy1
           
 int dy2
           
 java.lang.String fontFamily
           
 java.awt.Image imgToDraw
          painted image, can be zoomed
 java.awt.Font lblFont
           
 java.awt.Color lmDBcolor
          Overlay color for user defined landmarks
 java.awt.Font lmFont
           
 java.awt.Color lmsColor
          Overlay color for spots in the currently selected landmark set
 java.awt.Color nonLMScolor
          Overlay color for spot that are NOT in the currently selected landmark set.
 java.awt.Image oImage
          for outside/offscreen painting
 java.awt.Image origImg
          original image
 int origPixHeight
          original pixel height
 int origPixWidth
          pixel width
(package private)  java.lang.Object parentObj
          for invoke method on outside
 int pixHeight
          img height
 int pixWidth
          img width
 int preferredHeight
          preferred size of canvas Height
 int preferredWidth
          preferred size of canvas Width
 int scrollPaneHeight
          scroller height
 int scrollPaneWidth
          scroller width
 java.awt.Point scrollPos
          current scroller position
(package private) static long serialVersionUID
          frame id
 boolean shiftMod
          SHIFT/Mouse
 ScrollableImage si
          actual scrolling object/panel
private  int xBase
          + base address of ULHC of clipped image in image canvas used in last paint
 int xImg
          image address (x,y)+(xBase,yBase)
(package private)  int xObj
          X cursor position mapped to image
private  int yBase
           
 int yImg
          image address (x,y)+(xBase,yBase)
(package private)  int yObj
          Y cursor position mapped to image
 int zoomFactor
          zoom factor
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
 
Constructor Summary
CmpSpotsScrollableImagePanel(CmpShowImage csi, java.awt.Image origImg, int scrollPaneWidth, int scrollPaneHeight, java.lang.Object parentObj)
          CmpSpotsScrollableImagePanel() - constructor.
 
Method Summary
 boolean checkHistActiveBinFilter(DbSpot s)
          checkHistActiveBinFilter() - test if the histogram active bin is selected and histogram spot filtering is enabled.
 void drawFilteredSpots(java.awt.Graphics g)
          drawFilteredSpots() - draw Filtered spots with various spot options.
 void drawOverLays(java.awt.Graphics g, java.awt.Image imgToDraw, int w, int h)
          drawOverLays() - paint the scrollable image canvas which includes the image, optional ROI's, overlay spots, optional histogram that is repainted in another class.
 void drawPairedSpotSublists(java.awt.Graphics g, DbSpot spot)
          drawPairedSpotSublists() - draw spots associated with a single spot pair Draw spots associated with the spot pairs
 java.awt.Dimension getPreferredSize()
          getPreferredSize() - getPreferredSize, must be implemented for ScrollPane to be displayed correctly.
 void keyPressed(java.awt.event.KeyEvent e)
          keyPressed() - handle key down events
 void keyReleased(java.awt.event.KeyEvent e)
           
 void keyTyped(java.awt.event.KeyEvent e)
           
(package private)  void mapRelXYtoImage(java.awt.event.MouseEvent e)
          mapRelXYtoImage() - map (x,y)Mouse in current canvas to (xImg,yImg) as well as updating the parent.(xImg,yImg) values.
 void mouseClicked(java.awt.event.MouseEvent e)
           
 void mouseDragged(java.awt.event.MouseEvent e)
          mouseDragged() - display data
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mouseMoved(java.awt.event.MouseEvent e)
          mouseMoved() - Change cursor to + when moved over this (Component)
 void mousePressed(java.awt.event.MouseEvent e)
          mousePressed() - display data
 void mouseReleased(java.awt.event.MouseEvent e)
           
 void paintCSI(java.awt.Graphics g, java.awt.Image imgToDraw, int w, int h, boolean offscreenFlag)
          paintCSI() - repaint scrollable canvas in region defined by scroll bars
 void resizeFonts(int zoomFactor)
          resizeFonts() - set the special fonts based on zoom value
 boolean setImage(java.awt.Image imgToDraw)
          setImage() - set new image
 boolean setImage(int zoomFactor)
          setImage() - rescale image based on zoom factor
 void setScrollers()
          setScrollers() - set scrollers for new position due to re-zoomed
 void setZoom(int zoomFactor)
          setZoom() - set the image size/zoom and create a new internalCanvas/JPanel
 java.lang.String showImageMousePositions(java.awt.event.MouseEvent e, java.lang.String msgs)
          showImageMousePositions() - show the image mouse positions Only report if debugging...
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
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, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, 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
 
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, transferFocusBackward, 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, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
frame id

See Also:
Constant Field Values

csi

public CmpShowImage csi
instance of CmpShowImage


cs

private CmpSpots cs
instance of the main class


dol

public DrawOverlays dol
instance of DrawOverlays


ctrlMod

public boolean ctrlMod
CTRL/Mouse


shiftMod

public boolean shiftMod
SHIFT/Mouse


ctrlShiftMod

public boolean ctrlShiftMod
CTRL-SHIFT/Mouse


altMod

public boolean altMod
ALT/Mouse


fontFamily

public java.lang.String fontFamily

lblFont

public java.awt.Font lblFont

lmFont

public java.awt.Font lmFont

cursorFont

public java.awt.Font cursorFont

xBase

private int xBase
+ base address of ULHC of clipped image in image canvas used in last paint


yBase

private int yBase

xImg

public int xImg
image address (x,y)+(xBase,yBase)


yImg

public int yImg
image address (x,y)+(xBase,yBase)


curDim

public java.awt.Dimension curDim
keep track size, resizing window


dx1

public int dx1

dy1

public int dy1

dx2

public int dx2

dy2

public int dy2

centerPtX

public int centerPtX
center point X


centerPtY

public int centerPtY
center point Y


curLMS

public int curLMS
current landmark set of current spot. -1 if not current spot


preferredWidth

public int preferredWidth
preferred size of canvas Width


preferredHeight

public int preferredHeight
preferred size of canvas Height


cursorColor

public java.awt.Color cursorColor
Overlay color for cursor


lmDBcolor

public java.awt.Color lmDBcolor
Overlay color for user defined landmarks


lmsColor

public java.awt.Color lmsColor
Overlay color for spots in the currently selected landmark set


nonLMScolor

public java.awt.Color nonLMScolor
Overlay color for spot that are NOT in the currently selected landmark set.


si

public ScrollableImage si
actual scrolling object/panel


origImg

public java.awt.Image origImg
original image


oImage

public java.awt.Image oImage
for outside/offscreen painting


imgToDraw

public java.awt.Image imgToDraw
painted image, can be zoomed


parentObj

java.lang.Object parentObj
for invoke method on outside


origPixWidth

public int origPixWidth
pixel width


origPixHeight

public int origPixHeight
original pixel height


pixWidth

public int pixWidth
img width


pixHeight

public int pixHeight
img height


curPixWidth

public int curPixWidth
img width


curPixHeight

public int curPixHeight
img height


canvasWidth

public int canvasWidth
canvas width


canvasHeight

public int canvasHeight
canvas height


curSpot

public DbSpot curSpot
current spot if not null


dbugRoiColor

public java.awt.Color dbugRoiColor
Overlay dbug ROI color


scrollPaneHeight

public int scrollPaneHeight
scroller height


scrollPaneWidth

public int scrollPaneWidth
scroller width


zoomFactor

public int zoomFactor
zoom factor


scrollPos

public java.awt.Point scrollPos
current scroller position


xObj

int xObj
X cursor position mapped to image


yObj

int yObj
Y cursor position mapped to image


curPos

java.awt.Point curPos
keep track of position of scroller

Constructor Detail

CmpSpotsScrollableImagePanel

public CmpSpotsScrollableImagePanel(CmpShowImage csi,
                                    java.awt.Image origImg,
                                    int scrollPaneWidth,
                                    int scrollPaneHeight,
                                    java.lang.Object parentObj)
CmpSpotsScrollableImagePanel() - constructor.

Parameters:
csi - is the image scroller associated with the image
origImg - is the image to display
scrollPaneWidth - width of scroller window
scrollPaneHeight - height of scroller window
parentObj - for painting via invoke
Method Detail

getPreferredSize

public java.awt.Dimension getPreferredSize()
getPreferredSize() - getPreferredSize, must be implemented for ScrollPane to be displayed correctly.

Overrides:
getPreferredSize in class javax.swing.JComponent

showImageMousePositions

public java.lang.String showImageMousePositions(java.awt.event.MouseEvent e,
                                                java.lang.String msgs)
showImageMousePositions() - show the image mouse positions Only report if debugging...

Parameters:
e - is mouse event
msgs - is message to display
x - is image object position
y - is image object position

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
keyPressed() - handle key down events

Specified by:
keyPressed in interface java.awt.event.KeyListener
Parameters:
e - is KeyEvent

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
Specified by:
keyReleased in interface java.awt.event.KeyListener

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
Specified by:
keyTyped in interface java.awt.event.KeyListener

mapRelXYtoImage

final void mapRelXYtoImage(java.awt.event.MouseEvent e)
mapRelXYtoImage() - map (x,y)Mouse in current canvas to (xImg,yImg) as well as updating the parent.(xImg,yImg) values. Set the lastISName for possible use elsewhere.

Parameters:
e - is mouse event
x - is image cursor
y - is image cursor

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
mousePressed() - display data

Specified by:
mousePressed in interface java.awt.event.MouseListener
Parameters:
e - is MouseEvent

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
mouseDragged() - display data

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Parameters:
e - is MouseEvent

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
mouseMoved() - Change cursor to + when moved over this (Component)

Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener
Parameters:
e - is MouseEvent

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Specified by:
mouseExited in interface java.awt.event.MouseListener

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener

checkHistActiveBinFilter

public boolean checkHistActiveBinFilter(DbSpot s)
checkHistActiveBinFilter() - test if the histogram active bin is selected and histogram spot filtering is enabled. If not testing !useFilterByBinFlag), then return true. We test for filterGEQactiveBinFlag for GEQ activeBin value, else it is LEQ activeBin value. If testing GEQ activeBin and histType spot feature GEQ activeBinValue else if testing LEQ activeBin and the histType spot feature is LEQ activeBinValue, then return true, else false.

Parameters:
s - is spot to test
Returns:
true if spot meets filter criteria. If activeBin is not selected then return true. Otherwise return false.

drawFilteredSpots

public void drawFilteredSpots(java.awt.Graphics g)
drawFilteredSpots() - draw Filtered spots with various spot options.

Parameters:
g - is graphics context

drawPairedSpotSublists

public void drawPairedSpotSublists(java.awt.Graphics g,
                                   DbSpot spot)
drawPairedSpotSublists() - draw spots associated with a single spot pair Draw spots associated with the spot pairs

Parameters:
g - is graphics context
spot - that is part of a pair. This will display spots associated with the pair that this spot belongs to.

drawOverLays

public void drawOverLays(java.awt.Graphics g,
                         java.awt.Image imgToDraw,
                         int w,
                         int h)
drawOverLays() - paint the scrollable image canvas which includes the image, optional ROI's, overlay spots, optional histogram that is repainted in another class.

Parameters:
g - is graphics context.
imgToDraw - image to display/draw
w - width of image
h - height of image

paintCSI

public void paintCSI(java.awt.Graphics g,
                     java.awt.Image imgToDraw,
                     int w,
                     int h,
                     boolean offscreenFlag)
paintCSI() - repaint scrollable canvas in region defined by scroll bars

Parameters:
g - is graphics context
imgToDraw - image to draw
w - width
h - height
offscreenFlag - draw g to offscreen image or screen/JPanel

setZoom

public void setZoom(int zoomFactor)
setZoom() - set the image size/zoom and create a new internalCanvas/JPanel

Parameters:
zoomFactor - zoom factor

setImage

public boolean setImage(int zoomFactor)
setImage() - rescale image based on zoom factor

Parameters:
zoomFactor - zoom factor

setImage

public boolean setImage(java.awt.Image imgToDraw)
setImage() - set new image

Parameters:
zoomFactor - zoom factor

setScrollers

public void setScrollers()
setScrollers() - set scrollers for new position due to re-zoomed


resizeFonts

public void resizeFonts(int zoomFactor)
resizeFonts() - set the special fonts based on zoom value