From 9e991e815c0206cebde17286bfafa4a207ec9de8 Mon Sep 17 00:00:00 2001 From: joshuajeschek Date: Thu, 6 Jan 2022 10:55:13 +0100 Subject: [PATCH 1/3] =?UTF-8?q?[fix]=20log=20sollte=20sich=20jetzt=20?= =?UTF-8?q?=C3=BCberall=20schlie=C3=9Fen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/github/weichware10/toolbox/Main.java | 2 + .../toolbox/gui/EndController.java | 5 ++- .../weichware10/toolbox/gui/PreTest.java | 3 +- .../github/weichware10/toolbox/gui/Util.java | 18 +-------- .../toolbox/gui/util/WindowCloser.java | 35 ++++++++++++++++++ .../toolbox/gui/{ => util}/exit.png | Bin .../toolbox/gui/{ => util}/thonkang.png | Bin 7 files changed, 44 insertions(+), 19 deletions(-) create mode 100644 src/main/java/github/weichware10/toolbox/gui/util/WindowCloser.java rename src/main/resources/github/weichware10/toolbox/gui/{ => util}/exit.png (100%) rename src/main/resources/github/weichware10/toolbox/gui/{ => util}/thonkang.png (100%) diff --git a/src/main/java/github/weichware10/toolbox/Main.java b/src/main/java/github/weichware10/toolbox/Main.java index bc2797c..496e378 100644 --- a/src/main/java/github/weichware10/toolbox/Main.java +++ b/src/main/java/github/weichware10/toolbox/Main.java @@ -2,6 +2,7 @@ import github.weichware10.toolbox.gui.App; import github.weichware10.toolbox.gui.util.Log; +import github.weichware10.toolbox.gui.util.WindowCloser; import github.weichware10.util.Logger; import io.github.cdimascio.dotenv.Dotenv; import javafx.application.Application; @@ -48,6 +49,7 @@ public void start(Stage primaryStage) { Rectangle2D screenBounds = Screen.getPrimary().getBounds(); primaryStage.setHeight(screenBounds.getHeight() / 2); primaryStage.setWidth(screenBounds.getWidth() / 2); + primaryStage.setOnCloseRequest(e -> WindowCloser.closeEverything()); // ersten Bildschirm starten new App(primaryStage, null); diff --git a/src/main/java/github/weichware10/toolbox/gui/EndController.java b/src/main/java/github/weichware10/toolbox/gui/EndController.java index ad3b2a8..e9d5357 100644 --- a/src/main/java/github/weichware10/toolbox/gui/EndController.java +++ b/src/main/java/github/weichware10/toolbox/gui/EndController.java @@ -1,5 +1,6 @@ package github.weichware10.toolbox.gui; +import github.weichware10.toolbox.gui.util.WindowCloser; import github.weichware10.util.Logger; import java.awt.Desktop; import java.io.File; @@ -105,14 +106,14 @@ public void setStatusIndicator(boolean active) { } else { statusBox.getChildren().remove(pi); buttonBar.setDisable(false); - primaryStage.setOnCloseRequest(e -> closeProgram()); + primaryStage.setOnCloseRequest(e -> WindowCloser.closeEverything()); } } @FXML void closeProgram() { Logger.info("end:content Closing Program"); - end.closeProgramm(); + WindowCloser.closeEverything(); } @FXML diff --git a/src/main/java/github/weichware10/toolbox/gui/PreTest.java b/src/main/java/github/weichware10/toolbox/gui/PreTest.java index 8bd6c98..83ad8d6 100644 --- a/src/main/java/github/weichware10/toolbox/gui/PreTest.java +++ b/src/main/java/github/weichware10/toolbox/gui/PreTest.java @@ -1,6 +1,7 @@ package github.weichware10.toolbox.gui; import github.weichware10.toolbox.codecharts.CodeCharts; +import github.weichware10.toolbox.gui.util.WindowCloser; import github.weichware10.toolbox.zoommaps.ZoomMaps; import github.weichware10.util.Logger; import github.weichware10.util.config.ConfigClient; @@ -61,7 +62,7 @@ public PreTest(Stage primaryStage, Scene scene = new Scene(root); // Event welches beim schließen eines Fensters aufgerufen wird - primaryStage.setOnCloseRequest(e -> Util.closeRequestFilter(e)); + primaryStage.setOnCloseRequest(e -> WindowCloser.closeRequestFilter(e)); primaryStage.setScene(scene); } diff --git a/src/main/java/github/weichware10/toolbox/gui/Util.java b/src/main/java/github/weichware10/toolbox/gui/Util.java index f17e03e..2e2eb3b 100644 --- a/src/main/java/github/weichware10/toolbox/gui/Util.java +++ b/src/main/java/github/weichware10/toolbox/gui/Util.java @@ -1,26 +1,12 @@ package github.weichware10.toolbox.gui; import github.weichware10.toolbox.gui.dialogs.ConfirmDialog; +import github.weichware10.toolbox.gui.util.Log; import javafx.stage.WindowEvent; /** * praktische Sachen für GUI. */ public class Util { - /** - * Filtert Anfragen das Fenster zu schließen - * - wird das Event consumed, wird das Fenster nicht geschlossen. - * - * @param event - das WindowEvent mit der Anfrage - */ - public static void closeRequestFilter(WindowEvent event) { - String icon = Util.class.getResource("thonkang.png").toString(); - // Fenster schließen, ja oder nein? - boolean confirmation = new ConfirmDialog("Do you want to close the window?", icon) - .getConfirmation(); - // event consumieren -> nicht schließen - if (!confirmation) { - event.consume(); - } - } + } diff --git a/src/main/java/github/weichware10/toolbox/gui/util/WindowCloser.java b/src/main/java/github/weichware10/toolbox/gui/util/WindowCloser.java new file mode 100644 index 0000000..fc397df --- /dev/null +++ b/src/main/java/github/weichware10/toolbox/gui/util/WindowCloser.java @@ -0,0 +1,35 @@ +package github.weichware10.toolbox.gui.util; + +import github.weichware10.toolbox.gui.dialogs.ConfirmDialog; +import javafx.stage.WindowEvent; + +/** + * Event Filter für Schließen aller Fenster. + */ +public class WindowCloser { + /** + * Filtert Anfragen das Fenster zu schließen + * - wird das Event consumed, wird das Fenster nicht geschlossen. + * + * @param event - das WindowEvent mit der Anfrage + */ + public static void closeRequestFilter(WindowEvent event) { + String icon = WindowCloser.class.getResource("thonkang.png").toString(); + // Fenster schließen, ja oder nein? + boolean confirmation = new ConfirmDialog("Do you want to close the window?", icon) + .getConfirmation(); + // event consumieren -> nicht schließen + if (!confirmation) { + event.consume(); + } + Log.close(); + } + + /** + * schließt das Log bei WINDOW_CLOSE_REQUEST. + * + */ + public static void closeEverything() { + Log.close(); + } +} diff --git a/src/main/resources/github/weichware10/toolbox/gui/exit.png b/src/main/resources/github/weichware10/toolbox/gui/util/exit.png similarity index 100% rename from src/main/resources/github/weichware10/toolbox/gui/exit.png rename to src/main/resources/github/weichware10/toolbox/gui/util/exit.png diff --git a/src/main/resources/github/weichware10/toolbox/gui/thonkang.png b/src/main/resources/github/weichware10/toolbox/gui/util/thonkang.png similarity index 100% rename from src/main/resources/github/weichware10/toolbox/gui/thonkang.png rename to src/main/resources/github/weichware10/toolbox/gui/util/thonkang.png From 9f9610c11508fa6569b0428b9d2cd611e06a4fea Mon Sep 17 00:00:00 2001 From: joshuajeschek Date: Thu, 6 Jan 2022 10:58:35 +0100 Subject: [PATCH 2/3] =?UTF-8?q?[style]=20gui.Util=20Klasse=20gel=C3=B6scht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/github/weichware10/toolbox/gui/Util.java | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 src/main/java/github/weichware10/toolbox/gui/Util.java diff --git a/src/main/java/github/weichware10/toolbox/gui/Util.java b/src/main/java/github/weichware10/toolbox/gui/Util.java deleted file mode 100644 index 2e2eb3b..0000000 --- a/src/main/java/github/weichware10/toolbox/gui/Util.java +++ /dev/null @@ -1,12 +0,0 @@ -package github.weichware10.toolbox.gui; - -import github.weichware10.toolbox.gui.dialogs.ConfirmDialog; -import github.weichware10.toolbox.gui.util.Log; -import javafx.stage.WindowEvent; - -/** - * praktische Sachen für GUI. - */ -public class Util { - -} From 2468ece6eb030efce84d13886118b26e1b4a37fa Mon Sep 17 00:00:00 2001 From: joshuajeschek Date: Sun, 9 Jan 2022 18:12:36 +0100 Subject: [PATCH 3/3] [refactor] small refactor --- src/main/java/github/weichware10/toolbox/Main.java | 8 +++++--- src/main/java/github/weichware10/toolbox/Util.java | 8 +++++--- .../weichware10/toolbox/gui/EndController.java | 6 +++--- .../weichware10/toolbox/gui/util/WindowCloser.java | 13 ++++--------- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/main/java/github/weichware10/toolbox/Main.java b/src/main/java/github/weichware10/toolbox/Main.java index afa61a1..170cc93 100644 --- a/src/main/java/github/weichware10/toolbox/Main.java +++ b/src/main/java/github/weichware10/toolbox/Main.java @@ -2,10 +2,10 @@ import github.weichware10.toolbox.gui.App; import github.weichware10.toolbox.gui.util.Log; -import github.weichware10.toolbox.gui.util.WindowCloser; import github.weichware10.util.Logger; import io.github.cdimascio.dotenv.Dotenv; import javafx.application.Application; +import javafx.application.Platform; import javafx.geometry.Rectangle2D; import javafx.scene.image.Image; import javafx.stage.Screen; @@ -27,7 +27,8 @@ public static void main(String[] args) { String logfile = String.format( Dotenv.load().get("LOGS") + "/%s.log", DateTime.now().toString("yMMdd-HHmmss")); Logger.setLogfile(logfile); - Util.deleteTempDir(); + // delete temp dir + Runtime.getRuntime().addShutdownHook(Util.deleteTempDir()); launch(args); } @@ -50,7 +51,8 @@ public void start(Stage primaryStage) { Rectangle2D screenBounds = Screen.getPrimary().getBounds(); primaryStage.setHeight(screenBounds.getHeight() / 2); primaryStage.setWidth(screenBounds.getWidth() / 2); - primaryStage.setOnCloseRequest(e -> WindowCloser.closeEverything()); + // Hauptfenster schließt komplettes Programm + primaryStage.setOnCloseRequest(e -> Platform.exit()); // ersten Bildschirm starten new App(primaryStage, null); diff --git a/src/main/java/github/weichware10/toolbox/Util.java b/src/main/java/github/weichware10/toolbox/Util.java index 8b6e90b..dbd74b2 100644 --- a/src/main/java/github/weichware10/toolbox/Util.java +++ b/src/main/java/github/weichware10/toolbox/Util.java @@ -83,8 +83,11 @@ public static String saveImage(String imageUrl) throws MalformedURLException, /** * Löscht angelegten temporären Ordner beim Beenden der App. */ - public static void deleteTempDir() { - Thread deleterHook = new Thread(() -> { + public static Thread deleteTempDir() { + return new Thread(() -> { + if (tmpdir == null) { + return; + } try { Logger.info("deleting tmp folder..."); FileUtils.deleteDirectory(new File(tmpdir)); @@ -94,6 +97,5 @@ public static void deleteTempDir() { Logger.error("IllegalArgumentException while deleting tmpdir", e, true); } }); - Runtime.getRuntime().addShutdownHook(deleterHook); } } diff --git a/src/main/java/github/weichware10/toolbox/gui/EndController.java b/src/main/java/github/weichware10/toolbox/gui/EndController.java index e9d5357..d96ac29 100644 --- a/src/main/java/github/weichware10/toolbox/gui/EndController.java +++ b/src/main/java/github/weichware10/toolbox/gui/EndController.java @@ -1,12 +1,12 @@ package github.weichware10.toolbox.gui; -import github.weichware10.toolbox.gui.util.WindowCloser; import github.weichware10.util.Logger; import java.awt.Desktop; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.ResourceBundle; +import javafx.application.Platform; import javafx.fxml.FXML; import javafx.scene.control.ButtonBar; import javafx.scene.control.Hyperlink; @@ -106,14 +106,14 @@ public void setStatusIndicator(boolean active) { } else { statusBox.getChildren().remove(pi); buttonBar.setDisable(false); - primaryStage.setOnCloseRequest(e -> WindowCloser.closeEverything()); + primaryStage.setOnCloseRequest(e -> Platform.exit()); } } @FXML void closeProgram() { Logger.info("end:content Closing Program"); - WindowCloser.closeEverything(); + Platform.exit(); } @FXML diff --git a/src/main/java/github/weichware10/toolbox/gui/util/WindowCloser.java b/src/main/java/github/weichware10/toolbox/gui/util/WindowCloser.java index fc397df..3eeed0b 100644 --- a/src/main/java/github/weichware10/toolbox/gui/util/WindowCloser.java +++ b/src/main/java/github/weichware10/toolbox/gui/util/WindowCloser.java @@ -1,6 +1,7 @@ package github.weichware10.toolbox.gui.util; import github.weichware10.toolbox.gui.dialogs.ConfirmDialog; +import javafx.application.Platform; import javafx.stage.WindowEvent; /** @@ -21,15 +22,9 @@ public static void closeRequestFilter(WindowEvent event) { // event consumieren -> nicht schließen if (!confirmation) { event.consume(); + return; } - Log.close(); - } - - /** - * schließt das Log bei WINDOW_CLOSE_REQUEST. - * - */ - public static void closeEverything() { - Log.close(); + // komplett schließen + Platform.exit(); } }