From a4a7954218e0af7b1a62b27eceaf3291d938ea75 Mon Sep 17 00:00:00 2001
From: Stephane Dallongeville <stephane.dallongeville@pasteur.fr>
Date: Fri, 25 Nov 2022 10:52:43 +0100
Subject: [PATCH] Updated to last kernel

---
 pom.xml                                       |  2 +-
 .../sequenceblocks/convert/ConvertColor.java  | 11 +++++--
 .../sequenceblocks/convert/ConvertStack.java  | 22 ++++++++-----
 .../sequenceblocks/convert/ConvertType.java   |  9 +++++-
 .../creation/DuplicateSequence.java           | 10 +++++-
 .../sequenceblocks/extract/CropSequence.java  | 11 +++++--
 .../extract/ExtractChannel.java               | 13 ++++++--
 .../extract/ExtractMultiChannels.java         | 14 +++++++--
 .../PositionedSequenceFileImporter.java       |  2 +-
 .../loop/SequenceChannelBatch.java            | 12 +++++--
 .../loop/SequenceRegionBatch.java             | 15 ++++++---
 .../op/AdditiveFillSequence.java              | 19 ++++++++----
 .../sequenceblocks/op/FillInnerSequence.java  | 17 +++++++---
 .../sequenceblocks/op/FillOuterSequence.java  | 31 ++++++++++++-------
 .../sequenceblocks/remove/RemoveChannel.java  |  9 +++++-
 15 files changed, 145 insertions(+), 52 deletions(-)

diff --git a/pom.xml b/pom.xml
index d077427..d1ad26a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
     </parent>
 
     <artifactId>sequence-blocks</artifactId>
-    <version>2.1.0</version>
+    <version>2.1.1</version>
 
     <name>SequenceBlocks</name>
 
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertColor.java b/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertColor.java
index 3347c03..1e4cf5b 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertColor.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertColor.java
@@ -44,7 +44,14 @@ public class ConvertColor extends Plugin implements SequenceBlock, PluginBundled
         if (s == null)
             throw new VarException(EZseq, "Input sequence is null.");
 
-        varOut.setValue(convertColor(s, getImageType(EZtype.getValue()), EZlut.getValue()));
+        try
+        {
+            varOut.setValue(convertColor(s, getImageType(EZtype.getValue()), EZlut.getValue()));
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
@@ -83,7 +90,7 @@ public class ConvertColor extends Plugin implements SequenceBlock, PluginBundled
         }
     }
 
-    public static Sequence convertColor(Sequence source, int imageType, LUT lut)
+    public static Sequence convertColor(Sequence source, int imageType, LUT lut) throws IllegalArgumentException, InterruptedException
     {
         final Sequence result = new Sequence(OMEUtil.createOMEXMLMetadata(source.getOMEXMLMetadata()));
         // image receiver
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertStack.java b/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertStack.java
index e7dbfdc..7eae544 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertStack.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertStack.java
@@ -5,6 +5,7 @@ import icy.plugin.interface_.PluginBundled;
 import icy.sequence.Sequence;
 import icy.sequence.SequenceUtil;
 import plugins.adufour.blocks.tools.sequence.SequenceBlock;
+import plugins.adufour.blocks.util.BlocksException;
 import plugins.adufour.blocks.util.VarList;
 import plugins.adufour.vars.lang.VarEnum;
 import plugins.adufour.vars.lang.VarSequence;
@@ -32,13 +33,20 @@ public class ConvertStack extends Plugin implements SequenceBlock, PluginBundled
         if (in == null)
             throw new VarException(inputSequence, "Input sequence is null.");
 
-        // create a copy as we don't want to modify input
-        Sequence out = SequenceUtil.getCopy(in);
-        if (type.getValue() == TypeConversion.TIME)
-            SequenceUtil.convertToTime(out);
-        else
-            SequenceUtil.convertToStack(out);
-        outputSequence.setValue(out);
+        try
+        {
+            // create a copy as we don't want to modify input
+            Sequence out = SequenceUtil.getCopy(in);
+            if (type.getValue() == TypeConversion.TIME)
+                SequenceUtil.convertToTime(out);
+            else
+                SequenceUtil.convertToStack(out);
+            outputSequence.setValue(out);
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertType.java b/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertType.java
index 0ec910c..48a11a4 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertType.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/convert/ConvertType.java
@@ -31,7 +31,14 @@ public class ConvertType extends Plugin implements SequenceBlock, PluginLibrary,
         if (s == null)
             throw new VarException(inputSequence, "Input sequence is null.");
 
-        outputSequence.setValue(SequenceUtil.convertToType(s, type.getValue(), rescale.getValue().booleanValue()));
+        try
+        {
+            outputSequence.setValue(SequenceUtil.convertToType(s, type.getValue(), rescale.getValue().booleanValue()));
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/creation/DuplicateSequence.java b/src/main/java/plugins/tprovoost/sequenceblocks/creation/DuplicateSequence.java
index 3379d9d..dec05da 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/creation/DuplicateSequence.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/creation/DuplicateSequence.java
@@ -25,7 +25,15 @@ public class DuplicateSequence extends Plugin implements SequenceBlock, PluginLi
         Sequence s = in.getValue();
         if (s == null)
             throw new VarException(in, "Input Sequence is null.");
-        out.setValue(SequenceUtil.getCopy(s));
+
+        try
+        {
+            out.setValue(SequenceUtil.getCopy(s));
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/extract/CropSequence.java b/src/main/java/plugins/tprovoost/sequenceblocks/extract/CropSequence.java
index 8379e58..334444f 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/extract/CropSequence.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/extract/CropSequence.java
@@ -58,9 +58,16 @@ public class CropSequence extends Plugin implements SequenceBlock, PluginLibrary
         else
             rois = CollectionUtil.asList((ROI[]) obj);
 
-        final ROI roi = ROIUtil.merge(rois, BooleanOperator.OR);
+        try
+        {
+            final ROI roi = ROIUtil.merge(rois, BooleanOperator.OR);
 
-        outputSequence.setValue(SequenceUtil.getSubSequence(s, roi));
+            outputSequence.setValue(SequenceUtil.getSubSequence(s, roi));
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/extract/ExtractChannel.java b/src/main/java/plugins/tprovoost/sequenceblocks/extract/ExtractChannel.java
index 4ed5c38..e977e82 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/extract/ExtractChannel.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/extract/ExtractChannel.java
@@ -32,10 +32,17 @@ public class ExtractChannel extends Plugin implements SequenceBlock, PluginLibra
         if (channel < 0 || channel >= s.getSizeC())
             throw new VarException(channelIdx, "Channel index must be between 0 and " + (s.getSizeC() - 1));
 
-        final Sequence res = SequenceUtil.extractChannel(s, channelIdx.getValue().intValue());
-        res.setName(s.getName() + " - channel: " + channelIdx.getValue());
+        try
+        {
+            final Sequence res = SequenceUtil.extractChannel(s, channelIdx.getValue().intValue());
+            res.setName(s.getName() + " - channel: " + channelIdx.getValue());
 
-        outputSequence.setValue(res);
+            outputSequence.setValue(res);
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/extract/ExtractMultiChannels.java b/src/main/java/plugins/tprovoost/sequenceblocks/extract/ExtractMultiChannels.java
index 56f892e..79d6aca 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/extract/ExtractMultiChannels.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/extract/ExtractMultiChannels.java
@@ -27,9 +27,17 @@ public class ExtractMultiChannels extends Plugin implements SequenceBlock, Plugi
         Sequence s = inputSequence.getValue();
         if (s == null)
             throw new VarException(inputSequence, "Input sequence is null.");
-        Sequence res = SequenceUtil.extractChannels(s, channelIdx.getValue());
-        res.setName(s.getName() + " - channel: " + channelIdx.getValue());
-        outputSequence.setValue(res);
+
+        try
+        {
+            Sequence res = SequenceUtil.extractChannels(s, channelIdx.getValue());
+            res.setName(s.getName() + " - channel: " + channelIdx.getValue());
+            outputSequence.setValue(res);
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/importer/PositionedSequenceFileImporter.java b/src/main/java/plugins/tprovoost/sequenceblocks/importer/PositionedSequenceFileImporter.java
index 75a25a7..946af74 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/importer/PositionedSequenceFileImporter.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/importer/PositionedSequenceFileImporter.java
@@ -52,7 +52,7 @@ public class PositionedSequenceFileImporter
                 positionedImporter.z, positionedImporter.c, positionedImporter.xyRegion);
     }
 
-    public OMEXMLMetadata getMetadata() throws UnsupportedFormatException, IOException
+    public OMEXMLMetadata getMetadata() throws UnsupportedFormatException, IOException, InterruptedException
     {
         // not yet defined --> take it from importer if possible
         if ((metadata == null) && (importer.getOpened() != null))
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/loop/SequenceChannelBatch.java b/src/main/java/plugins/tprovoost/sequenceblocks/loop/SequenceChannelBatch.java
index 763ccaa..ed0dbe8 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/loop/SequenceChannelBatch.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/loop/SequenceChannelBatch.java
@@ -53,9 +53,15 @@ public class SequenceChannelBatch extends Batch implements SequenceBlock, Plugin
     @Override
     public void beforeIteration()
     {
-        // set result in element
-        element.setValue(
-                SequenceUtil.extractChannel(inputSequence.getValue(), getIterationCounter().getValue().intValue()));
+        try
+        {
+            // set result in element
+            element.setValue(SequenceUtil.extractChannel(inputSequence.getValue(), getIterationCounter().getValue().intValue()));
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/loop/SequenceRegionBatch.java b/src/main/java/plugins/tprovoost/sequenceblocks/loop/SequenceRegionBatch.java
index 8da2ca7..99fc20a 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/loop/SequenceRegionBatch.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/loop/SequenceRegionBatch.java
@@ -23,7 +23,7 @@ import plugins.tprovoost.sequenceblocks.SequenceBlocks;
  */
 public class SequenceRegionBatch extends Batch implements SequenceBlock, PluginLibrary, PluginBundled
 {
- // important to not initialize here (even with null) and create them in getBatchSource() and getBatchElement()
+    // important to not initialize here (even with null) and create them in getBatchSource() and getBatchElement()
     protected VarSequence inputSequence;
     protected VarSequence element;
     protected VarROIArray rois;
@@ -91,9 +91,16 @@ public class SequenceRegionBatch extends Batch implements SequenceBlock, PluginL
     {
         // set result in element
         final ROI roi = rois.getValue()[getIterationCounter().getValue().intValue()];
-        
-        element.setValue(SequenceUtil.getSubSequence(inputSequence.getValue(), roi));
-        currentRoi.setValue(new ROI[] {roi});
+
+        try
+        {
+            element.setValue(SequenceUtil.getSubSequence(inputSequence.getValue(), roi));
+            currentRoi.setValue(new ROI[] {roi});
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/op/AdditiveFillSequence.java b/src/main/java/plugins/tprovoost/sequenceblocks/op/AdditiveFillSequence.java
index ec957c7..2ed300e 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/op/AdditiveFillSequence.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/op/AdditiveFillSequence.java
@@ -36,21 +36,28 @@ public class AdditiveFillSequence extends Plugin implements SequenceBlock, Plugi
         if (sequence == null)
             throw new VarException(inputSequence, "Input sequence is null.");
 
-        if (rois.getValue() != null)
+        try
         {
-            for (ROI roi : rois.getValue())
-                doAdditiveFill(sequence, roi, 1d);
+            if (rois.getValue() != null)
+            {
+                for (ROI roi : rois.getValue())
+                    doAdditiveFill(sequence, roi, 1d);
 
-            sequence.dataChanged();
+                sequence.dataChanged();
+            }
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
         }
     }
 
-    public static void doAdditiveFill(Sequence sequence, ROI roi, double value)
+    public static void doAdditiveFill(Sequence sequence, ROI roi, double value) throws InterruptedException
     {
         doAdditiveFill(new SequenceDataIterator(sequence, roi), value);
     }
 
-    public static void doAdditiveFill(DataIterator it, double value)
+    public static void doAdditiveFill(DataIterator it, double value) throws InterruptedException
     {
         it.reset();
 
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/op/FillInnerSequence.java b/src/main/java/plugins/tprovoost/sequenceblocks/op/FillInnerSequence.java
index 39c7c63..7dc0f45 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/op/FillInnerSequence.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/op/FillInnerSequence.java
@@ -36,14 +36,21 @@ public class FillInnerSequence extends Plugin implements SequenceBlock, PluginLi
         if (sequence == null)
             throw new VarException(inputSequence, "Input sequence is null.");
 
-        if (rois.getValue() != null)
+        try
         {
-            final double value = fillValue.getValue().doubleValue();
+            if (rois.getValue() != null)
+            {
+                final double value = fillValue.getValue().doubleValue();
 
-            for (ROI roi : rois.getValue())
-                DataIteratorUtil.set(new SequenceDataIterator(sequence, roi), value);
+                for (ROI roi : rois.getValue())
+                    DataIteratorUtil.set(new SequenceDataIterator(sequence, roi), value);
 
-            sequence.dataChanged();
+                sequence.dataChanged();
+            }
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
         }
     }
 
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/op/FillOuterSequence.java b/src/main/java/plugins/tprovoost/sequenceblocks/op/FillOuterSequence.java
index 7e3faea..89d47ed 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/op/FillOuterSequence.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/op/FillOuterSequence.java
@@ -40,25 +40,32 @@ public class FillOuterSequence extends Plugin implements SequenceBlock, PluginLi
         if (sequence == null)
             throw new VarException(inputSequence, "Input sequence is null.");
 
-        if (rois.getValue() != null)
+        try
         {
-            try
+            if (rois.getValue() != null)
             {
-                final ROI roiUnion = ROIUtil.merge(CollectionUtil.asList(rois.getValue()), BooleanOperator.OR);
-                final ROI roiSeq = new ROI5DStackRectangle(sequence.getBounds5D());
-                final ROI roi = roiSeq.getSubtraction(roiUnion);
+                try
+                {
+                    final ROI roiUnion = ROIUtil.merge(CollectionUtil.asList(rois.getValue()), BooleanOperator.OR);
+                    final ROI roiSeq = new ROI5DStackRectangle(sequence.getBounds5D());
+                    final ROI roi = roiSeq.getSubtraction(roiUnion);
 
-                final double value = fillValue.getValue().doubleValue();
+                    final double value = fillValue.getValue().doubleValue();
 
-                DataIteratorUtil.set(new SequenceDataIterator(sequence, roi), value);
+                    DataIteratorUtil.set(new SequenceDataIterator(sequence, roi), value);
 
-                sequence.dataChanged();
-            }
-            catch (UnsupportedOperationException e)
-            {
-                throw new VarException(rois, e.getMessage());
+                    sequence.dataChanged();
+                }
+                catch (UnsupportedOperationException e)
+                {
+                    throw new VarException(rois, e.getMessage());
+                }
             }
         }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
diff --git a/src/main/java/plugins/tprovoost/sequenceblocks/remove/RemoveChannel.java b/src/main/java/plugins/tprovoost/sequenceblocks/remove/RemoveChannel.java
index 946b5cb..2fb63bf 100644
--- a/src/main/java/plugins/tprovoost/sequenceblocks/remove/RemoveChannel.java
+++ b/src/main/java/plugins/tprovoost/sequenceblocks/remove/RemoveChannel.java
@@ -35,7 +35,14 @@ public class RemoveChannel extends Plugin implements SequenceBlock, PluginLibrar
         if (channel < 0 || channel >= s.getSizeC())
             throw new VarException(channelIdx, "Channel index must be between 0 and " + (s.getSizeC() - 1));
 
-        SequenceUtil.removeChannel(s, channel);
+        try
+        {
+            SequenceUtil.removeChannel(s, channel);
+        }
+        catch (InterruptedException e)
+        {
+            // nothing to do
+        }
     }
 
     @Override
-- 
GitLab