From 50d81f1b0ebefdc3f9cb656c4fee075ab828d072 Mon Sep 17 00:00:00 2001 From: Nathaniel Sherry Date: Sun, 1 Sep 2024 14:50:42 -0400 Subject: [PATCH] Fix for drag-and-drop not working correctly for URLs --- .../dialogs/error/ErrorDisplayPanel.java | 35 ++++++++++++------- .../java/org/peakaboo/ui/swing/Peakaboo.java | 2 +- .../ui/swing/plotting/PlotCanvas.java | 13 +++---- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/Framework/Stratus/src/main/java/org/peakaboo/framework/stratus/components/dialogs/error/ErrorDisplayPanel.java b/Framework/Stratus/src/main/java/org/peakaboo/framework/stratus/components/dialogs/error/ErrorDisplayPanel.java index d2e71b86b..a0f1e3a5b 100644 --- a/Framework/Stratus/src/main/java/org/peakaboo/framework/stratus/components/dialogs/error/ErrorDisplayPanel.java +++ b/Framework/Stratus/src/main/java/org/peakaboo/framework/stratus/components/dialogs/error/ErrorDisplayPanel.java @@ -4,6 +4,7 @@ import java.awt.Dimension; import java.io.PrintWriter; import java.io.StringWriter; +import java.util.Optional; import javax.swing.JLabel; import javax.swing.JPanel; @@ -17,7 +18,8 @@ public class ErrorDisplayPanel extends JPanel { - private Throwable t; + + private Optional t; public ErrorDisplayPanel(Throwable t) { @@ -25,10 +27,21 @@ public ErrorDisplayPanel(Throwable t) { } public ErrorDisplayPanel(String msg, Throwable t) { - if (t == null) { - throw new RuntimeException("Error Panel cannot be shown without exception"); + + String errorMessage = ""; + String errorType = ""; + + if (t != null) { + errorType = t.getClass().getSimpleName(); + errorMessage = t.getMessage(); + if (errorMessage == null) { + errorMessage = ""; + } } - this.t = t; + + this.t = Optional.of(t); + + setLayout(new BorderLayout(Spacing.huge, Spacing.huge)); setBorder(Spacing.bHuge()); @@ -43,17 +56,12 @@ public ErrorDisplayPanel(String msg, Throwable t) { JPanel north = new JPanel(new BorderLayout(Spacing.huge, Spacing.huge)); - String title = "
Error of type " + t.getClass().getSimpleName() + "
"; + String title = "
Error of type " + errorType + "
"; if (msg == null) { msg = ""; } - String longMessage = ""; - if (t.getMessage() != null) { - longMessage = t.getMessage(); - } - if (longMessage == null) { - longMessage = ""; - } + + String longMessage = errorMessage; if (longMessage.length() > 100) { longMessage = longMessage.substring(0, 99) + "…"; } @@ -70,9 +78,10 @@ public ErrorDisplayPanel(String msg, Throwable t) { } public String getStackTrace() { + if (t.isEmpty()) return ""; StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); - t.printStackTrace(pw); + t.get().printStackTrace(pw); return sw.toString(); } diff --git a/SwingUI/src/main/java/org/peakaboo/ui/swing/Peakaboo.java b/SwingUI/src/main/java/org/peakaboo/ui/swing/Peakaboo.java index 36600fab6..06694e6d5 100644 --- a/SwingUI/src/main/java/org/peakaboo/ui/swing/Peakaboo.java +++ b/SwingUI/src/main/java/org/peakaboo/ui/swing/Peakaboo.java @@ -305,7 +305,7 @@ public static TaskMonitor> getUrlsAsync(List urls, Consumer> monitor = Peakaboo.getUrlsAsync(Arrays.asList(urls), optfiles -> { if (!optfiles.isPresent()) { return; } + PeakabooLog.get().log(Level.INFO, "Downloaded URLs to files: " + optfiles.get().toString()); filesDropped(optfiles.get()); }); @@ -209,9 +208,7 @@ void urlsDropped(URL[] urls) { void filesDropped(List files) { - if (files.size() == 1 && PluginManager.isPluginFile(files.get(0)) ) { - plotPanel.load(files.stream().map(PathDataInputAdapter::new).collect(Collectors.toList())); - } + plotPanel.load(files.stream().map(PathDataInputAdapter::new).collect(Collectors.toList())); }