jsky.image.gui
Class ImageZoom

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by jsky.image.gui.ImageZoom
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.swing.event.ChangeListener, ImageGraphicsHandler

public class ImageZoom
extends javax.swing.JComponent
implements javax.swing.event.ChangeListener, ImageGraphicsHandler

This widget is for displaying a magnified section of the image at the mouse pointer.

Version:
$Revision: 1.1 $
Author:
Allan Brighton
See Also:
Serialized Form

Nested Class Summary
 
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
static int DEFAULT_SIZE
          The default size for the zoom window
 
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
ImageZoom()
          Default Constructor (must call setMainImageDisplay() later).
ImageZoom(MainImageDisplay mainImageDisplay)
          Constructor
ImageZoom(MainImageDisplay mainImageDisplay, int width, int height, float factor)
          Constructor
 
Method Summary
 void drawImageGraphics(BasicImageDisplay imageDisplay, java.awt.Graphics2D g)
          Called each time the image is repainted to draw a rectangle on the image marking the position of the mouse pointer in the target image.
 BasicImageDisplay getImageDisplay()
          Return the zoom image display.
 MainImageDisplay getMainImageDisplay()
          Return the target ImageDisplay that we are monitoring.
 float getZoomFactor()
          Return the zoom factor
 boolean isActive()
          Return the active state of the zoom window
 boolean isEnabled()
          Return the enabled state of the zoom window
 boolean isPropagateScale()
          Return true if changes in the main image scale are propagated to the zoom window.
 void setActive(boolean b)
          Set the active state to false to stop the zoom window from updating when the mouse is moved over the main image.
 void setEnabled(boolean b)
          Enable or disable the zoom window
 void setMainImageDisplay(MainImageDisplay mainImageDisplay)
          Set the target image display that we are monitoring.
 void setPropagateScale(boolean b)
          If true (default), changes in the main image scale are propagated to the zoom window.
 void setZoomFactor(float factor)
          Set the zoom factor
 void stateChanged(javax.swing.event.ChangeEvent ce)
          Called when the main image changes in some way.
 void updateRect()
          Update the rect object with the coordinates of the mouse pointer in the target image.
 void zoom(int x, int y, boolean force)
          This method is called when the mouse is moved over the target image.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
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, 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

DEFAULT_SIZE

public static final int DEFAULT_SIZE
The default size for the zoom window

See Also:
Constant Field Values
Constructor Detail

ImageZoom

public ImageZoom(MainImageDisplay mainImageDisplay,
                 int width,
                 int height,
                 float factor)
Constructor

Parameters:
mainImageDisplay - The target image display being controlled.
width - The desired width of the zoom window
height - The desired height of the zoom window
factor - The zoom (magnification) factor

ImageZoom

public ImageZoom(MainImageDisplay mainImageDisplay)
Constructor

Parameters:
mainImageDisplay - The target image display being controlled.

ImageZoom

public ImageZoom()
Default Constructor (must call setMainImageDisplay() later).

Method Detail

setZoomFactor

public void setZoomFactor(float factor)
Set the zoom factor


getZoomFactor

public float getZoomFactor()
Return the zoom factor


setMainImageDisplay

public void setMainImageDisplay(MainImageDisplay mainImageDisplay)
Set the target image display that we are monitoring.


getImageDisplay

public BasicImageDisplay getImageDisplay()
Return the zoom image display.


getMainImageDisplay

public MainImageDisplay getMainImageDisplay()
Return the target ImageDisplay that we are monitoring.


setEnabled

public void setEnabled(boolean b)
Enable or disable the zoom window

Overrides:
setEnabled in class javax.swing.JComponent

isEnabled

public boolean isEnabled()
Return the enabled state of the zoom window

Overrides:
isEnabled in class java.awt.Component

setActive

public void setActive(boolean b)
Set the active state to false to stop the zoom window from updating when the mouse is moved over the main image.


isActive

public boolean isActive()
Return the active state of the zoom window


setPropagateScale

public void setPropagateScale(boolean b)
If true (default), changes in the main image scale are propagated to the zoom window.


isPropagateScale

public boolean isPropagateScale()
Return true if changes in the main image scale are propagated to the zoom window.


zoom

public void zoom(int x,
                 int y,
                 boolean force)
This method is called when the mouse is moved over the target image.

Parameters:
x - the X screen coordinate in the main image
y - the Y screen coordinate in the main image
force - if true, do the update even if the "active" flag is set to false

stateChanged

public void stateChanged(javax.swing.event.ChangeEvent ce)
Called when the main image changes in some way. The change event (ImageChangeEvent) describes what changed.

Specified by:
stateChanged in interface javax.swing.event.ChangeListener

updateRect

public void updateRect()
Update the rect object with the coordinates of the mouse pointer in the target image.


drawImageGraphics

public void drawImageGraphics(BasicImageDisplay imageDisplay,
                              java.awt.Graphics2D g)
Called each time the image is repainted to draw a rectangle on the image marking the position of the mouse pointer in the target image.

Specified by:
drawImageGraphics in interface ImageGraphicsHandler