From 6c90b5f41ec9ea8c512981e4dbe69d5d9769651f Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Thu, 11 Aug 2016 14:18:43 +0100 Subject: Allow exporting mappings as SRG or Enigma --- src/main/java/cuchaz/enigma/gui/Gui.java | 4 +++ src/main/java/cuchaz/enigma/gui/GuiController.java | 12 ++++++++ .../java/cuchaz/enigma/gui/elements/MenuBar.java | 34 ++++++++++++++++++++++ 3 files changed, 50 insertions(+) (limited to 'src/main/java/cuchaz/enigma/gui') diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java index d93aa9f..5b0b599 100644 --- a/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/src/main/java/cuchaz/enigma/gui/Gui.java @@ -319,6 +319,8 @@ public class Gui { this.menuBar.openMappingsMenu.setEnabled(true); this.menuBar.saveMappingsMenu.setEnabled(false); this.menuBar.saveMappingsAsMenu.setEnabled(true); + this.menuBar.saveMappingsOldMenu.setEnabled(true); + this.menuBar.saveMappingsSrgMenu.setEnabled(true); this.menuBar.closeMappingsMenu.setEnabled(true); this.menuBar.exportSourceMenu.setEnabled(true); this.menuBar.exportJarMenu.setEnabled(true); @@ -340,6 +342,8 @@ public class Gui { this.menuBar.openMappingsMenu.setEnabled(false); this.menuBar.saveMappingsMenu.setEnabled(false); this.menuBar.saveMappingsAsMenu.setEnabled(false); + this.menuBar.saveMappingsOldMenu.setEnabled(false); + this.menuBar.saveMappingsSrgMenu.setEnabled(false); this.menuBar.closeMappingsMenu.setEnabled(false); this.menuBar.exportSourceMenu.setEnabled(false); this.menuBar.exportJarMenu.setEnabled(false); diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java index c301594..fe7d097 100644 --- a/src/main/java/cuchaz/enigma/gui/GuiController.java +++ b/src/main/java/cuchaz/enigma/gui/GuiController.java @@ -17,6 +17,7 @@ import com.strobel.decompiler.languages.java.ast.CompilationUnit; import java.io.File; import java.io.FileReader; +import java.io.FileWriter; import java.io.IOException; import java.util.Collection; import java.util.Deque; @@ -87,6 +88,17 @@ public class GuiController { this.isDirty = false; } + public void saveOldMappings(File file) throws IOException { + FileWriter out = new FileWriter(file); + new MappingsOldWriter().write(out, this.deobfuscator.getMappings()); + this.isDirty = false; + } + + public void saveSRGMappings(File file) throws IOException { + new MappingsSRGWriter().write(file, this.deobfuscator); + this.isDirty = false; + } + public void closeMappings() { this.deobfuscator.setMappings(null); this.gui.setMappingsFile(null); diff --git a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java index e870334..e79476b 100644 --- a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java +++ b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java @@ -22,6 +22,8 @@ public class MenuBar extends JMenuBar { public final JMenuItem saveMappingsMenu; public final JMenuItem saveMappingsAsMenu; + public final JMenuItem saveMappingsOldMenu; + public final JMenuItem saveMappingsSrgMenu; public final JMenuItem closeMappingsMenu; @@ -120,6 +122,38 @@ public class MenuBar extends JMenuBar { item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); this.saveMappingsAsMenu = item; } + { + JMenuItem item = new JMenuItem("Save Mappings as Enigma"); + menu.add(item); + item.addActionListener(event -> { + if (this.gui.mappingsFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { + try { + this.gui.getController().saveOldMappings(this.gui.mappingsFileChooser.getSelectedFile()); + this.saveMappingsMenu.setEnabled(true); + } catch (IOException ex) { + throw new Error(ex); + } + } + }); + item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); + this.saveMappingsOldMenu = item; + } + { + JMenuItem item = new JMenuItem("Save Mappings as SRG"); + menu.add(item); + item.addActionListener(event -> { + if (this.gui.mappingsFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { + try { + this.gui.getController().saveSRGMappings(this.gui.mappingsFileChooser.getSelectedFile()); + this.saveMappingsMenu.setEnabled(true); + } catch (IOException ex) { + throw new Error(ex); + } + } + }); + item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); + this.saveMappingsSrgMenu = item; + } { JMenuItem item = new JMenuItem("Close Mappings"); menu.add(item); -- cgit v1.2.3