From b73e29bb2f5afb35fe88208645a0effc6617aa9d Mon Sep 17 00:00:00 2001 From: Stephane Dallongeville <stephane@outlook.com> Date: Thu, 2 Jul 2020 18:21:39 +0200 Subject: [PATCH] fixed loop blocks (because of the weird way it's done internally) --- .../loop/SequenceChannelBatch.java | 7 +-- .../loop/SequenceFileImporterBatch.java | 55 ++++++------------- .../loop/SequenceFileImporterRegionBatch.java | 11 ++-- .../loop/SequenceFileImporterSeriesBatch.java | 30 +++++++--- .../loop/SequenceFileImporterTileBatch.java | 7 ++- .../loop/SequenceFrameBatch.java | 2 +- .../loop/SequenceRegionBatch.java | 2 +- .../loop/SequenceSliceBatch.java | 2 +- 8 files changed, 54 insertions(+), 62 deletions(-) diff --git a/src/plugins/tprovoost/sequenceblocks/loop/SequenceChannelBatch.java b/src/plugins/tprovoost/sequenceblocks/loop/SequenceChannelBatch.java index f227dcd..763ccaa 100644 --- a/src/plugins/tprovoost/sequenceblocks/loop/SequenceChannelBatch.java +++ b/src/plugins/tprovoost/sequenceblocks/loop/SequenceChannelBatch.java @@ -17,15 +17,10 @@ import plugins.tprovoost.sequenceblocks.SequenceBlocks; */ public class SequenceChannelBatch extends Batch implements SequenceBlock, PluginLibrary, PluginBundled { - // important to not initialize 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; - public SequenceChannelBatch() - { - super(); - } - @Override public VarSequence getBatchSource() { diff --git a/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterBatch.java b/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterBatch.java index 134d9af..48ef8fb 100644 --- a/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterBatch.java +++ b/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterBatch.java @@ -21,22 +21,13 @@ import plugins.tprovoost.sequenceblocks.importer.PositionedSequenceFileImporter; */ public abstract class SequenceFileImporterBatch extends Batch implements SequenceBlock, PluginLibrary, PluginBundled { - // important to not initialize and create them in getBatchSource() and getBatchElement() - protected Var<PositionedSequenceFileImporter> positionedImporter = null; - protected Var<PositionedSequenceFileImporter> element = null; - protected VarInteger series = null; + // important to not initialize here (even with null) and create them in getBatchSource() and getBatchElement() + protected Var<PositionedSequenceFileImporter> positionedImporter; + protected Var<PositionedSequenceFileImporter> element; + protected VarInteger series; // internal protected int limit; - protected boolean showSeriesField; - - public SequenceFileImporterBatch() - { - super(); - - // we want it by default - showSeriesField = true; - } @Override public Var<PositionedSequenceFileImporter> getBatchSource() @@ -75,15 +66,11 @@ public abstract class SequenceFileImporterBatch extends Batch implements Sequenc // create new positioned importer for element initialization final PositionedSequenceFileImporter pi = new PositionedSequenceFileImporter(value); - // series field active ? - if (showSeriesField) - { - final int s = series.getValue().intValue(); + final int s = series.getValue().intValue(); - // defined series ? --> set series position - if (s != -1) - pi.s = s; - } + // defined series ? --> set series position + if (s != -1) + pi.s = s; // init element with a copy of current positioned importer (and eventually set serie position) element.setValue(pi); @@ -94,30 +81,24 @@ public abstract class SequenceFileImporterBatch extends Batch implements Sequenc { super.declareInput(inputMap); - if (showSeriesField) - { - // lazy creation - if (series == null) - series = new VarInteger("Series", -1); + // lazy creation + if (series == null) + series = new VarInteger("Series", -1); - inputMap.add("series", series); - } + inputMap.add("series", series); } @Override public void declareLoopVariables(List<Var<?>> loopVariables) { - if (showSeriesField) - { - // lazy creation - if (series == null) - series = new VarInteger("Series", -1); - - loopVariables.add(series); - } - // need to be called after super.declareLoopVariables(loopVariables); + + // lazy creation + if (series == null) + series = new VarInteger("Series", -1); + + loopVariables.add(series); } @Override diff --git a/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterRegionBatch.java b/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterRegionBatch.java index 98ab352..05f0518 100644 --- a/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterRegionBatch.java +++ b/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterRegionBatch.java @@ -24,9 +24,10 @@ import plugins.tprovoost.sequenceblocks.importer.PositionedSequenceFileImporter; */ public class SequenceFileImporterRegionBatch extends SequenceFileImporterBatch { - protected VarROIArray rois = null; - protected VarInteger inputRoisResolution = null; - protected VarInteger inputRoisMargin = null; + // important to not initialize here (even with null) and create them in getBatchSource() and getBatchElement() + protected VarROIArray rois; + protected VarInteger inputRoisResolution; + protected VarInteger inputRoisMargin; protected List<Rectangle> regions; @Override @@ -115,6 +116,8 @@ public class SequenceFileImporterRegionBatch extends SequenceFileImporterBatch @Override public void declareLoopVariables(List<Var<?>> loopVariables) { + super.declareLoopVariables(loopVariables); + // lazy creation if (rois == null) rois = new VarROIArray("XY regions (ROIs)"); @@ -126,8 +129,6 @@ public class SequenceFileImporterRegionBatch extends SequenceFileImporterBatch loopVariables.add(rois); loopVariables.add(inputRoisResolution); loopVariables.add(inputRoisMargin); - - super.declareLoopVariables(loopVariables); } @Override diff --git a/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterSeriesBatch.java b/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterSeriesBatch.java index c08970f..ffb8e57 100644 --- a/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterSeriesBatch.java +++ b/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterSeriesBatch.java @@ -1,7 +1,11 @@ package plugins.tprovoost.sequenceblocks.loop; +import java.util.List; + import icy.file.SequenceFileImporter; import icy.sequence.MetaDataUtil; +import plugins.adufour.blocks.util.VarList; +import plugins.adufour.vars.lang.Var; import plugins.adufour.vars.util.VarException; import plugins.tprovoost.sequenceblocks.importer.PositionedSequenceFileImporter; @@ -12,14 +16,6 @@ import plugins.tprovoost.sequenceblocks.importer.PositionedSequenceFileImporter; */ public class SequenceFileImporterSeriesBatch extends SequenceFileImporterBatch { - public SequenceFileImporterSeriesBatch() - { - super(); - - // add series field here - showSeriesField = false; - } - @Override public void initializeLoop() { @@ -43,6 +39,24 @@ public class SequenceFileImporterSeriesBatch extends SequenceFileImporterBatch } } + @Override + public void declareInput(VarList inputMap) + { + super.declareInput(inputMap); + + // we don't want it here + inputMap.remove(series); + } + + @Override + public void declareLoopVariables(List<Var<?>> loopVariables) + { + super.declareLoopVariables(loopVariables); + + // we don't want it here + loopVariables.remove(series); + } + @Override public void beforeIteration() { diff --git a/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterTileBatch.java b/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterTileBatch.java index b831e80..fa0d9a6 100644 --- a/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterTileBatch.java +++ b/src/plugins/tprovoost/sequenceblocks/loop/SequenceFileImporterTileBatch.java @@ -20,6 +20,7 @@ import plugins.tprovoost.sequenceblocks.importer.PositionedSequenceFileImporter; */ public class SequenceFileImporterTileBatch extends SequenceFileImporterBatch { + // important to not initialize here (even with null) and create them in getBatchSource() and getBatchElement() protected VarInteger tileW; protected VarInteger tileH; @@ -103,6 +104,9 @@ public class SequenceFileImporterTileBatch extends SequenceFileImporterBatch @Override public void declareLoopVariables(List<Var<?>> loopVariables) { + // need to be called after + super.declareLoopVariables(loopVariables); + // lazy creation if (tileW == null) tileW = new VarInteger("Tile width (-1 = auto)", 0); @@ -111,9 +115,6 @@ public class SequenceFileImporterTileBatch extends SequenceFileImporterBatch loopVariables.add(tileW); loopVariables.add(tileH); - - // need to be called after - super.declareLoopVariables(loopVariables); } @Override diff --git a/src/plugins/tprovoost/sequenceblocks/loop/SequenceFrameBatch.java b/src/plugins/tprovoost/sequenceblocks/loop/SequenceFrameBatch.java index d06b0a6..cacc729 100644 --- a/src/plugins/tprovoost/sequenceblocks/loop/SequenceFrameBatch.java +++ b/src/plugins/tprovoost/sequenceblocks/loop/SequenceFrameBatch.java @@ -16,7 +16,7 @@ import plugins.tprovoost.sequenceblocks.SequenceBlocks; */ public class SequenceFrameBatch extends Batch implements PluginLibrary, PluginBundled { - // important to not initialize 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; diff --git a/src/plugins/tprovoost/sequenceblocks/loop/SequenceRegionBatch.java b/src/plugins/tprovoost/sequenceblocks/loop/SequenceRegionBatch.java index 548ba91..dd539a3 100644 --- a/src/plugins/tprovoost/sequenceblocks/loop/SequenceRegionBatch.java +++ b/src/plugins/tprovoost/sequenceblocks/loop/SequenceRegionBatch.java @@ -22,7 +22,7 @@ import plugins.tprovoost.sequenceblocks.SequenceBlocks; */ public class SequenceRegionBatch extends Batch implements SequenceBlock, PluginLibrary, PluginBundled { - // important to not initialize 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 final VarROIArray rois; diff --git a/src/plugins/tprovoost/sequenceblocks/loop/SequenceSliceBatch.java b/src/plugins/tprovoost/sequenceblocks/loop/SequenceSliceBatch.java index 4a0440a..0386775 100644 --- a/src/plugins/tprovoost/sequenceblocks/loop/SequenceSliceBatch.java +++ b/src/plugins/tprovoost/sequenceblocks/loop/SequenceSliceBatch.java @@ -17,7 +17,7 @@ import plugins.tprovoost.sequenceblocks.SequenceBlocks; */ public class SequenceSliceBatch extends Batch implements SequenceBlock, PluginLibrary, PluginBundled { - // important to not initialize 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; -- GitLab