From 54a23336a06e43bfb2c19c7cdead5594f06edd16 Mon Sep 17 00:00:00 2001 From: Samir Mokiem Date: Sat, 4 Apr 2020 17:59:41 +0200 Subject: Added export functionality to CrashDialog.java (#208) * Added export functionality to CrashDialog.java * Update french crash.export translation Co-Authored-By: Yanis48 Co-authored-by: Yanis48 --- .../java/cuchaz/enigma/gui/dialog/CrashDialog.java | 24 +++++++++++++++++++--- src/main/resources/lang/en_us.json | 1 + src/main/resources/lang/fr_fr.json | 1 + 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java b/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java index 7e66ecd..3921b51 100644 --- a/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java +++ b/src/main/java/cuchaz/enigma/gui/dialog/CrashDialog.java @@ -19,6 +19,9 @@ import javax.swing.*; import java.awt.*; import java.io.PrintWriter; import java.io.StringWriter; +import java.io.FileWriter; +import java.io.File; +import java.io.IOException; public class CrashDialog { @@ -44,9 +47,24 @@ public class CrashDialog { // buttons panel JPanel buttonsPanel = new JPanel(); - FlowLayout buttonsLayout = new FlowLayout(); - buttonsLayout.setAlignment(FlowLayout.RIGHT); - buttonsPanel.setLayout(buttonsLayout); + buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.LINE_AXIS)); + JButton exportButton = new JButton(I18n.translate("crash.export")); + exportButton.addActionListener(event -> { + JFileChooser chooser = new JFileChooser(); + chooser.setSelectedFile(new File("enigma_crash.log")); + if (chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) { + try { + File file = chooser.getSelectedFile(); + FileWriter writer = new FileWriter(file); + writer.write(instance.text.getText()); + writer.close(); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + }); + buttonsPanel.add(exportButton); + buttonsPanel.add(Box.createHorizontalGlue()); buttonsPanel.add(Utils.unboldLabel(new JLabel(I18n.translate("crash.exit.warning")))); JButton ignoreButton = new JButton(I18n.translate("crash.ignore")); ignoreButton.addActionListener(event -> { diff --git a/src/main/resources/lang/en_us.json b/src/main/resources/lang/en_us.json index dbba198..9c114bb 100644 --- a/src/main/resources/lang/en_us.json +++ b/src/main/resources/lang/en_us.json @@ -111,6 +111,7 @@ "crash.title": "%s - Crash Report", "crash.summary": "%s has crashed! =(", + "crash.export": "Export", "crash.ignore": "Ignore", "crash.exit": "Exit", "crash.exit.warning": "If you choose exit, you will lose any unsaved work." diff --git a/src/main/resources/lang/fr_fr.json b/src/main/resources/lang/fr_fr.json index 5c4c514..cbd56d0 100644 --- a/src/main/resources/lang/fr_fr.json +++ b/src/main/resources/lang/fr_fr.json @@ -110,6 +110,7 @@ "crash.title": "%s - Rapport de plantage", "crash.summary": "%s a planté ! =(", + "crash.export": "Exporter", "crash.ignore": "Ignorer", "crash.exit": "Quitter", "crash.exit.warning": "Si vous choisissez Quitter, vous perdrez tout travail non sauvegardé." -- cgit v1.2.3