public interface Overlay
To implement a new overlay, you should extend AbstractOverlay
rather
than directly implementing this interface.
Overlays are not thread safe. In a GUI, all methods must be called on the Swing/AWT event dispatch thread. (This means that Overlay implementations do not need to worry about threading.)
OverlayPlugin
Modifier and Type | Method and Description |
---|---|
void |
addOverlayListener(OverlayListener listener)
Add a listener.
|
PropertyMap |
getConfiguration()
Return the user-customizable settings for this overlay.
|
javax.swing.JComponent |
getConfigurationComponent()
Return the configuration UI component for this overlay.
|
java.lang.String |
getTitle()
Return a human-readable name for this overlay.
|
boolean |
isVisible()
Return whether this overlay is shown.
|
void |
paintOverlay(java.awt.Graphics2D graphicsContext,
java.awt.Rectangle screenRect,
DisplaySettings displaySettings,
java.util.List<Image> images,
Image primaryImage,
java.awt.geom.Rectangle2D.Float imageViewPort)
Paint the overlay to the given graphics context.
|
void |
removeOverlayListener(OverlayListener listener)
Remove a listener.
|
void |
setConfiguration(PropertyMap config)
Configure the overlay with the given parameters.
|
void |
setVisible(boolean visible)
Show or hide this overlay.
|
java.lang.String getTitle()
void paintOverlay(java.awt.Graphics2D graphicsContext, java.awt.Rectangle screenRect, DisplaySettings displaySettings, java.util.List<Image> images, Image primaryImage, java.awt.geom.Rectangle2D.Float imageViewPort)
graphicsContext
- the graphics context to paint withscreenRect
- the screen region displaying part or all of the image,
in the graphics context's coordinatesdisplaySettings
- the current display settings of the display windowimages
- the images on which the overlay is to be drawn (multiple
images if in composite color mode)primaryImage
- the currently selected image (if in composite color
mode) or the single displayed image (otherwise)imageViewPort
- the visible region of the image, in image coordinatesjavax.swing.JComponent getConfigurationComponent()
The component should work well when laid out with a fixed width and height, determined based on its minimum and maximum sizes. The width of the component may be changed in response to layout changes, but the component must not actively resize itself. It is recommended that the preferred width be no more than 480 pixels.
This method should return the same object every time it is called,
throughout the lifetime of this Overlay instance. If the overlay does not
require any user configuration, null
may be returned.
Important: The Overlay must not create any UI objects unless this method is called, and still support all other methods. This is to support headless use of overlays.
PropertyMap getConfiguration()
The configuration should contain all parameters needed to reproduce the same overlay on another display window.
void setConfiguration(PropertyMap config)
config
- a property map previously returned by
getConfiguration
of an overlay of the same class.boolean isVisible()
Note: AbstractOverlay
implements this method.
void setVisible(boolean visible)
Note: AbstractOverlay
implements this method.
visible
- whether to show the overlayvoid addOverlayListener(OverlayListener listener)
Note: AbstractOverlay
implements this method.
listener
- the listener to addvoid removeOverlayListener(OverlayListener listener)
Note: AbstractOverlay
implements this method.
listener
- the listener to remove