Class StreetsideImageDisplay
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- org.openstreetmap.josm.plugins.streetside.gui.StreetsideImageDisplay
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable
public class StreetsideImageDisplay extends javax.swing.JComponent
This object is a responsible JComponent which lets you zoom and drag. It is included in aStreetsideMainDialogobject.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classStreetsideImageDisplay.ImgDisplayMouseListener-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Collection<ImageDetection>detectionsprivate java.awt.image.BufferedImageimageThe image currently displayedprivate java.awt.RectangleselectedRectWhen a selection is done, the rectangle of the selection (in image coordinates)private static longserialVersionUIDprivate java.awt.RectanglevisibleRectThe rectangle (in image coordinates) of the image that is visible.-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description StreetsideImageDisplay()Main constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.awt.RectanglecalculateDrawImageRectangle(java.awt.Rectangle visibleRect)private static java.awt.RectanglecalculateDrawImageRectangle(java.awt.Rectangle imgRect, java.awt.Rectangle compRect)calculateDrawImageRectangleprivate static voidcheckVisibleRectPos(java.awt.Image image, java.awt.Rectangle visibleRect)private static voidcheckVisibleRectSize(java.awt.Image image, java.awt.Rectangle visibleRect)private java.awt.Pointcomp2imgCoord(java.awt.Rectangle visibleRect, int xComp, int yComp)private static java.awt.PointgetCenterImgCoord(java.awt.Rectangle visibleRect)java.awt.image.BufferedImagegetImage()Returns the picture that is being displayedprivate java.awt.Pointimg2compCoord(java.awt.Rectangle visibleRect, int xImg, int yImg)voidpaintComponent(java.awt.Graphics g)Paints the visible part of the picture.voidsetImage(java.awt.image.BufferedImage image, java.util.Collection<ImageDetection> detections)Sets a new picture to be displayed.voidzoomBestFitOrOne()Zooms to 1:1 and, if it is already in 1:1, to best fit.-
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, 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, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, getAccessibleContext, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
detections
private final java.util.Collection<ImageDetection> detections
-
image
private volatile java.awt.image.BufferedImage image
The image currently displayed
-
visibleRect
private volatile 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)
-
-
Constructor Detail
-
StreetsideImageDisplay
public StreetsideImageDisplay()
Main constructor.
-
-
Method Detail
-
setImage
public void setImage(java.awt.image.BufferedImage image, java.util.Collection<ImageDetection> detections)
Sets a new picture to be displayed.- Parameters:
image- The picture to be displayed.detections- image detections
-
getImage
public java.awt.image.BufferedImage getImage()
Returns the picture that is being displayed- Returns:
- The picture that is being displayed.
-
paintComponent
public void paintComponent(java.awt.Graphics g)
Paints the visible part of the picture.- Overrides:
paintComponentin classjavax.swing.JComponent
-
img2compCoord
private java.awt.Point img2compCoord(java.awt.Rectangle visibleRect, int xImg, int yImg)
-
comp2imgCoord
private java.awt.Point comp2imgCoord(java.awt.Rectangle visibleRect, int xComp, int yComp)
-
getCenterImgCoord
private static java.awt.Point getCenterImgCoord(java.awt.Rectangle visibleRect)
-
calculateDrawImageRectangle
private java.awt.Rectangle calculateDrawImageRectangle(java.awt.Rectangle visibleRect)
-
calculateDrawImageRectangle
private 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()
Zooms to 1:1 and, if it is already in 1:1, to best fit.
-
checkVisibleRectPos
private static void checkVisibleRectPos(java.awt.Image image, java.awt.Rectangle visibleRect)
-
checkVisibleRectSize
private static void checkVisibleRectSize(java.awt.Image image, java.awt.Rectangle visibleRect)
-
-