This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit b1f006e6d165b099967575ce3c246da6612d7f12
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Sun Dec 5 01:05:36 2021 +0100

    Need to discard fully the old data when new data are loaded.
---
 .../src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java   | 4 +++-
 .../java/org/apache/sis/internal/map/coverage/RenderingData.java    | 6 ++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
index f7b07c7..6f5dfa2 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
@@ -809,7 +809,9 @@ public class CoverageCanvas extends MapCanvasAWT {
                     data.coverageLoader = 
MultiResolutionImageLoader.getInstance(resource, data.coverageLoader);
                     coverage = data.ensureCoverageLoaded(objectiveToDisplay, 
objectivePOI);
                 }
-                data.ensureImageLoaded(coverage, sliceExtent);
+                if (data.ensureImageLoaded(coverage, sliceExtent)) {
+                    recoloredImage = null;
+                }
                 /*
                  * Find whether resampling to apply is different than the 
resampling used last time that the image
                  * has been rendered, ignoring translations. Translations do 
not require new resampling operations
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java
 
b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java
index d78d832..42fd292 100644
--- 
a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java
+++ 
b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java
@@ -336,14 +336,15 @@ public class RenderingData implements Cloneable {
      * @param  coverage     the coverage from which to read data, or {@code 
null} if the coverage did not changed.
      * @param  sliceExtent  a subspace of the grid coverage extent where all 
dimensions except two have a size of 1 cell.
      *         May be {@code null} if this grid coverage has only two 
dimensions with a size greater than 1 cell.
+     * @return whether the {@linkpalin #data} changed.
      * @throws FactoryException if the CRS changed but the transform from old 
to new CRS can not be determined.
      * @throws TransformException if an error occurred while transforming 
coordinates from old to new CRS.
      */
-    public final void ensureImageLoaded(GridCoverage coverage, final 
GridExtent sliceExtent)
+    public final boolean ensureImageLoaded(GridCoverage coverage, final 
GridExtent sliceExtent)
             throws FactoryException, TransformException
     {
         if (data != null || coverage == null) {
-            return;
+            return false;
         }
         coverage = coverage.forConvertedValues(true);
         final GridGeometry old = dataGeometry;
@@ -383,6 +384,7 @@ public class RenderingData implements Cloneable {
             cornerToObjective = MathTransforms.concatenate(forward, 
cornerToObjective);
             objectiveToCenter = MathTransforms.concatenate(objectiveToCenter, 
inverse);
         }
+        return true;
     }
 
     /**

Reply via email to