From e9f9f8f29f2504bb750ea0af11840c1aa746b476 Mon Sep 17 00:00:00 2001 From: gegy1000 Date: Wed, 19 Jun 2019 20:28:01 +0200 Subject: Only open mappings once jar is loaded --- src/main/java/cuchaz/enigma/gui/dialog/ProgressDialog.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/main/java/cuchaz/enigma/gui/dialog') diff --git a/src/main/java/cuchaz/enigma/gui/dialog/ProgressDialog.java b/src/main/java/cuchaz/enigma/gui/dialog/ProgressDialog.java index c135d03..cf5c2c8 100644 --- a/src/main/java/cuchaz/enigma/gui/dialog/ProgressDialog.java +++ b/src/main/java/cuchaz/enigma/gui/dialog/ProgressDialog.java @@ -17,6 +17,7 @@ import cuchaz.enigma.utils.Utils; import javax.swing.*; import java.awt.*; +import java.util.concurrent.CompletableFuture; public class ProgressDialog implements ProgressListener, AutoCloseable { @@ -57,15 +58,19 @@ public class ProgressDialog implements ProgressListener, AutoCloseable { this.frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); } - public static void runOffThread(final JFrame parent, final ProgressRunnable runnable) { + public static CompletableFuture runOffThread(final JFrame parent, final ProgressRunnable runnable) { + CompletableFuture future = new CompletableFuture<>(); new Thread(() -> { try (ProgressDialog progress = new ProgressDialog(parent)) { runnable.run(progress); + future.complete(null); } catch (Exception ex) { + future.completeExceptionally(ex); throw new Error(ex); } }).start(); + return future; } @Override -- cgit v1.2.3