From 72d028e4cb1d0409d3a35345e6ff3cfa73597673 Mon Sep 17 00:00:00 2001
From: Vojtech Moravec <vojtech.moravec.st@vsb.cz>
Date: Mon, 21 Sep 2020 07:54:49 +0200
Subject: [PATCH] Reporting QoL changes.

---
 .../compression/CompressorDecompressorBase.java          | 9 +++++++--
 src/main/java/azgracompress/compression/IListenable.java | 5 +++++
 .../java/azgracompress/compression/ImageCompressor.java  | 2 +-
 .../azgracompress/compression/VQImageCompressor.java     | 5 ++++-
 4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/main/java/azgracompress/compression/CompressorDecompressorBase.java b/src/main/java/azgracompress/compression/CompressorDecompressorBase.java
index a833677..0616503 100644
--- a/src/main/java/azgracompress/compression/CompressorDecompressorBase.java
+++ b/src/main/java/azgracompress/compression/CompressorDecompressorBase.java
@@ -1,10 +1,10 @@
 package azgracompress.compression;
 
+import azgracompress.compression.exception.ImageCompressionException;
 import azgracompress.compression.listeners.IProgressListener;
 import azgracompress.compression.listeners.IStatusListener;
-import azgracompress.io.InputData;
-import azgracompress.compression.exception.ImageCompressionException;
 import azgracompress.huffman.Huffman;
+import azgracompress.io.InputData;
 import azgracompress.io.OutBitStream;
 
 import java.io.DataOutputStream;
@@ -40,6 +40,11 @@ public abstract class CompressorDecompressorBase {
         this.progressListeners.add(listener);
     }
 
+    public void clearAllListeners() {
+        this.statusListeners.clear();
+        this.progressListeners.clear();
+    }
+
     protected void duplicateAllListeners(IListenable other) {
         if (other == this)
             return;
diff --git a/src/main/java/azgracompress/compression/IListenable.java b/src/main/java/azgracompress/compression/IListenable.java
index 5327d25..6a1f066 100644
--- a/src/main/java/azgracompress/compression/IListenable.java
+++ b/src/main/java/azgracompress/compression/IListenable.java
@@ -17,4 +17,9 @@ public interface IListenable {
      * @param listener Progress listener.
      */
     void addProgressListener(IProgressListener listener);
+
+    /**
+     * Remove all active listeners.
+     */
+    void clearAllListeners();
 }
diff --git a/src/main/java/azgracompress/compression/ImageCompressor.java b/src/main/java/azgracompress/compression/ImageCompressor.java
index 8ef03d2..6951e22 100644
--- a/src/main/java/azgracompress/compression/ImageCompressor.java
+++ b/src/main/java/azgracompress/compression/ImageCompressor.java
@@ -5,7 +5,6 @@ import azgracompress.compression.exception.ImageCompressionException;
 import azgracompress.data.Range;
 import azgracompress.fileformat.QCMPFileHeader;
 import azgracompress.io.InputData;
-import org.scijava.util.ArrayUtils;
 
 import java.io.*;
 import java.util.Arrays;
@@ -112,6 +111,7 @@ public class ImageCompressor extends CompressorDecompressorBase {
         if (imageCompressor == null) {
             return false;
         }
+        duplicateAllListeners(imageCompressor);
 
         long[] planeDataSizes = null;
 
diff --git a/src/main/java/azgracompress/compression/VQImageCompressor.java b/src/main/java/azgracompress/compression/VQImageCompressor.java
index bdfeb7d..f690819 100644
--- a/src/main/java/azgracompress/compression/VQImageCompressor.java
+++ b/src/main/java/azgracompress/compression/VQImageCompressor.java
@@ -91,6 +91,7 @@ public class VQImageCompressor extends CompressorDecompressorBase implements IIm
         if (!cacheManager.doesVQCacheExists(options.getInputDataInfo().getCacheFileName(),
                                             getCodebookSize(),
                                             options.getQuantizationVector())) {
+            reportStatusToListeners("Quantization file doesn't exist");
             trainAndSaveCodebook();
         }
 
@@ -183,10 +184,11 @@ public class VQImageCompressor extends CompressorDecompressorBase implements IIm
 
         for (final int planeIndex : planeIndices) {
             stopwatch.restart();
-            reportStatusToListeners(String.format("Loading plane %d.", planeIndex));
+
 
             final int[][] planeVectors = planeLoader.loadVectorsFromPlaneRange(options, Utils.singlePlaneRange(planeIndex));
 
+
             if (!hasGeneralQuantizer) {
                 reportStatusToListeners(String.format("Training vector quantizer from plane %d.", planeIndex));
                 quantizer = trainVectorQuantizerFromPlaneVectors(planeVectors);
@@ -206,6 +208,7 @@ public class VQImageCompressor extends CompressorDecompressorBase implements IIm
 
             stopwatch.stop();
             if (options.isConsoleApplication()) {
+                System.out.println("Is console app, whyy");
                 reportStatusToListeners("Finished compression of plane %d in %s.", planeIndex, stopwatch.getElapsedTimeString());
             } else {
                 reportProgressToListeners(planeIndex, planeIndices.length,
-- 
GitLab