summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/gui
diff options
context:
space:
mode:
authorGravatar Thog2016-08-12 19:59:54 +0200
committerGravatar Thog2016-08-12 19:59:54 +0200
commit6032f55ede3c1b550cfd83b2f768926c992d9a98 (patch)
tree75aa7866c2dd635d03798819ea0e691ec85f2247 /src/main/java/cuchaz/enigma/gui
parentImplement Enigma directory format (#1) (diff)
downloadenigma-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.java17
-rw-r--r--src/main/java/cuchaz/enigma/gui/GuiController.java16
-rw-r--r--src/main/java/cuchaz/enigma/gui/elements/MenuBar.java54
-rw-r--r--src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java2
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 });