Class GeoImageLayer
- java.lang.Object
-
- org.openstreetmap.josm.gui.layer.AbstractMapViewPaintable
-
- org.openstreetmap.josm.gui.layer.Layer
-
- org.openstreetmap.josm.gui.layer.AbstractModifiableLayer
-
- org.openstreetmap.josm.gui.layer.geoimage.GeoImageLayer
-
- All Implemented Interfaces:
ImageData.ImageDataUpdateListener
,Lockable
,ProjectionChangeListener
,DownloadFromServer
,IGeoImageLayer
,JumpToMarkerActions.JumpToMarkerLayer
,MapViewPaintable
,SaveToFile
,UploadToServer
,NavigatableComponent.ZoomChangeListener
,Destroyable
- Direct Known Subclasses:
WikimediaCommonsLayer
public class GeoImageLayer extends AbstractModifiableLayer implements JumpToMarkerActions.JumpToMarkerLayer, NavigatableComponent.ZoomChangeListener, ImageData.ImageDataUpdateListener, IGeoImageLayer
Layer displaying geotagged pictures.- Since:
- 99
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
GeoImageLayer.ImageMouseListener
-
Nested classes/interfaces inherited from class org.openstreetmap.josm.gui.layer.Layer
Layer.LayerAction, Layer.LayerGpxExportAction, Layer.LayerSaveAction, Layer.LayerSaveAsAction, Layer.MultiLayerAction, Layer.SeparatorLayerAction
-
Nested classes/interfaces inherited from class org.openstreetmap.josm.gui.layer.AbstractMapViewPaintable
AbstractMapViewPaintable.CompatibilityModeLayerPainter
-
Nested classes/interfaces inherited from interface org.openstreetmap.josm.gui.layer.geoimage.IGeoImageLayer
IGeoImageLayer.ImageChangeListener
-
Nested classes/interfaces inherited from interface org.openstreetmap.josm.gui.layer.MapViewPaintable
MapViewPaintable.LayerPainter, MapViewPaintable.MapViewEvent, MapViewPaintable.PaintableInvalidationEvent, MapViewPaintable.PaintableInvalidationListener
-
-
Field Summary
Fields Modifier and Type Field Description private MainLayerManager.ActiveLayerChangeListener
activeLayerChangeListener
private boolean
cycleModeArmed
Image cycle mode flag.private ImageData
data
private CorrelateGpxWithImages
gpxCorrelateAction
(package private) GpxData
gpxData
(package private) GpxData
gpxFauxData
(package private) GpxLayer
gpxFauxLayer
private javax.swing.Icon
icon
private ListenerList<IGeoImageLayer.ImageChangeListener>
imageChangeListeners
private java.awt.Point
lastSelPos
Mouse position where the last image was selected.private MapFrame.MapModeChangeListener
mapModeListener
private static java.util.List<javax.swing.Action>
menuAdditions
private java.awt.event.MouseAdapter
mouseAdapter
private java.awt.event.MouseMotionAdapter
mouseMotionAdapter
private java.awt.image.BufferedImage
offscreenBuffer
private javax.swing.Icon
selectedIcon
private javax.swing.Icon
selectedIconNotImageViewer
private java.awt.Point
startPoint
The mouse pointprivate static java.util.List<MapMode>
supportedMapModes
(package private) boolean
thumbsLoaded
private ThumbsLoader
thumbsloader
private java.util.concurrent.ExecutorService
thumbsLoaderExecutor
private boolean
thumbsLoaderRunning
private boolean
updateOffscreenBuffer
(package private) boolean
useThumbs
-
Fields inherited from class org.openstreetmap.josm.gui.layer.AbstractModifiableLayer
REQUIRES_SAVE_TO_DISK_PROP
-
Fields inherited from class org.openstreetmap.josm.gui.layer.Layer
FILTER_STATE_PROP, NAME_PROP, OPACITY_PROP, propertyChangeSupport, VISIBLE_PROP
-
-
Constructor Summary
Constructors Constructor Description GeoImageLayer(java.util.List<ImageEntry> data, GpxData gpxData, java.lang.String name, boolean useThumbs)
Constructs a newGeoImageLayer
.GeoImageLayer(java.util.List<ImageEntry> data, GpxLayer gpxLayer)
Constructs a newGeoImageLayer
.GeoImageLayer(java.util.List<ImageEntry> data, GpxLayer gpxLayer, boolean useThumbs)
Constructs a newGeoImageLayer
.GeoImageLayer(java.util.List<ImageEntry> data, GpxLayer gpxLayer, java.lang.String name)
Constructs a newGeoImageLayer
.GeoImageLayer(java.util.List<ImageEntry> data, GpxLayer gpxLayer, java.lang.String name, boolean useThumbs)
Constructs a newGeoImageLayer
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addImageChangeListener(IGeoImageLayer.ImageChangeListener listener)
Add a listener for when images change(package private) void
applyTmp()
MapViewPaintable.LayerPainter
attachToMapView(MapViewPaintable.MapViewEvent event)
This method is called whenever this layer is added to a map view.void
clearSelection()
Clear the selection of the layerboolean
containsImage(IImageEntry<?> imageEntry)
Check if the layer contains the specified imagestatic void
create(java.util.Collection<java.io.File> files, GpxLayer gpxLayer)
Create a GeoImageLayer asynchronouslyvoid
destroy()
Called, when the layer is removed from the mapview and is going to be destroyed.(package private) void
discardTmp()
protected static void
drawDirectionArrow(java.awt.Graphics2D g, java.awt.Point p, double dir, java.awt.Dimension imgDim)
private static javax.swing.Icon
generateSelectedIconNotImageViewer(javax.swing.Icon selectedIcon)
java.lang.String
getChangesetSourceTag()
Get the source for the layerData
getData()
Get the data for the modifiable layerGpxData
getFauxGpxData()
Returns a faux GPX data built from the images or the associated GPX layer data.GpxLayer
getFauxGpxLayer()
Returns a faux GPX layer built from the images or the associated GPX layer.CorrelateGpxWithImages
getGpxCorrelateAction()
Returns the gpxCorrelateActionGpxData
getGpxData()
Returns the associated GPX data if any.GpxLayer
getGpxLayer()
Returns the associated GPX layer if any.javax.swing.Icon
getIcon()
Return a representative small image for this layer.ImageData
getImageData()
Returns the image data store being used by this layerprotected java.awt.Dimension
getImageDimension(ImageEntry e)
java.util.List<ImageEntry>
getImages()
Get list of images in layer.java.lang.Object
getInfoComponent()
Gets the layer information to display to the user.java.util.List<IImageEntry<?>>
getInvalidGeoImages()
Get the invalid geo images for this layer (specifically, those that cannot be displayed on the map)javax.swing.Action[]
getMenuEntries()
Returns list of actions.private int
getPhotoIdxUnderMouse(java.awt.event.MouseEvent evt)
Returns index of the image that matches the position of the mouse event.private int
getPhotoIdxUnderMouse(java.awt.event.MouseEvent evt, boolean cycle)
Returns index of the image that matches the position of the mouse event.ImageEntry
getPhotoUnderMouse(java.awt.event.MouseEvent evt)
Returns the image that matches the position of the mouse event.java.util.List<ImageEntry>
getSelection()
Get the current selection(package private) java.util.List<ImageEntry>
getSortedImgList(boolean exif, boolean tagged)
Returns a list of images that fulfill the given criteria.java.lang.String
getToolTipText()
Returns a small tooltip hint about some statistics for this layer.void
hookUpMapView()
Initialization code, that depends on Main.map.mapView.void
imageDataUpdated(ImageData data)
Called when the data changeprivate java.lang.String
infoText()
Prepare the string that is displayed if layer information is requested.boolean
isMergable(Layer other)
Determines if the other layer can be merged into this layer.boolean
isModified()
Determines if data managed by this layer has been modified.private boolean
isPhotoIdxUnderMouse(int idx, java.awt.event.MouseEvent evt)
Check if the position of the mouse event is within the rectangle of the photo icon or thumbnail.private static boolean
isSupportedMapMode(MapMode mapMode)
Determines if the functionality of this layer is available in the specified map mode.boolean
isUseThumbs()
Returns the current thumbnail display status.void
jumpToNextMarker()
Jump (move the viewport) to the next marker.void
jumpToPreviousMarker()
Jump (move the viewport) to the previous marker.void
mergeFrom(Layer from)
Merges the given layer into this layer.void
paint(java.awt.Graphics2D g, MapView mv, Bounds bounds)
Paint the dataset using the engine set.private void
paintImage(ImageEntry e, MapView mv, java.awt.Rectangle clip, java.awt.Graphics2D tempG)
Paint one image.static void
registerMenuAddition(javax.swing.Action addition)
Register actions on the layerstatic void
registerSupportedMapMode(MapMode mapMode)
Registers a map mode for which the functionality of this layer should be available.void
removeImageChangeListener(IGeoImageLayer.ImageChangeListener listener)
Remove a listener for when images changeprivate static java.awt.Dimension
scaledDimension(java.awt.Image thumb)
void
selectedImageChanged(ImageData data)
Called when the selection changevoid
setUseThumbs(boolean useThumbs)
Enables or disables the display of thumbnails.void
showCurrentPhoto()
Show current photo on map and in image viewer.void
startLoadThumbs()
Start to load thumbnails.void
stopLoadThumbs()
Stop to load thumbnails.void
thumbsLoaded()
Called to signal that the loading of thumbnails has finished.void
updateBufferAndRepaint()
Marks the offscreen buffer to be updated.void
visitBoundingBox(BoundingXYVisitor v)
Visits the content bounds of this layer.void
zoomChanged()
Method called when the zoom area has changed.-
Methods inherited from class org.openstreetmap.josm.gui.layer.AbstractModifiableLayer
autosave, createUploadTask, getUploadDialog, isDirty, isDownloadable, isLocked, isUploadable, isUploadDiscouraged, isUploadInProgress, lock, onPostSaveToFile, onPostUploadToServer, requiresSaveToFile, requiresUploadToServer, unlock
-
Methods inherited from class org.openstreetmap.josm.gui.layer.Layer
addPropertyChangeListener, checkSaveConditions, createAndOpenSaveFileChooser, fireFilterStateChanged, fireOpacityChanged, fireVisibleChanged, getAssociatedFile, getColor, getDefaultLayerPosition, getLabel, getName, getOpacity, getViewProjectionBounds, hasColor, isBackgroundLayer, isInfoResizable, isProjectionSupported, isRenamed, isSavable, isVisible, nameSupportedProjections, onPostLoadFromFile, projectionChanged, removePropertyChangeListener, rename, setAssociatedFile, setBackgroundLayer, setColor, setFilterStateChanged, setName, setOpacity, setVisible, toggleVisible, toString
-
Methods inherited from class org.openstreetmap.josm.gui.layer.AbstractMapViewPaintable
addInvalidationListener, createMapViewPainter, invalidate, removeInvalidationListener
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.openstreetmap.josm.gui.layer.SaveToFile
isSavable
-
-
-
-
Field Detail
-
menuAdditions
private static final java.util.List<javax.swing.Action> menuAdditions
-
supportedMapModes
private static volatile java.util.List<MapMode> supportedMapModes
-
imageChangeListeners
private final ListenerList<IGeoImageLayer.ImageChangeListener> imageChangeListeners
-
gpxFauxLayer
GpxLayer gpxFauxLayer
-
gpxFauxData
GpxData gpxFauxData
-
gpxCorrelateAction
private CorrelateGpxWithImages gpxCorrelateAction
-
icon
private final javax.swing.Icon icon
-
selectedIcon
private final javax.swing.Icon selectedIcon
-
selectedIconNotImageViewer
private final javax.swing.Icon selectedIconNotImageViewer
-
useThumbs
boolean useThumbs
-
thumbsLoaderExecutor
private final java.util.concurrent.ExecutorService thumbsLoaderExecutor
-
thumbsloader
private ThumbsLoader thumbsloader
-
thumbsLoaderRunning
private boolean thumbsLoaderRunning
-
thumbsLoaded
volatile boolean thumbsLoaded
-
offscreenBuffer
private java.awt.image.BufferedImage offscreenBuffer
-
updateOffscreenBuffer
private boolean updateOffscreenBuffer
-
mouseAdapter
private java.awt.event.MouseAdapter mouseAdapter
-
mouseMotionAdapter
private java.awt.event.MouseMotionAdapter mouseMotionAdapter
-
mapModeListener
private MapFrame.MapModeChangeListener mapModeListener
-
activeLayerChangeListener
private MainLayerManager.ActiveLayerChangeListener activeLayerChangeListener
-
lastSelPos
private java.awt.Point lastSelPos
Mouse position where the last image was selected.
-
startPoint
private java.awt.Point startPoint
The mouse point
-
cycleModeArmed
private boolean cycleModeArmed
Image cycle mode flag. It is possible that a mouse button release triggers multiple mouseReleased() events. To prevent the cycling in such a case we wait for the next mouse button press event before it is cycled to the next image.
-
-
Constructor Detail
-
GeoImageLayer
public GeoImageLayer(java.util.List<ImageEntry> data, GpxLayer gpxLayer)
Constructs a newGeoImageLayer
.- Parameters:
data
- The list of images to displaygpxLayer
- The associated GPX layer
-
GeoImageLayer
public GeoImageLayer(java.util.List<ImageEntry> data, GpxLayer gpxLayer, java.lang.String name)
Constructs a newGeoImageLayer
.- Parameters:
data
- The list of images to displaygpxLayer
- The associated GPX layername
- Layer name- Since:
- 6392
-
GeoImageLayer
public GeoImageLayer(java.util.List<ImageEntry> data, GpxLayer gpxLayer, boolean useThumbs)
Constructs a newGeoImageLayer
.- Parameters:
data
- The list of images to displaygpxLayer
- The associated GPX layeruseThumbs
- Thumbnail display flag- Since:
- 6392
-
GeoImageLayer
public GeoImageLayer(java.util.List<ImageEntry> data, GpxLayer gpxLayer, java.lang.String name, boolean useThumbs)
Constructs a newGeoImageLayer
.- Parameters:
data
- The list of images to displaygpxLayer
- The associated GPX layername
- Layer nameuseThumbs
- Thumbnail display flag- Since:
- 6392
-
GeoImageLayer
public GeoImageLayer(java.util.List<ImageEntry> data, GpxData gpxData, java.lang.String name, boolean useThumbs)
Constructs a newGeoImageLayer
.- Parameters:
data
- The list of images to displaygpxData
- The associated GPX dataname
- Layer nameuseThumbs
- Thumbnail display flag- Since:
- 18078
-
-
Method Detail
-
generateSelectedIconNotImageViewer
private static javax.swing.Icon generateSelectedIconNotImageViewer(javax.swing.Icon selectedIcon)
-
create
public static void create(java.util.Collection<java.io.File> files, GpxLayer gpxLayer)
Create a GeoImageLayer asynchronously- Parameters:
files
- the list of image files to displaygpxLayer
- the gpx layer
-
clearSelection
public void clearSelection()
Description copied from interface:IGeoImageLayer
Clear the selection of the layer- Specified by:
clearSelection
in interfaceIGeoImageLayer
-
containsImage
public boolean containsImage(IImageEntry<?> imageEntry)
Description copied from interface:IGeoImageLayer
Check if the layer contains the specified image- Specified by:
containsImage
in interfaceIGeoImageLayer
- Parameters:
imageEntry
- The entry to look for- Returns:
true
if this layer contains the image
-
getIcon
public javax.swing.Icon getIcon()
Description copied from class:Layer
Return a representative small image for this layer. The image must not be larger than 64 pixel in any dimension.
-
getSelection
public java.util.List<ImageEntry> getSelection()
Description copied from interface:IGeoImageLayer
Get the current selection- Specified by:
getSelection
in interfaceIGeoImageLayer
- Returns:
- The currently selected images
-
getInvalidGeoImages
public java.util.List<IImageEntry<?>> getInvalidGeoImages()
Description copied from interface:IGeoImageLayer
Get the invalid geo images for this layer (specifically, those that cannot be displayed on the map)- Specified by:
getInvalidGeoImages
in interfaceIGeoImageLayer
- Returns:
- The list of invalid geo images
-
addImageChangeListener
public void addImageChangeListener(IGeoImageLayer.ImageChangeListener listener)
Description copied from interface:IGeoImageLayer
Add a listener for when images change- Specified by:
addImageChangeListener
in interfaceIGeoImageLayer
- Parameters:
listener
- The listener to call
-
removeImageChangeListener
public void removeImageChangeListener(IGeoImageLayer.ImageChangeListener listener)
Description copied from interface:IGeoImageLayer
Remove a listener for when images change- Specified by:
removeImageChangeListener
in interfaceIGeoImageLayer
- Parameters:
listener
- The listener to remove
-
registerMenuAddition
public static void registerMenuAddition(javax.swing.Action addition)
Register actions on the layer- Parameters:
addition
- the action to be added
-
getMenuEntries
public javax.swing.Action[] getMenuEntries()
Description copied from class:Layer
Returns list of actions. Action can implement LayerAction interface when it needs to be represented by other menu component than JMenuItem or when it supports multiple layers. Actions that support multiple layers should also have correct equals implementation.Use
Layer.SeparatorLayerAction.INSTANCE
instead of new JSeparator- Specified by:
getMenuEntries
in classLayer
- Returns:
- menu actions for this layer
-
infoText
private java.lang.String infoText()
Prepare the string that is displayed if layer information is requested.- Returns:
- String with layer information
-
getInfoComponent
public java.lang.Object getInfoComponent()
Description copied from class:Layer
Gets the layer information to display to the user. This is used if the user requests information about this layer. It should display a description of the layer content.- Specified by:
getInfoComponent
in classLayer
- Returns:
- Either a String or a
Component
describing the layer.
-
getToolTipText
public java.lang.String getToolTipText()
Description copied from class:Layer
Returns a small tooltip hint about some statistics for this layer.- Specified by:
getToolTipText
in classLayer
- Returns:
- A small tooltip hint about some statistics for this layer.
-
isModified
public boolean isModified()
Determines if data managed by this layer has been modified. That is the case if one image has modified GPS data.- Specified by:
isModified
in classAbstractModifiableLayer
- Returns:
true
if data has been modified;false
, otherwise
-
isMergable
public boolean isMergable(Layer other)
Description copied from class:Layer
Determines if the other layer can be merged into this layer.- Specified by:
isMergable
in classLayer
- Parameters:
other
- The other layer that is tested to be mergable with this.- Returns:
- Whether the other layer can be merged into this layer.
-
mergeFrom
public void mergeFrom(Layer from)
Description copied from class:Layer
Merges the given layer into this layer. Throws if the layer types are incompatible.
-
scaledDimension
private static java.awt.Dimension scaledDimension(java.awt.Image thumb)
-
paintImage
private void paintImage(ImageEntry e, MapView mv, java.awt.Rectangle clip, java.awt.Graphics2D tempG)
Paint one image.- Parameters:
e
- Image to be paintedmv
- Map viewclip
- Bounding rectangle of the current clipping areatempG
- Temporary offscreen buffer
-
paint
public void paint(java.awt.Graphics2D g, MapView mv, Bounds bounds)
Description copied from interface:MapViewPaintable
Paint the dataset using the engine set.- Specified by:
paint
in interfaceMapViewPaintable
- Parameters:
g
- Graphicsmv
- The object that can translate GeoPoints to screen coordinates.bounds
- Bounding box
-
getImageDimension
protected java.awt.Dimension getImageDimension(ImageEntry e)
-
drawDirectionArrow
protected static void drawDirectionArrow(java.awt.Graphics2D g, java.awt.Point p, double dir, java.awt.Dimension imgDim)
-
visitBoundingBox
public void visitBoundingBox(BoundingXYVisitor v)
Description copied from class:Layer
Visits the content bounds of this layer. The behavior of this method depends on the layer, but each implementation should attempt to cover the relevant content of the layer in this method.- Specified by:
visitBoundingBox
in classLayer
- Parameters:
v
- The visitor that gets notified about the contents of this layer.
-
showCurrentPhoto
public void showCurrentPhoto()
Show current photo on map and in image viewer.
-
isPhotoIdxUnderMouse
private boolean isPhotoIdxUnderMouse(int idx, java.awt.event.MouseEvent evt)
Check if the position of the mouse event is within the rectangle of the photo icon or thumbnail.- Parameters:
idx
- the image indexevt
- Mouse event- Returns:
true
if the photo matches the mouse position,false
otherwise
-
getPhotoIdxUnderMouse
private int getPhotoIdxUnderMouse(java.awt.event.MouseEvent evt, boolean cycle)
Returns index of the image that matches the position of the mouse event.- Parameters:
evt
- Mouse eventcycle
- Set totrue
to cycle through the photos at the current mouse position if multiple icons or thumbnails overlap. If set tofalse
the topmost photo will be used.- Returns:
- Image index at mouse position, range 0 .. size-1,
or
-1
if there is no image at the mouse position
-
getPhotoIdxUnderMouse
private int getPhotoIdxUnderMouse(java.awt.event.MouseEvent evt)
Returns index of the image that matches the position of the mouse event. The topmost photo is picked if multiple icons or thumbnails overlap.- Parameters:
evt
- Mouse event- Returns:
- Image index at mouse position, range 0 .. size-1,
or
-1
if there is no image at the mouse position
-
getPhotoUnderMouse
public ImageEntry getPhotoUnderMouse(java.awt.event.MouseEvent evt)
Returns the image that matches the position of the mouse event. The topmost photo is picked of multiple icons or thumbnails overlap.- Parameters:
evt
- Mouse event- Returns:
- Image at mouse position, or
null
if there is no image at the mouse position - Since:
- 6392
-
registerSupportedMapMode
public static void registerSupportedMapMode(MapMode mapMode)
Registers a map mode for which the functionality of this layer should be available.- Parameters:
mapMode
- Map mode to be registered- Since:
- 6392
-
isSupportedMapMode
private static boolean isSupportedMapMode(MapMode mapMode)
Determines if the functionality of this layer is available in the specified map mode.SelectAction
andSelectLassoAction
are supported by default, other map modes can be registered.- Parameters:
mapMode
- Map mode to be checked- Returns:
true
if the map mode is supported,false
otherwise
-
hookUpMapView
public void hookUpMapView()
Description copied from class:Layer
Initialization code, that depends on Main.map.mapView.It is always called in the event dispatching thread. Note that Main.map is null as long as no layer has been added, so do not execute code in the constructor, that assumes Main.map.mapView is not null.
If you need to execute code when this layer is added to the map view, use
AbstractMapViewPaintable.attachToMapView(org.openstreetmap.josm.gui.layer.MapViewPaintable.MapViewEvent)
- Overrides:
hookUpMapView
in classLayer
-
destroy
public void destroy()
Description copied from class:Layer
Called, when the layer is removed from the mapview and is going to be destroyed.This is because the Layer constructor cannot add itself safely as a listener to the layerlist dialog, because there may be no such dialog yet (loaded via command line parameter).
- Specified by:
destroy
in interfaceDestroyable
- Overrides:
destroy
in classLayer
-
attachToMapView
public MapViewPaintable.LayerPainter attachToMapView(MapViewPaintable.MapViewEvent event)
Description copied from class:AbstractMapViewPaintable
This method is called whenever this layer is added to a map view.You need to return a painter here. The
MapViewPaintable.LayerPainter.detachFromMapView(org.openstreetmap.josm.gui.layer.MapViewPaintable.MapViewEvent)
method is called when the layer is removed from that map view. You are free to reuse painters.You should always call the super method. See
AbstractMapViewPaintable.createMapViewPainter(org.openstreetmap.josm.gui.layer.MapViewPaintable.MapViewEvent)
if you want to influence painter creation.This replaces
Layer.hookUpMapView()
in the long run.- Overrides:
attachToMapView
in classAbstractMapViewPaintable
- Parameters:
event
- the event.- Returns:
- A layer painter.
-
zoomChanged
public void zoomChanged()
Description copied from interface:NavigatableComponent.ZoomChangeListener
Method called when the zoom area has changed.- Specified by:
zoomChanged
in interfaceNavigatableComponent.ZoomChangeListener
-
startLoadThumbs
public void startLoadThumbs()
Start to load thumbnails.
-
stopLoadThumbs
public void stopLoadThumbs()
Stop to load thumbnails.Can be called at any time to make sure that the thumbnail loader is stopped.
-
thumbsLoaded
public void thumbsLoaded()
Called to signal that the loading of thumbnails has finished.Usually called from
ThumbsLoader
in another thread.
-
updateBufferAndRepaint
public void updateBufferAndRepaint()
Marks the offscreen buffer to be updated.
-
getImages
public java.util.List<ImageEntry> getImages()
Get list of images in layer.- Returns:
- List of images in layer
-
getImageData
public ImageData getImageData()
Returns the image data store being used by this layer- Returns:
- imageData
- Since:
- 14590
-
getGpxData
public GpxData getGpxData()
Returns the associated GPX data if any.- Returns:
- The associated GPX data or
null
- Since:
- 18078
-
getGpxLayer
public GpxLayer getGpxLayer()
Returns the associated GPX layer if any.- Returns:
- The associated GPX layer or
null
-
getGpxCorrelateAction
public CorrelateGpxWithImages getGpxCorrelateAction()
Returns the gpxCorrelateAction- Returns:
- the gpxCorrelateAction
-
getFauxGpxLayer
public GpxLayer getFauxGpxLayer()
Returns a faux GPX layer built from the images or the associated GPX layer.- Returns:
- A faux GPX layer or the associated GPX layer
- Since:
- 14802
-
getFauxGpxData
public GpxData getFauxGpxData()
Returns a faux GPX data built from the images or the associated GPX layer data.- Returns:
- A faux GPX data or the associated GPX layer data
- Since:
- 18065
-
jumpToNextMarker
public void jumpToNextMarker()
Description copied from interface:JumpToMarkerActions.JumpToMarkerLayer
Jump (move the viewport) to the next marker.- Specified by:
jumpToNextMarker
in interfaceJumpToMarkerActions.JumpToMarkerLayer
-
jumpToPreviousMarker
public void jumpToPreviousMarker()
Description copied from interface:JumpToMarkerActions.JumpToMarkerLayer
Jump (move the viewport) to the previous marker.- Specified by:
jumpToPreviousMarker
in interfaceJumpToMarkerActions.JumpToMarkerLayer
-
isUseThumbs
public boolean isUseThumbs()
Returns the current thumbnail display status.true
: thumbnails are displayed,false
: an icon is displayed instead of thumbnails.- Returns:
- Current thumbnail display status
- Since:
- 6392
-
setUseThumbs
public void setUseThumbs(boolean useThumbs)
Enables or disables the display of thumbnails. Does not update the display.- Parameters:
useThumbs
- New thumbnail display status- Since:
- 6392
-
selectedImageChanged
public void selectedImageChanged(ImageData data)
Description copied from interface:ImageData.ImageDataUpdateListener
Called when the selection change- Specified by:
selectedImageChanged
in interfaceImageData.ImageDataUpdateListener
- Parameters:
data
- the image data
-
imageDataUpdated
public void imageDataUpdated(ImageData data)
Description copied from interface:ImageData.ImageDataUpdateListener
Called when the data change- Specified by:
imageDataUpdated
in interfaceImageData.ImageDataUpdateListener
- Parameters:
data
- the image data
-
getChangesetSourceTag
public java.lang.String getChangesetSourceTag()
Description copied from class:Layer
Get the source for the layer- Overrides:
getChangesetSourceTag
in classLayer
- Returns:
- The string for the changeset source tag or
null
-
getData
public Data getData()
Description copied from class:AbstractModifiableLayer
Get the data for the modifiable layer- Overrides:
getData
in classAbstractModifiableLayer
- Returns:
- The data object
-
applyTmp
void applyTmp()
-
discardTmp
void discardTmp()
-
getSortedImgList
java.util.List<ImageEntry> getSortedImgList(boolean exif, boolean tagged)
Returns a list of images that fulfill the given criteria. Default setting is to return untagged images, but may be overwritten.- Parameters:
exif
- also returns images with exif-gps infotagged
- also returns tagged images- Returns:
- matching images
-
-