From 26b58f91d8c232e006cd006dd6ef43d6a9b49ef4 Mon Sep 17 00:00:00 2001 From: Stephane Dallongeville <stephane.dallongeville@pasteur.fr> Date: Wed, 1 Dec 2021 14:27:32 +0100 Subject: [PATCH] Updated for Icy kernel 2.4.0 (interruptible process) --- pom.xml | 4 ++-- .../roiintensityevolution/ROIAnalysis.java | 6 +++--- .../ROIIntensityEvolution.java | 18 ++++++++++-------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/pom.xml b/pom.xml index 9d77153..c8477fa 100644 --- a/pom.xml +++ b/pom.xml @@ -7,11 +7,11 @@ <parent> <artifactId>parent-pom-plugin</artifactId> <groupId>org.bioimageanalysis.icy</groupId> - <version>1.0.3</version> + <version>1.0.6</version> </parent> <artifactId>roi-intensity-evolution</artifactId> - <version>2.1.0</version> + <version>2.1.1</version> <packaging>jar</packaging> diff --git a/src/main/java/plugins/nchenouard/roiintensityevolution/ROIAnalysis.java b/src/main/java/plugins/nchenouard/roiintensityevolution/ROIAnalysis.java index 9682b0c..994b20c 100644 --- a/src/main/java/plugins/nchenouard/roiintensityevolution/ROIAnalysis.java +++ b/src/main/java/plugins/nchenouard/roiintensityevolution/ROIAnalysis.java @@ -40,7 +40,7 @@ public class ROIAnalysis ReentrantLock initLock = new ReentrantLock(); public ROIAnalysis(ROI roi, Sequence sequence, String description, double threshold, boolean overthreshold, - double scaling) + double scaling) throws InterruptedException { try { @@ -87,7 +87,7 @@ public class ROIAnalysis } }; - private void fillSeriesNoLock(double threshold, boolean overthreshold, double areaScale) + private void fillSeriesNoLock(double threshold, boolean overthreshold, double areaScale) throws InterruptedException { for (int c = 0; c < sequence.getSizeC(); c++) { @@ -228,7 +228,7 @@ public class ROIAnalysis } } - public void fillSeries(double threshold, boolean overthreshold, double scale) + public void fillSeries(double threshold, boolean overthreshold, double scale) throws InterruptedException { try { diff --git a/src/main/java/plugins/nchenouard/roiintensityevolution/ROIIntensityEvolution.java b/src/main/java/plugins/nchenouard/roiintensityevolution/ROIIntensityEvolution.java index 198f4bb..9a294d7 100644 --- a/src/main/java/plugins/nchenouard/roiintensityevolution/ROIIntensityEvolution.java +++ b/src/main/java/plugins/nchenouard/roiintensityevolution/ROIIntensityEvolution.java @@ -50,6 +50,7 @@ import icy.gui.frame.IcyFrame; import icy.gui.frame.IcyFrameEvent; import icy.gui.frame.IcyFrameListener; import icy.gui.frame.progress.AnnounceFrame; +import icy.gui.frame.progress.FailedAnnounceFrame; import icy.gui.main.GlobalROIListener; import icy.gui.main.GlobalSequenceListener; import icy.image.IcyBufferedImage; @@ -244,7 +245,7 @@ public class ROIIntensityEvolution extends PluginActionable } public static ArrayList<ROIAnalysis> analyseRoisInSequence(Sequence seq, boolean useRealScales, double threshold, - boolean pixelAboveThreshold) + boolean pixelAboveThreshold) throws InterruptedException { ArrayList<ROI> toFill = seq.getROIs(); ArrayList<ROIAnalysis> analyzed = new ArrayList<ROIAnalysis>(); @@ -913,25 +914,26 @@ public class ROIIntensityEvolution extends PluginActionable seriesToFillCondition.await(); toFill.addAll(seriesToFill); seriesToFill.clear(); + + // fill the series + if (selectedSequence != null) + fillSeries(toFill, selectedSequence); + else + SwingUtilities.invokeLater(ROIIntensityEvolution.this::updateDisplay); } catch (InterruptedException e) { - e.printStackTrace(); + new FailedAnnounceFrame("ROI intensity evolution process interrupted.."); } finally { seriesToFillLock.unlock(); } - // fill the series - if (selectedSequence != null) - fillSeries(toFill, selectedSequence); - else - SwingUtilities.invokeLater(ROIIntensityEvolution.this::updateDisplay); } } } - private void fillSeries(ArrayList<ROI> toFill, Sequence selectedSequence) + void fillSeries(ArrayList<ROI> toFill, Sequence selectedSequence) throws InterruptedException { if (toFill.isEmpty()) return; -- GitLab