ij.gui
Class ImageCanvas

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Canvas
          extended by ij.gui.ImageCanvas
All Implemented Interfaces:
java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, javax.accessibility.Accessible

public class ImageCanvas
extends java.awt.Canvas
implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.lang.Cloneable

This is a Canvas used to display images in a Window.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.Canvas
java.awt.Canvas.AccessibleAWTCanvas
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected static java.awt.Cursor crosshairCursor
           
protected static java.awt.Cursor defaultCursor
           
protected  int dstHeight
           
protected  int dstWidth
           
protected  int flags
           
protected static java.awt.Cursor handCursor
           
protected  ImageJ ij
           
protected  int imageHeight
           
protected  boolean imageUpdated
           
protected  int imageWidth
           
protected  ImagePlus imp
           
protected  double magnification
           
protected static java.awt.Cursor moveCursor
           
protected  java.awt.Rectangle srcRect
           
static boolean usePointer
           
protected  int xMouse
           
protected  int xMouseStart
           
protected  int xSrcStart
           
protected  int yMouse
           
protected  int yMouseStart
           
protected  int ySrcStart
           
 
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
ImageCanvas(ImagePlus imp)
           
 
Method Summary
protected  java.awt.Dimension canEnlarge(int newWidth, int newHeight)
           
 void disablePopupMenu(boolean status)
          Disable/enable popup menu.
 java.awt.Point getCursorLoc()
          Returns the current cursor location.
static double getHigherZoomLevel(double currentMag)
           
static double getLowerZoomLevel(double currentMag)
           
 double getMagnification()
           
 int getModifiers()
          Returns the mouse event modifiers.
 java.awt.Dimension getPreferredSize()
           
 boolean getShowAllROIs()
           
 java.awt.Rectangle getSrcRect()
           
protected  void handlePopupMenu(java.awt.event.MouseEvent e)
           
 void mouseClicked(java.awt.event.MouseEvent e)
           
 void mouseDragged(java.awt.event.MouseEvent e)
           
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mouseMoved(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
           
 void mouseReleased(java.awt.event.MouseEvent e)
           
 int offScreenX(int sx)
          Converts a screen x-coordinate to an offscreen x-coordinate.
 double offScreenXD(int sx)
          Converts a screen x-coordinate to a floating-point offscreen x-coordinate.
 int offScreenY(int sy)
          Converts a screen y-coordinate to an offscreen y-coordinate.
 double offScreenYD(int sy)
          Converts a screen y-coordinate to a floating-point offscreen y-coordinate.
 void paint(java.awt.Graphics g)
           
 int screenX(int ox)
          Converts an offscreen x-coordinate to a screen x-coordinate.
 int screenXD(double ox)
          Converts a floating-point offscreen x-coordinate to a screen x-coordinate.
 int screenY(int oy)
          Converts an offscreen y-coordinate to a screen y-coordinate.
 int screenYD(double oy)
          Converts a floating-point offscreen x-coordinate to a screen x-coordinate.
protected  void scroll(int sx, int sy)
           
 void setCursor(int sx, int sy, int ox, int oy)
          Sets the cursor based on the current tool and cursor location.
protected  void setDrawingColor(int ox, int oy, boolean setBackground)
           
 void setDrawingSize(int width, int height)
           
 void setImageUpdated()
          ImagePlus.updateAndDraw calls this method to get paint to update the image from the ImageProcessor.
 void setMagnification(double magnification)
           
 void setShowAllROIs(boolean showAllROIs)
           
 void setShowCursorStatus(boolean status)
          Called by IJ.showStatus() to prevent status bar text from being overwritten until the cursor moves at least 12 pixels.
protected  void setupScroll(int ox, int oy)
           
 void unzoom()
           
 void update(java.awt.Graphics g)
           
 void zoomIn(int x, int y)
          Zooms in by making the window bigger.
 void zoomOut(int x, int y)
          Zooms out by making the source rectangle (srcRect) larger and centering it on (x,y).
 
Methods inherited from class java.awt.Canvas
addNotify, createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

defaultCursor

protected static java.awt.Cursor defaultCursor

handCursor

protected static java.awt.Cursor handCursor

moveCursor

protected static java.awt.Cursor moveCursor

crosshairCursor

protected static java.awt.Cursor crosshairCursor

usePointer

public static boolean usePointer

imp

protected ImagePlus imp

imageUpdated

protected boolean imageUpdated

srcRect

protected java.awt.Rectangle srcRect

imageWidth

protected int imageWidth

imageHeight

protected int imageHeight

xMouse

protected int xMouse

yMouse

protected int yMouse

ij

protected ImageJ ij

magnification

protected double magnification

dstWidth

protected int dstWidth

dstHeight

protected int dstHeight

xMouseStart

protected int xMouseStart

yMouseStart

protected int yMouseStart

xSrcStart

protected int xSrcStart

ySrcStart

protected int ySrcStart

flags

protected int flags
Constructor Detail

ImageCanvas

public ImageCanvas(ImagePlus imp)
Method Detail

setDrawingSize

public void setDrawingSize(int width,
                           int height)

setImageUpdated

public void setImageUpdated()
ImagePlus.updateAndDraw calls this method to get paint to update the image from the ImageProcessor.


update

public void update(java.awt.Graphics g)
Overrides:
update in class java.awt.Canvas

paint

public void paint(java.awt.Graphics g)
Overrides:
paint in class java.awt.Canvas

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class java.awt.Component

getCursorLoc

public java.awt.Point getCursorLoc()
Returns the current cursor location.


getModifiers

public int getModifiers()
Returns the mouse event modifiers.


setCursor

public void setCursor(int sx,
                      int sy,
                      int ox,
                      int oy)
Sets the cursor based on the current tool and cursor location.


offScreenX

public int offScreenX(int sx)
Converts a screen x-coordinate to an offscreen x-coordinate.


offScreenY

public int offScreenY(int sy)
Converts a screen y-coordinate to an offscreen y-coordinate.


offScreenXD

public double offScreenXD(int sx)
Converts a screen x-coordinate to a floating-point offscreen x-coordinate.


offScreenYD

public double offScreenYD(int sy)
Converts a screen y-coordinate to a floating-point offscreen y-coordinate.


screenX

public int screenX(int ox)
Converts an offscreen x-coordinate to a screen x-coordinate.


screenY

public int screenY(int oy)
Converts an offscreen y-coordinate to a screen y-coordinate.


screenXD

public int screenXD(double ox)
Converts a floating-point offscreen x-coordinate to a screen x-coordinate.


screenYD

public int screenYD(double oy)
Converts a floating-point offscreen x-coordinate to a screen x-coordinate.


getMagnification

public double getMagnification()

setMagnification

public void setMagnification(double magnification)

getSrcRect

public java.awt.Rectangle getSrcRect()

getLowerZoomLevel

public static double getLowerZoomLevel(double currentMag)

getHigherZoomLevel

public static double getHigherZoomLevel(double currentMag)

zoomIn

public void zoomIn(int x,
                   int y)
Zooms in by making the window bigger. If it can't be made bigger, then make the source rectangle (srcRect) smaller and center it at (x,y).


canEnlarge

protected java.awt.Dimension canEnlarge(int newWidth,
                                        int newHeight)

zoomOut

public void zoomOut(int x,
                    int y)
Zooms out by making the source rectangle (srcRect) larger and centering it on (x,y). If we can't make it larger, then make the window smaller.


unzoom

public void unzoom()

scroll

protected void scroll(int sx,
                      int sy)

setDrawingColor

protected void setDrawingColor(int ox,
                               int oy,
                               boolean setBackground)

mousePressed

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

setupScroll

protected void setupScroll(int ox,
                           int oy)

handlePopupMenu

protected void handlePopupMenu(java.awt.event.MouseEvent e)

mouseExited

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

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

disablePopupMenu

public void disablePopupMenu(boolean status)
Disable/enable popup menu.


setShowAllROIs

public void setShowAllROIs(boolean showAllROIs)

getShowAllROIs

public boolean getShowAllROIs()

setShowCursorStatus

public void setShowCursorStatus(boolean status)
Called by IJ.showStatus() to prevent status bar text from being overwritten until the cursor moves at least 12 pixels.


mouseReleased

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

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

mouseClicked

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

mouseEntered

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