summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/gui/elements
diff options
context:
space:
mode:
authorGravatar lclc982016-07-03 00:05:04 +1000
committerGravatar lclc982016-07-03 00:05:04 +1000
commit9a3e5a9d132735f818c379ba72c554362650690d (patch)
tree2a454f96d99bdcfc5bdf0f6814a2ea7857698d1b /src/main/java/cuchaz/enigma/gui/elements
parentFixed #4 (diff)
downloadenigma-fork-9a3e5a9d132735f818c379ba72c554362650690d.tar.gz
enigma-fork-9a3e5a9d132735f818c379ba72c554362650690d.tar.xz
enigma-fork-9a3e5a9d132735f818c379ba72c554362650690d.zip
Started Gui Refactor
Diffstat (limited to 'src/main/java/cuchaz/enigma/gui/elements')
-rw-r--r--src/main/java/cuchaz/enigma/gui/elements/MenuBar.java169
-rw-r--r--src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java82
2 files changed, 251 insertions, 0 deletions
diff --git a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
new file mode 100644
index 0000000..233d55e
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
@@ -0,0 +1,169 @@
1package cuchaz.enigma.gui.elements;
2
3import java.awt.event.InputEvent;
4import java.awt.event.KeyEvent;
5import java.io.IOException;
6import java.util.jar.JarFile;
7
8import javax.swing.*;
9
10import cuchaz.enigma.gui.Gui;
11import cuchaz.enigma.gui.dialog.AboutDialog;
12import cuchaz.enigma.mapping.MappingParseException;
13
14public class MenuBar extends JMenuBar {
15
16 private final Gui gui;
17
18 public final JMenuItem closeJarMenu;
19
20 public final JMenuItem openMappingsMenu;
21 public final JMenuItem openOldMappingsMenu;
22
23 public final JMenuItem saveMappingsMenu;
24 public final JMenuItem saveMappingsAsMenu;
25 public final JMenuItem closeMappingsMenu;
26
27
28 public final JMenuItem exportSourceMenu;
29 public final JMenuItem exportJarMenu;
30
31 public MenuBar(Gui gui) {
32 this.gui = gui;
33
34 {
35 JMenu menu = new JMenu("File");
36 this.add(menu);
37 {
38 JMenuItem item = new JMenuItem("Open Jar...");
39 menu.add(item);
40 item.addActionListener(event -> {
41 if (this.gui.jarFileChooser.showOpenDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) {
42 // load the jar in a separate thread
43 new Thread() {
44 @Override
45 public void run() {
46 try {
47 gui.getController().openJar(new JarFile(gui.jarFileChooser.getSelectedFile()));
48 } catch (IOException ex) {
49 throw new Error(ex);
50 }
51 }
52 }.start();
53 }
54 });
55 }
56 {
57 JMenuItem item = new JMenuItem("Close Jar");
58 menu.add(item);
59 item.addActionListener(event -> this.gui.getController().closeJar());
60 this.closeJarMenu = item;
61 }
62 menu.addSeparator();
63 {
64 JMenuItem item = new JMenuItem("Open Mappings...");
65 menu.add(item);
66 item.addActionListener(event -> {
67 if (this.gui.mappingsFileChooser.showOpenDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) {
68 try {
69 this.gui.getController().openMappings(this.gui.mappingsFileChooser.getSelectedFile());
70 } catch (IOException ex) {
71 throw new Error(ex);
72 } catch (MappingParseException ex) {
73 JOptionPane.showMessageDialog(this.gui.getFrame(), ex.getMessage());
74 }
75 }
76 });
77 this.openMappingsMenu = item;
78 }
79 {
80 JMenuItem item = new JMenuItem("Open Old Mappings...");
81 menu.add(item);
82 item.addActionListener(event -> {
83 if (this.gui.oldMappingsFileChooser.showOpenDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) {
84 try {
85 this.gui.getController().openOldMappings(this.gui.oldMappingsFileChooser.getSelectedFile());
86 } catch (IOException ex) {
87 throw new Error(ex);
88 } catch (MappingParseException ex) {
89 JOptionPane.showMessageDialog(this.gui.getFrame(), ex.getMessage());
90 }
91 }
92 });
93 this.openOldMappingsMenu = item;
94 }
95 menu.addSeparator();
96 {
97 JMenuItem item = new JMenuItem("Save Mappings");
98 menu.add(item);
99 item.addActionListener(event -> {
100 try {
101 this.gui.getController().saveMappings(this.gui.mappingsFileChooser.getSelectedFile());
102 } catch (IOException ex) {
103 throw new Error(ex);
104 }
105 });
106 item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK));
107 this.saveMappingsMenu = item;
108 }
109 {
110 JMenuItem item = new JMenuItem("Save Mappings As...");
111 menu.add(item);
112 item.addActionListener(event -> {
113 if (this.gui.mappingsFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) {
114 try {
115 this.gui.getController().saveMappings(this.gui.mappingsFileChooser.getSelectedFile());
116 this.saveMappingsMenu.setEnabled(true);
117 } catch (IOException ex) {
118 throw new Error(ex);
119 }
120 }
121 });
122 item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK));
123 this.saveMappingsAsMenu = item;
124 }
125 {
126 JMenuItem item = new JMenuItem("Close Mappings");
127 menu.add(item);
128 item.addActionListener(event -> this.gui.getController().closeMappings());
129 this.closeMappingsMenu = item;
130 }
131 menu.addSeparator();
132 {
133 JMenuItem item = new JMenuItem("Export Source...");
134 menu.add(item);
135 item.addActionListener(event -> {
136 if (this.gui.exportSourceFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) {
137 this.gui.getController().exportSource(this.gui.exportSourceFileChooser.getSelectedFile());
138 }
139 });
140 this.exportSourceMenu = item;
141 }
142 {
143 JMenuItem item = new JMenuItem("Export Jar...");
144 menu.add(item);
145 item.addActionListener(event -> {
146 if (this.gui.exportJarFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) {
147 this.gui.getController().exportJar(this.gui.exportJarFileChooser.getSelectedFile());
148 }
149 });
150 this.exportJarMenu = item;
151 }
152 menu.addSeparator();
153 {
154 JMenuItem item = new JMenuItem("Exit");
155 menu.add(item);
156 item.addActionListener(event -> this.gui.close());
157 }
158 }
159 {
160 JMenu menu = new JMenu("Help");
161 this.add(menu);
162 {
163 JMenuItem item = new JMenuItem("About");
164 menu.add(item);
165 item.addActionListener(event -> AboutDialog.show(this.gui.getFrame()));
166 }
167 }
168 }
169}
diff --git a/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java
new file mode 100644
index 0000000..07c8a32
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java
@@ -0,0 +1,82 @@
1package cuchaz.enigma.gui.elements;
2
3import java.awt.event.KeyEvent;
4
5import javax.swing.JMenuItem;
6import javax.swing.JPopupMenu;
7import javax.swing.KeyStroke;
8
9import cuchaz.enigma.gui.Gui;
10
11public class PopupMenuBar extends JPopupMenu {
12
13 private final Gui gui;
14
15 public final JMenuItem renameMenu;
16 public final JMenuItem showInheritanceMenu;
17 public final JMenuItem showImplementationsMenu;
18 public final JMenuItem showCallsMenu;
19 public final JMenuItem openEntryMenu;
20 public final JMenuItem openPreviousMenu;
21 public final JMenuItem toggleMappingMenu;
22
23 public PopupMenuBar(Gui gui) {
24 this.gui = gui;
25 {
26 JMenuItem menu = new JMenuItem("Rename");
27 menu.addActionListener(event -> gui.startRename());
28 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, 0));
29 menu.setEnabled(false);
30 this.add(menu);
31 this.renameMenu = menu;
32 }
33 {
34 JMenuItem menu = new JMenuItem("Show Inheritance");
35 menu.addActionListener(event -> gui.showInheritance());
36 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, 0));
37 menu.setEnabled(false);
38 this.add(menu);
39 this.showInheritanceMenu = menu;
40 }
41 {
42 JMenuItem menu = new JMenuItem("Show Implementations");
43 menu.addActionListener(event -> gui.showImplementations());
44 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, 0));
45 menu.setEnabled(false);
46 this.add(menu);
47 this.showImplementationsMenu = menu;
48 }
49 {
50 JMenuItem menu = new JMenuItem("Show Calls");
51 menu.addActionListener(event -> gui.showCalls());
52 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, 0));
53 menu.setEnabled(false);
54 this.add(menu);
55 this.showCallsMenu = menu;
56 }
57 {
58 JMenuItem menu = new JMenuItem("Go to Declaration");
59 menu.addActionListener(event -> gui.navigateTo(gui.m_reference.entry));
60 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, 0));
61 menu.setEnabled(false);
62 this.add(menu);
63 this.openEntryMenu = menu;
64 }
65 {
66 JMenuItem menu = new JMenuItem("Go to previous");
67 menu.addActionListener(event -> gui.getController().openPreviousReference());
68 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, 0));
69 menu.setEnabled(false);
70 this.add(menu);
71 this.openPreviousMenu = menu;
72 }
73 {
74 JMenuItem menu = new JMenuItem("Mark as deobfuscated");
75 menu.addActionListener(event -> gui.toggleMapping());
76 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, 0));
77 menu.setEnabled(false);
78 this.add(menu);
79 this.toggleMappingMenu = menu;
80 }
81 }
82}