@@ -0,0 +1,1510 @@
+package eu.mivrenik.particles.io;%0A%0Aimport javafx.scene.control.Alert;%0Aimport javafx.scene.control.Label;%0Aimport javafx.scene.control.TextArea;%0Aimport javafx.scene.layout.GridPane;%0Aimport javafx.scene.layout.Priority;%0A%0Aimport java.io.PrintWriter;%0Aimport java.io.StringWriter;%0A%0Apublic final class Dialog %7B%0A    private Dialog() %7B%0A    %7D%0A    public static void createExceptionDialog(final String message, final Exception ex) %7B%0A        Alert alert = new Alert(Alert.AlertType.ERROR);%0A        alert.setTitle(%22Exception Dialog%22);%0A        alert.setContentText(message);%0A%0A        // Create expandable Exception.%0A        StringWriter sw = new StringWriter();%0A        PrintWriter pw = new PrintWriter(sw);%0A        ex.printStackTrace(pw);%0A        String exceptionText = sw.toString();%0A%0A        Label label = new Label(%22The exception stacktrace was:%22);%0A%0A        TextArea textArea = new TextArea(exceptionText);%0A        textArea.setEditable(false);%0A        textArea.setWrapText(true);%0A%0A        textArea.setMaxWidth(Double.MAX_VALUE);%0A        textArea.setMaxHeight(Double.MAX_VALUE);%0A        GridPane.setVgrow(textArea, Priority.ALWAYS);%0A        GridPane.setHgrow(textArea, Priority.ALWAYS);%0A%0A        GridPane expContent = new GridPane();%0A        expContent.setMaxWidth(Double.MAX_VALUE);%0A        expContent.add(label, 0, 0);%0A        expContent.add(textArea, 0, 1);%0A%0A        // Set expandable Exception into the dialog pane.%0A        alert.getDialogPane().setExpandableContent(expContent);%0A        alert.showAndWait();%0A    %7D%0A%7D%0A

Add class Dialog