From 09b1240428e692aac2f36d8446dd7fa75e503b3e Mon Sep 17 00:00:00 2001 From: Stephane Dallongeville <stephane.dallongeville@pasteur.fr> Date: Thu, 28 Jul 2022 15:20:19 +0200 Subject: [PATCH] Added file selection for XLS export --- pom.xml | 2 +- .../processors/TrackProcessorMSD.java | 32 +++++++++++-------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index 3932634..38c6fe1 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ <!-- Project Information --> <artifactId>msd-track-processor</artifactId> - <version>1.1.1</version> + <version>1.1.2</version> <packaging>jar</packaging> diff --git a/src/main/java/plugins/fab/trackmanager/processors/TrackProcessorMSD.java b/src/main/java/plugins/fab/trackmanager/processors/TrackProcessorMSD.java index 727c7f6..b243681 100644 --- a/src/main/java/plugins/fab/trackmanager/processors/TrackProcessorMSD.java +++ b/src/main/java/plugins/fab/trackmanager/processors/TrackProcessorMSD.java @@ -29,7 +29,9 @@ import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import icy.canvas.IcyCanvas; +import icy.gui.dialog.SaveDialog; import icy.gui.util.GuiUtil; +import icy.main.Icy; import icy.painter.Painter; import icy.preferences.GeneralPreferences; import icy.sequence.Sequence; @@ -188,18 +190,23 @@ public class TrackProcessorMSD extends PluginTrackManagerProcessor implements Ac { WritableWorkbook workbook = null; WritableSheet page = null; - String outputName; - - if ((trackPool.getDisplaySequence() == null) - || StringUtil.isEmpty(trackPool.getDisplaySequence().getFilename())) - outputName = GeneralPreferences.getResultFolder() + "Tracks"; - else - outputName = trackPool.getDisplaySequence().getFilename(); - - outputName += ".msd.xls"; if (xlsExport) { + String outputName; + + if (Icy.getMainInterface().isHeadLess()) + { + if ((trackPool.getDisplaySequence() == null) || StringUtil.isEmpty(trackPool.getDisplaySequence().getFilename())) + outputName = GeneralPreferences.getResultFolder() + "Tracks"; + else + outputName = trackPool.getDisplaySequence().getFilename(); + outputName += ".msd.xls"; + } + else outputName = SaveDialog.chooseFileForResult("XLS MSD export", "tracks-msd", ".xls"); + + if (StringUtil.isEmpty(outputName)) return; + try { workbook = XLSUtil.createWorkbook(new File(outputName)); @@ -208,7 +215,6 @@ public class TrackProcessorMSD extends PluginTrackManagerProcessor implements Ac { e.printStackTrace(); } - } if (workbook != null) @@ -380,8 +386,7 @@ public class TrackProcessorMSD extends PluginTrackManagerProcessor implements Ac private static double scaledSquaredDistance(Detection d1, Detection d2, double sx, double sy, double sz) { - return Math.pow((d1.getX() - d2.getX()) * sx, 2) + Math.pow((d1.getY() - d2.getY()) * sy, 2) - + Math.pow((d1.getZ() - d2.getZ()) * sz, 2); + return Math.pow((d1.getX() - d2.getX()) * sx, 2) + Math.pow((d1.getY() - d2.getY()) * sy, 2) + Math.pow((d1.getZ() - d2.getZ()) * sz, 2); } // public static double getScaledDistance(double x1, double y1, double z1, double x2, double y2, double z2) @@ -467,8 +472,7 @@ public class TrackProcessorMSD extends PluginTrackManagerProcessor implements Ac Rectangle2D transformedChartRectangleInSequence = (Rectangle2D) chartRectangleInSequence.clone(); transformedChartRectangleInSequence.setRect((-chartRectangleInSequence.getWidth() / 2) * (1d / scale), - (-chartRectangleInSequence.getHeight() / 2) * (1d / scale), - chartRectangleInSequence.getWidth() * (1d / scale), + (-chartRectangleInSequence.getHeight() / 2) * (1d / scale), chartRectangleInSequence.getWidth() * (1d / scale), chartRectangleInSequence.getHeight() * (1d / scale)); Graphics2D g2 = (Graphics2D) g; -- GitLab