org.openstreetmap.josm.gui.layer.geoimage
Class ImageDisplay

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.openstreetmap.josm.gui.layer.geoimage.ImageDisplay
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class ImageDisplay
extends javax.swing.JComponent

See Also:
Serialized Form

Nested Class Summary
private  class ImageDisplay.ImgDisplayMouseListener
           
private  class ImageDisplay.LoadImageRunnable
          The thread that reads the images.
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private static int DRAG_BUTTON
           
private  boolean errorLoading
          The image currently displayed
private  java.io.File file
          The file that is currently displayed
private  java.awt.Image image
          The image currently displayed
private  java.lang.String osdText
           
private  java.awt.Rectangle selectedRect
          When a selection is done, the rectangle of the selection (in image coordinates)
private  java.awt.MediaTracker tracker
          The tracker to load the images
private  java.awt.Rectangle visibleRect
          The rectangle (in image coordinates) of the image that is visible.
private static int ZOOM_BUTTON
           
 
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
ImageDisplay()
           
 
Method Summary
private  java.awt.Rectangle calculateDrawImageRectangle(java.awt.Rectangle visibleRect)
           
(package private) static java.awt.Rectangle calculateDrawImageRectangle(java.awt.Rectangle imgRect, java.awt.Rectangle compRect)
          calculateDrawImageRectangle
private  void checkVisibleRectPos(java.awt.Image image, java.awt.Rectangle visibleRect)
           
private  void checkVisibleRectSize(java.awt.Image image, java.awt.Rectangle visibleRect)
           
private  java.awt.Point comp2imgCoord(java.awt.Rectangle visibleRect, int xComp, int yComp)
           
private  java.awt.Point getCenterImgCoord(java.awt.Rectangle visibleRect)
           
private  java.awt.Point img2compCoord(java.awt.Rectangle visibleRect, int xImg, int yImg)
           
 void paintComponent(java.awt.Graphics g)
           
 void setImage(java.io.File file, java.lang.Integer orientation)
           
 void setOsdText(java.lang.String text)
           
 void zoomBestFitOrOne()
           
 
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, getBaseline, getBaselineResizeBehavior, 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, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, setEnabled, 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, 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, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

file

private java.io.File file
The file that is currently displayed


image

private java.awt.Image image
The image currently displayed


errorLoading

private boolean errorLoading
The image currently displayed


visibleRect

private java.awt.Rectangle visibleRect
The rectangle (in image coordinates) of the image that is visible. This rectangle is calculated each time the zoom is modified


selectedRect

private java.awt.Rectangle selectedRect
When a selection is done, the rectangle of the selection (in image coordinates)


tracker

private java.awt.MediaTracker tracker
The tracker to load the images


osdText

private java.lang.String osdText

DRAG_BUTTON

private static int DRAG_BUTTON

ZOOM_BUTTON

private static int ZOOM_BUTTON
Constructor Detail

ImageDisplay

public ImageDisplay()
Method Detail

setImage

public void setImage(java.io.File file,
                     java.lang.Integer orientation)

setOsdText

public void setOsdText(java.lang.String text)

paintComponent

public void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

img2compCoord

private final java.awt.Point img2compCoord(java.awt.Rectangle visibleRect,
                                           int xImg,
                                           int yImg)

comp2imgCoord

private final java.awt.Point comp2imgCoord(java.awt.Rectangle visibleRect,
                                           int xComp,
                                           int yComp)

getCenterImgCoord

private final java.awt.Point getCenterImgCoord(java.awt.Rectangle visibleRect)

calculateDrawImageRectangle

private java.awt.Rectangle calculateDrawImageRectangle(java.awt.Rectangle visibleRect)

calculateDrawImageRectangle

static java.awt.Rectangle calculateDrawImageRectangle(java.awt.Rectangle imgRect,
                                                      java.awt.Rectangle compRect)
calculateDrawImageRectangle

Parameters:
imgRect - the part of the image that should be drawn (in image coordinates)
compRect - the part of the component where the image should be drawn (in component coordinates)
Returns:
the part of compRect with the same width/height ratio as the image

zoomBestFitOrOne

public void zoomBestFitOrOne()

checkVisibleRectPos

private final void checkVisibleRectPos(java.awt.Image image,
                                       java.awt.Rectangle visibleRect)

checkVisibleRectSize

private void checkVisibleRectSize(java.awt.Image image,
                                  java.awt.Rectangle visibleRect)


JOSM