diff options
| author | 2016-08-12 19:59:54 +0200 | |
|---|---|---|
| committer | 2016-08-12 19:59:54 +0200 | |
| commit | 6032f55ede3c1b550cfd83b2f768926c992d9a98 (patch) | |
| tree | 75aa7866c2dd635d03798819ea0e691ec85f2247 /src/main/java/cuchaz/enigma/gui | |
| parent | Implement Enigma directory format (#1) (diff) | |
| download | enigma-fork-6032f55ede3c1b550cfd83b2f768926c992d9a98.tar.gz enigma-fork-6032f55ede3c1b550cfd83b2f768926c992d9a98.tar.xz enigma-fork-6032f55ede3c1b550cfd83b2f768926c992d9a98.zip | |
Remoe JSON directory format support and clean up others things
Diffstat (limited to 'src/main/java/cuchaz/enigma/gui')
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/Gui.java | 17 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/GuiController.java | 16 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/elements/MenuBar.java | 54 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java | 2 |
4 files changed, 22 insertions, 67 deletions
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java index 2269476..262c8b6 100644 --- a/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/src/main/java/cuchaz/enigma/gui/Gui.java | |||
| @@ -79,7 +79,6 @@ public class Gui { | |||
| 79 | public EntryReference<Entry, Entry> m_reference; | 79 | public EntryReference<Entry, Entry> m_reference; |
| 80 | 80 | ||
| 81 | public JFileChooser jarFileChooser; | 81 | public JFileChooser jarFileChooser; |
| 82 | public JFileChooser jsonMappingsFileChooser; | ||
| 83 | public JFileChooser enigmaMappingsFileChooser; | 82 | public JFileChooser enigmaMappingsFileChooser; |
| 84 | 83 | ||
| 85 | public JFileChooser exportSourceFileChooser; | 84 | public JFileChooser exportSourceFileChooser; |
| @@ -107,7 +106,6 @@ public class Gui { | |||
| 107 | 106 | ||
| 108 | // init file choosers | 107 | // init file choosers |
| 109 | this.jarFileChooser = new FileChooserFile(); | 108 | this.jarFileChooser = new FileChooserFile(); |
| 110 | this.jsonMappingsFileChooser = new FileChooserFolder(); | ||
| 111 | 109 | ||
| 112 | 110 | ||
| 113 | this.enigmaMappingsFileChooser = new FileChooserAny(); | 111 | this.enigmaMappingsFileChooser = new FileChooserAny(); |
| @@ -317,9 +315,7 @@ public class Gui { | |||
| 317 | // update menu | 315 | // update menu |
| 318 | this.menuBar.closeJarMenu.setEnabled(true); | 316 | this.menuBar.closeJarMenu.setEnabled(true); |
| 319 | this.menuBar.openEnigmaMappingsMenu.setEnabled(true); | 317 | this.menuBar.openEnigmaMappingsMenu.setEnabled(true); |
| 320 | this.menuBar.openMappingsJsonMenu.setEnabled(true); | ||
| 321 | this.menuBar.saveMappingsMenu.setEnabled(false); | 318 | this.menuBar.saveMappingsMenu.setEnabled(false); |
| 322 | this.menuBar.saveMappingsJsonMenu.setEnabled(true); | ||
| 323 | this.menuBar.saveMappingEnigmaFileMenu.setEnabled(true); | 319 | this.menuBar.saveMappingEnigmaFileMenu.setEnabled(true); |
| 324 | this.menuBar.saveMappingEnigmaDirectoryMenu.setEnabled(true); | 320 | this.menuBar.saveMappingEnigmaDirectoryMenu.setEnabled(true); |
| 325 | this.menuBar.saveMappingsSrgMenu.setEnabled(true); | 321 | this.menuBar.saveMappingsSrgMenu.setEnabled(true); |
| @@ -341,9 +337,7 @@ public class Gui { | |||
| 341 | // update menu | 337 | // update menu |
| 342 | this.menuBar.closeJarMenu.setEnabled(false); | 338 | this.menuBar.closeJarMenu.setEnabled(false); |
| 343 | this.menuBar.openEnigmaMappingsMenu.setEnabled(false); | 339 | this.menuBar.openEnigmaMappingsMenu.setEnabled(false); |
| 344 | this.menuBar.openMappingsJsonMenu.setEnabled(false); | ||
| 345 | this.menuBar.saveMappingsMenu.setEnabled(false); | 340 | this.menuBar.saveMappingsMenu.setEnabled(false); |
| 346 | this.menuBar.saveMappingsJsonMenu.setEnabled(false); | ||
| 347 | this.menuBar.saveMappingEnigmaFileMenu.setEnabled(false); | 341 | this.menuBar.saveMappingEnigmaFileMenu.setEnabled(false); |
| 348 | this.menuBar.saveMappingEnigmaDirectoryMenu.setEnabled(false); | 342 | this.menuBar.saveMappingEnigmaDirectoryMenu.setEnabled(false); |
| 349 | this.menuBar.saveMappingsSrgMenu.setEnabled(false); | 343 | this.menuBar.saveMappingsSrgMenu.setEnabled(false); |
| @@ -363,7 +357,7 @@ public class Gui { | |||
| 363 | } | 357 | } |
| 364 | 358 | ||
| 365 | public void setMappingsFile(File file) { | 359 | public void setMappingsFile(File file) { |
| 366 | this.jsonMappingsFileChooser.setSelectedFile(file); | 360 | this.enigmaMappingsFileChooser.setSelectedFile(file); |
| 367 | this.menuBar.saveMappingsMenu.setEnabled(file != null); | 361 | this.menuBar.saveMappingsMenu.setEnabled(file != null); |
| 368 | } | 362 | } |
| 369 | 363 | ||
| @@ -564,6 +558,8 @@ public class Gui { | |||
| 564 | case KeyEvent.VK_ESCAPE: | 558 | case KeyEvent.VK_ESCAPE: |
| 565 | finishRename(text, false); | 559 | finishRename(text, false); |
| 566 | break; | 560 | break; |
| 561 | default: | ||
| 562 | break; | ||
| 567 | } | 563 | } |
| 568 | } | 564 | } |
| 569 | }); | 565 | }); |
| @@ -668,7 +664,6 @@ public class Gui { | |||
| 668 | } | 664 | } |
| 669 | 665 | ||
| 670 | public void showCalls() { | 666 | public void showCalls() { |
| 671 | |||
| 672 | if (m_reference == null) { | 667 | if (m_reference == null) { |
| 673 | return; | 668 | return; |
| 674 | } | 669 | } |
| @@ -724,9 +719,9 @@ public class Gui { | |||
| 724 | JOptionPane.QUESTION_MESSAGE, null, options, options[2]); | 719 | JOptionPane.QUESTION_MESSAGE, null, options, options[2]); |
| 725 | switch (response) { | 720 | switch (response) { |
| 726 | case JOptionPane.YES_OPTION: // save and exit | 721 | case JOptionPane.YES_OPTION: // save and exit |
| 727 | if (this.jsonMappingsFileChooser.getSelectedFile() != null || this.jsonMappingsFileChooser.showSaveDialog(this.frame) == JFileChooser.APPROVE_OPTION) { | 722 | if (this.enigmaMappingsFileChooser.getSelectedFile() != null || this.enigmaMappingsFileChooser.showSaveDialog(this.frame) == JFileChooser.APPROVE_OPTION) { |
| 728 | try { | 723 | try { |
| 729 | this.controller.saveMappings(this.jsonMappingsFileChooser.getCurrentDirectory()); | 724 | this.controller.saveMappings(this.enigmaMappingsFileChooser.getCurrentDirectory()); |
| 730 | this.frame.dispose(); | 725 | this.frame.dispose(); |
| 731 | } catch (IOException ex) { | 726 | } catch (IOException ex) { |
| 732 | throw new Error(ex); | 727 | throw new Error(ex); |
| @@ -738,6 +733,8 @@ public class Gui { | |||
| 738 | // don't save, exit | 733 | // don't save, exit |
| 739 | this.frame.dispose(); | 734 | this.frame.dispose(); |
| 740 | break; | 735 | break; |
| 736 | default: | ||
| 737 | break; | ||
| 741 | 738 | ||
| 742 | // cancel means do nothing | 739 | // cancel means do nothing |
| 743 | } | 740 | } |
diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java index d416345..68f7c56 100644 --- a/src/main/java/cuchaz/enigma/gui/GuiController.java +++ b/src/main/java/cuchaz/enigma/gui/GuiController.java | |||
| @@ -72,14 +72,6 @@ public class GuiController { | |||
| 72 | refreshCurrentClass(); | 72 | refreshCurrentClass(); |
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | public void openJsonMappings(File file) throws IOException { | ||
| 76 | this.deobfuscator.setMappings(new MappingsJsonReader().read(file)); | ||
| 77 | this.isDirty = false; | ||
| 78 | this.gui.setMappingsFile(file); | ||
| 79 | refreshClasses(); | ||
| 80 | refreshCurrentClass(); | ||
| 81 | } | ||
| 82 | |||
| 83 | public void saveMappings(File file) throws IOException { | 75 | public void saveMappings(File file) throws IOException { |
| 84 | Mappings mappings = this.deobfuscator.getMappings(); | 76 | Mappings mappings = this.deobfuscator.getMappings(); |
| 85 | switch (mappings.getOriginMappingFormat()) | 77 | switch (mappings.getOriginMappingFormat()) |
| @@ -87,9 +79,6 @@ public class GuiController { | |||
| 87 | case SRG_FILE: | 79 | case SRG_FILE: |
| 88 | saveSRGMappings(file); | 80 | saveSRGMappings(file); |
| 89 | break; | 81 | break; |
| 90 | case JSON_DIRECTORY: | ||
| 91 | saveJsonMappings(file); | ||
| 92 | break; | ||
| 93 | default: | 82 | default: |
| 94 | saveEnigmaMappings(file, Mappings.FormatType.ENIGMA_FILE != mappings.getOriginMappingFormat()); | 83 | saveEnigmaMappings(file, Mappings.FormatType.ENIGMA_FILE != mappings.getOriginMappingFormat()); |
| 95 | break; | 84 | break; |
| @@ -97,11 +86,6 @@ public class GuiController { | |||
| 97 | 86 | ||
| 98 | } | 87 | } |
| 99 | 88 | ||
| 100 | public void saveJsonMappings(File file) throws IOException { | ||
| 101 | new MappingsJsonWriter().write(file, this.deobfuscator.getMappings()); | ||
| 102 | this.isDirty = false; | ||
| 103 | } | ||
| 104 | |||
| 105 | public void saveEnigmaMappings(File file, boolean isDirectoryFormat) throws IOException { | 89 | public void saveEnigmaMappings(File file, boolean isDirectoryFormat) throws IOException { |
| 106 | new MappingsEnigmaWriter().write(file, this.deobfuscator.getMappings(), isDirectoryFormat); | 90 | new MappingsEnigmaWriter().write(file, this.deobfuscator.getMappings(), isDirectoryFormat); |
| 107 | this.isDirty = false; | 91 | this.isDirty = false; |
diff --git a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java index e988d74..038698b 100644 --- a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java +++ b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java | |||
| @@ -17,11 +17,9 @@ public class MenuBar extends JMenuBar { | |||
| 17 | 17 | ||
| 18 | public final JMenuItem closeJarMenu; | 18 | public final JMenuItem closeJarMenu; |
| 19 | 19 | ||
| 20 | public final JMenuItem openMappingsJsonMenu; | ||
| 21 | public final JMenuItem openEnigmaMappingsMenu; | 20 | public final JMenuItem openEnigmaMappingsMenu; |
| 22 | 21 | ||
| 23 | public final JMenuItem saveMappingsMenu; | 22 | public final JMenuItem saveMappingsMenu; |
| 24 | public final JMenuItem saveMappingsJsonMenu; | ||
| 25 | public final JMenuItem saveMappingEnigmaFileMenu; | 23 | public final JMenuItem saveMappingEnigmaFileMenu; |
| 26 | public final JMenuItem saveMappingEnigmaDirectoryMenu; | 24 | public final JMenuItem saveMappingEnigmaDirectoryMenu; |
| 27 | public final JMenuItem saveMappingsSrgMenu; | 25 | public final JMenuItem saveMappingsSrgMenu; |
| @@ -64,6 +62,7 @@ public class MenuBar extends JMenuBar { | |||
| 64 | } | 62 | } |
| 65 | menu.addSeparator(); | 63 | menu.addSeparator(); |
| 66 | JMenu openMenu = new JMenu("Open Mappings..."); | 64 | JMenu openMenu = new JMenu("Open Mappings..."); |
| 65 | menu.add(openMenu); | ||
| 67 | { | 66 | { |
| 68 | JMenuItem item = new JMenuItem("Enigma"); | 67 | JMenuItem item = new JMenuItem("Enigma"); |
| 69 | openMenu.add(item); | 68 | openMenu.add(item); |
| @@ -80,27 +79,12 @@ public class MenuBar extends JMenuBar { | |||
| 80 | }); | 79 | }); |
| 81 | this.openEnigmaMappingsMenu = item; | 80 | this.openEnigmaMappingsMenu = item; |
| 82 | } | 81 | } |
| 83 | menu.add(openMenu); | ||
| 84 | { | ||
| 85 | JMenuItem item = new JMenuItem("JSON (directory)"); | ||
| 86 | openMenu.add(item); | ||
| 87 | item.addActionListener(event -> { | ||
| 88 | if (this.gui.jsonMappingsFileChooser.showOpenDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { | ||
| 89 | try { | ||
| 90 | this.gui.getController().openJsonMappings(this.gui.jsonMappingsFileChooser.getSelectedFile()); | ||
| 91 | } catch (IOException ex) { | ||
| 92 | throw new Error(ex); | ||
| 93 | } | ||
| 94 | } | ||
| 95 | }); | ||
| 96 | this.openMappingsJsonMenu = item; | ||
| 97 | } | ||
| 98 | { | 82 | { |
| 99 | JMenuItem item = new JMenuItem("Save Mappings"); | 83 | JMenuItem item = new JMenuItem("Save Mappings"); |
| 100 | menu.add(item); | 84 | menu.add(item); |
| 101 | item.addActionListener(event -> { | 85 | item.addActionListener(event -> { |
| 102 | try { | 86 | try { |
| 103 | this.gui.getController().saveMappings(this.gui.jsonMappingsFileChooser.getSelectedFile()); | 87 | this.gui.getController().saveMappings(this.gui.enigmaMappingsFileChooser.getSelectedFile()); |
| 104 | } catch (IOException ex) { | 88 | } catch (IOException ex) { |
| 105 | throw new Error(ex); | 89 | throw new Error(ex); |
| 106 | } | 90 | } |
| @@ -109,13 +93,15 @@ public class MenuBar extends JMenuBar { | |||
| 109 | this.saveMappingsMenu = item; | 93 | this.saveMappingsMenu = item; |
| 110 | } | 94 | } |
| 111 | JMenu saveMenu = new JMenu("Save Mappings As..."); | 95 | JMenu saveMenu = new JMenu("Save Mappings As..."); |
| 96 | menu.add(saveMenu); | ||
| 112 | { | 97 | { |
| 113 | JMenuItem item = new JMenuItem("Enigma (single file)"); | 98 | JMenuItem item = new JMenuItem("Enigma (single file)"); |
| 114 | saveMenu.add(item); | 99 | saveMenu.add(item); |
| 115 | item.addActionListener(event -> { | 100 | item.addActionListener(event -> { |
| 116 | if (this.gui.jsonMappingsFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { | 101 | // TODO: Use a specific file chooser for it |
| 102 | if (this.gui.enigmaMappingsFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { | ||
| 117 | try { | 103 | try { |
| 118 | this.gui.getController().saveEnigmaMappings(this.gui.jsonMappingsFileChooser.getSelectedFile(), false); | 104 | this.gui.getController().saveEnigmaMappings(this.gui.enigmaMappingsFileChooser.getSelectedFile(), false); |
| 119 | this.saveMappingsMenu.setEnabled(true); | 105 | this.saveMappingsMenu.setEnabled(true); |
| 120 | } catch (IOException ex) { | 106 | } catch (IOException ex) { |
| 121 | throw new Error(ex); | 107 | throw new Error(ex); |
| @@ -128,9 +114,10 @@ public class MenuBar extends JMenuBar { | |||
| 128 | JMenuItem item = new JMenuItem("Enigma (directory)"); | 114 | JMenuItem item = new JMenuItem("Enigma (directory)"); |
| 129 | saveMenu.add(item); | 115 | saveMenu.add(item); |
| 130 | item.addActionListener(event -> { | 116 | item.addActionListener(event -> { |
| 131 | if (this.gui.jsonMappingsFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { | 117 | // TODO: Use a specific file chooser for it |
| 118 | if (this.gui.enigmaMappingsFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { | ||
| 132 | try { | 119 | try { |
| 133 | this.gui.getController().saveEnigmaMappings(this.gui.jsonMappingsFileChooser.getSelectedFile(), true); | 120 | this.gui.getController().saveEnigmaMappings(this.gui.enigmaMappingsFileChooser.getSelectedFile(), true); |
| 134 | this.saveMappingsMenu.setEnabled(true); | 121 | this.saveMappingsMenu.setEnabled(true); |
| 135 | } catch (IOException ex) { | 122 | } catch (IOException ex) { |
| 136 | throw new Error(ex); | 123 | throw new Error(ex); |
| @@ -140,29 +127,14 @@ public class MenuBar extends JMenuBar { | |||
| 140 | item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); | 127 | item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)); |
| 141 | this.saveMappingEnigmaDirectoryMenu = item; | 128 | this.saveMappingEnigmaDirectoryMenu = item; |
| 142 | } | 129 | } |
| 143 | menu.add(saveMenu); | ||
| 144 | { | ||
| 145 | JMenuItem item = new JMenuItem("JSON (directory)"); | ||
| 146 | saveMenu.add(item); | ||
| 147 | item.addActionListener(event -> { | ||
| 148 | if (this.gui.jsonMappingsFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { | ||
| 149 | try { | ||
| 150 | this.gui.getController().saveJsonMappings(this.gui.jsonMappingsFileChooser.getSelectedFile()); | ||
| 151 | this.saveMappingsMenu.setEnabled(true); | ||
| 152 | } catch (IOException ex) { | ||
| 153 | throw new Error(ex); | ||
| 154 | } | ||
| 155 | } | ||
| 156 | }); | ||
| 157 | this.saveMappingsJsonMenu = item; | ||
| 158 | } | ||
| 159 | { | 130 | { |
| 160 | JMenuItem item = new JMenuItem("SRG"); | 131 | JMenuItem item = new JMenuItem("SRG (single file)"); |
| 161 | saveMenu.add(item); | 132 | saveMenu.add(item); |
| 162 | item.addActionListener(event -> { | 133 | item.addActionListener(event -> { |
| 163 | if (this.gui.jsonMappingsFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { | 134 | // TODO: Use a specific file chooser for it |
| 135 | if (this.gui.enigmaMappingsFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { | ||
| 164 | try { | 136 | try { |
| 165 | this.gui.getController().saveSRGMappings(this.gui.jsonMappingsFileChooser.getSelectedFile()); | 137 | this.gui.getController().saveSRGMappings(this.gui.enigmaMappingsFileChooser.getSelectedFile()); |
| 166 | this.saveMappingsMenu.setEnabled(true); | 138 | this.saveMappingsMenu.setEnabled(true); |
| 167 | } catch (IOException ex) { | 139 | } catch (IOException ex) { |
| 168 | throw new Error(ex); | 140 | throw new Error(ex); |
diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java index 6237710..1c0ee9e 100644 --- a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java +++ b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java | |||
| @@ -50,6 +50,8 @@ public class PanelEditor extends JEditorPane { | |||
| 50 | case KeyEvent.VK_T: | 50 | case KeyEvent.VK_T: |
| 51 | gui.popupMenu.toggleMappingMenu.doClick(); | 51 | gui.popupMenu.toggleMappingMenu.doClick(); |
| 52 | break; | 52 | break; |
| 53 | default: | ||
| 54 | break; | ||
| 53 | } | 55 | } |
| 54 | } | 56 | } |
| 55 | }); | 57 | }); |