From 80df1a749dd54d3614f9707e7544d72ea480629f Mon Sep 17 00:00:00 2001 From: Bixilon Date: Thu, 3 Dec 2020 11:45:42 +0100 Subject: [PATCH] migrate Fatal Error (Startup) dialog to JFX --- src/main/java/de/bixilon/minosoft/Minosoft.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/Minosoft.java b/src/main/java/de/bixilon/minosoft/Minosoft.java index 34b4fc1ce..af9501b33 100644 --- a/src/main/java/de/bixilon/minosoft/Minosoft.java +++ b/src/main/java/de/bixilon/minosoft/Minosoft.java @@ -14,6 +14,8 @@ package de.bixilon.minosoft; import com.google.common.collect.HashBiMap; +import com.jfoenix.controls.JFXAlert; +import com.jfoenix.controls.JFXDialogLayout; import de.bixilon.minosoft.config.Configuration; import de.bixilon.minosoft.config.ConfigurationPaths; import de.bixilon.minosoft.config.StaticConfiguration; @@ -36,8 +38,8 @@ import de.bixilon.minosoft.util.task.AsyncTaskWorker; import de.bixilon.minosoft.util.task.Task; import de.bixilon.minosoft.util.task.TaskImportance; import javafx.application.Platform; -import javafx.scene.control.Dialog; import javafx.scene.control.TextArea; +import javafx.scene.text.Text; import javafx.stage.Stage; import java.io.IOException; @@ -73,18 +75,19 @@ public final class Minosoft { StartProgressWindow.hideDialog(); Launcher.exit(); Platform.runLater(() -> { - Dialog dialog = new Dialog<>(); + JFXAlert dialog = new JFXAlert<>(); GUITools.initializePane(dialog.getDialogPane()); // Do not translate this, translations might fail to load... dialog.setTitle("Critical Error"); - dialog.setHeaderText("An error occurred while starting Minosoft"); + JFXDialogLayout layout = new JFXDialogLayout(); + layout.setHeading(new Text("A fatal error occurred while starting Minosoft")); TextArea text = new TextArea(exception.getClass().getCanonicalName() + ": " + exception.getMessage()); text.setEditable(false); text.setWrapText(true); - dialog.getDialogPane().setContent(text); + layout.setBody(text); + dialog.getDialogPane().setContent(layout); Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow(); - stage.setAlwaysOnTop(true); stage.toFront(); stage.setOnCloseRequest(dialogEvent -> { dialog.setResult(Boolean.TRUE);