Object
Canvas
PlanarCanvas
MapCanvas
MapCanvasAWT
CoverageCanvas
- All Implemented Interfaces:
Localized
A canvas for
RenderedImage
provided by a GridCoverage
or a GridCoverageResource
.
In the latter case where the source of data is specified by resourceProperty
, the grid coverage
instance (given by coverageProperty
) will change automatically according the zoom level.- Since:
- 1.1
- See Also:
-
Property Summary
-
Nested Class Summary
Nested classes/interfaces inherited from class MapCanvasAWT
MapCanvasAWT.Renderer
-
Field Summary
Modifier and TypeFieldDescriptionfinal ObjectProperty
<GridCoverage> The data shown in this canvas.final ObjectProperty
<Interpolation> The interpolation method to use for resampling the image.The source of coverage data shown in this canvas.final ObjectProperty
<GridExtent> A subspace of the grid coverage extent where all dimensions except two have a size of 1 cell.Fields inherited from class MapCanvasAWT
image, imageMargin
Fields inherited from class MapCanvas
fixedPane, floatingPane
Fields inherited from class PlanarCanvas
BIDIMENSIONAL, objectiveToDisplay
Fields inherited from class Canvas
DISPLAY_BOUNDS_PROPERTY, OBJECTIVE_CRS_PROPERTY, OBJECTIVE_TO_DISPLAY_PROPERTY, POINT_OF_INTEREST_PROPERTY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
addPropertyChangeListener
(String propertyName, PropertyChangeListener listener) Registers a listener for the property of the given name.protected void
clear()
Removes the image shown and releases memory.protected MapCanvasAWT.Renderer
Invoked in JavaFX thread for creating a renderer to be executed in a background thread.protected void
Notifies all registered listeners that a property changed its value.protected void
firePropertyChange
(String propertyName, Object oldValue, Object newValue) Notifies all registered listeners that a property of the given name changed its value.final GridCoverage
Returns the source of image for this viewer.final Interpolation
Gets the interpolation method used during resample operations.final GridCoverageResource
Returns the source of coverages for this viewer.final GridExtent
Returns a subspace of the grid coverage extent where all dimensions except two have a size of 1 cell.protected final boolean
hasPropertyChangeListener
(String propertyName) Returnstrue
if the given property has at least one listener.final void
removePropertyChangeListener
(String propertyName, PropertyChangeListener listener) Unregisters a property listener.final void
setCoverage
(GridCoverage coverage) Sets the coverage to show in this viewer.final void
setInterpolation
(Interpolation interpolation) Sets the interpolation method to use during resample operations.final void
setResource
(GridCoverageResource resource) Sets the source of coverages shown in this viewer.final void
setSliceExtent
(GridExtent sliceExtent) Sets a subspace of the grid coverage extent where all dimensions except two have a size of 1 cell.Returns a string representation for debugging purposes.Methods inherited from class MapCanvas
clearError, errorOccurred, errorProperty, getObjectiveBounds, initialize, renderingProperty, requestRepaint, reset, runAfterRendering, setObjectiveBounds, setObjectiveToDisplay, transformDisplayCoordinates, transformObjectiveCoordinates
Methods inherited from class PlanarCanvas
getDisplayBounds
Methods inherited from class Canvas
getDisplayCRS, getGeographicArea, getGridGeometry, getLocale, getObjectiveCRS, getObjectiveToDisplay, getPointOfInterest, getSpatialResolution, setDisplayBounds, setPointOfInterest
-
Field Details
-
resourceProperty
The source of coverage data shown in this canvas. If this property value is non-null, thencoverageProperty
value will change at any time (potentially many times) depending on the zoom level or other user interaction. Conversely if a value is set explicitly oncoverageProperty
, then thisresourceProperty
is cleared.- Since:
- 1.2
- See Also:
-
coverageProperty
The data shown in this canvas. This property value may be set implicitly or explicitly:- If the
resourceProperty
value is non-null, then the value will change automatically at any time (potentially many times) depending on user interaction. - Conversely if an explicit value is set on this property,
then the
resourceProperty
is cleared.
Current implementation is restricted to
GridCoverage
instances, but a future implementation may generalize toorg.opengis.coverage.Coverage
instances.- See Also:
- If the
-
sliceExtentProperty
A subspace of the grid coverage extent where all dimensions except two have a size of 1 cell. May benull
if the grid coverage has only two dimensions with a size greater than 1 cell.- See Also:
-
interpolationProperty
The interpolation method to use for resampling the image.- See Also:
-
-
Constructor Details
-
CoverageCanvas
public CoverageCanvas()Creates a new two-dimensional canvas forRenderedImage
.
-
-
Method Details
-
getResource
Returns the source of coverages for this viewer. This method, like all other methods in this class, shall be invoked from the JavaFX thread.- Returns:
- the source of coverages shown in this viewer, or
null
if none. - Since:
- 1.2
- See Also:
-
setResource
Sets the source of coverages shown in this viewer. This method shall be invoked from JavaFX thread and returns immediately. The new data are loaded in a background thread and thecoverageProperty
value will be updated after an undetermined amount of time.- Parameters:
resource
- the source of data to show in this viewer, ornull
if none.- Since:
- 1.2
- See Also:
-
getCoverage
Returns the source of image for this viewer. This method, like all other methods in this class, shall be invoked from the JavaFX thread. Note that this value may change at any time (depending on user interaction) if theresourceProperty
has a non-null value.- Returns:
- the coverage shown in this explorer, or
null
if none. - See Also:
-
setCoverage
Sets the coverage to show in this viewer. This method shall be invoked from JavaFX thread and returns immediately. The new data are loaded in a background thread and will appear after an undetermined amount of time.Invoking this method sets the
resourceProperty
value tonull
.- Parameters:
coverage
- the data to show in this viewer, ornull
if none.- See Also:
-
getSliceExtent
Returns a subspace of the grid coverage extent where all dimensions except two have a size of 1 cell.- Returns:
- subspace of the grid coverage extent where all dimensions except two have a size of 1 cell.
- See Also:
-
setSliceExtent
Sets a subspace of the grid coverage extent where all dimensions except two have a size of 1 cell. Note that values set on this property may be overwritten at any time by user interactions if thisCoverageCanvas
is associated with aGridSliceSelector
.- Parameters:
sliceExtent
- subspace of the grid coverage extent where all dimensions except two have a size of 1 cell.- See Also:
-
getInterpolation
Gets the interpolation method used during resample operations.- Returns:
- the current interpolation method.
- See Also:
-
setInterpolation
Sets the interpolation method to use during resample operations.- Parameters:
interpolation
- the new interpolation method.- See Also:
-
createRenderer
Invoked in JavaFX thread for creating a renderer to be executed in a background thread. This method prepares the information needed but does not start the rendering itself. The rendering will be done later by a call toMapCanvasAWT.Renderer.paint(Graphics2D)
.- Specified by:
createRenderer
in classMapCanvasAWT
- Returns:
- rendering process to be executed in background thread,
or
null
if there is nothing to paint.
-
clear
protected void clear()Removes the image shown and releases memory.Usage
Overriding methods in subclasses should invokesuper.clear()
. Other methods should generally not invoke this method directly, and use the following code instead:runAfterRendering(this::clear);
- Overrides:
clear
in classMapCanvasAWT
- See Also:
-
toString
Returns a string representation for debugging purposes. The string content may change in any future version.- Overrides:
toString
in classMapCanvas
- Returns:
- debug string (may change in any future version).
-
addPropertyChangeListener
Registers a listener for the property of the given name. The listener will be notified every time that the property of the given name got a new value. If the same listener is registered twice for the same property, then it will be notified twice (this method does not perform duplication checks).- Parameters:
propertyName
- name of the property to listen (should be one of the*_PROPERTY
constants).listener
- property listener to register.
-
removePropertyChangeListener
public final void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) Unregisters a property listener. The givenpropertyName
should be the name used during listener registration. If the specified listener is not registered for the named property, then nothing happen. If the listener has been registered twice, then only one registration is removed (one registration will remain).- Parameters:
propertyName
- name of the listened property.listener
- property listener to unregister.
-
hasPropertyChangeListener
Returnstrue
if the given property has at least one listener.- Parameters:
propertyName
- name of the property to test.- Returns:
true
if the given property has at least one listener.
-
firePropertyChange
Notifies all registered listeners that a property of the given name changed its value. The change event source will bethis
. It is caller responsibility to verify that the old and new values are different (this method does not check for equality).- Parameters:
propertyName
- name of the property that changed its value.oldValue
- the old property value (may benull
).newValue
- the new property value (may benull
).- See Also:
-
firePropertyChange
Notifies all registered listeners that a property changed its value. It is caller responsibility to verify that the event source and property name are valid.- Parameters:
event
- the event to forward. Cannot be null.- See Also:
-