summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/gui/elements
diff options
context:
space:
mode:
authorGravatar modmuss502020-03-05 22:17:08 +0000
committerGravatar GitHub2020-03-05 22:17:08 +0000
commit863d40a1c1f6591ef1ee8594b12ae4b0942fe810 (patch)
tree614c0e3bc842e1ab50413dcc18b450c96224db10 /src/main/java/cuchaz/enigma/gui/elements
parentFix drop mappings not checking localVars (diff)
downloadenigma-fork-863d40a1c1f6591ef1ee8594b12ae4b0942fe810.tar.gz
enigma-fork-863d40a1c1f6591ef1ee8594b12ae4b0942fe810.tar.xz
enigma-fork-863d40a1c1f6591ef1ee8594b12ae4b0942fe810.zip
Made Enigma gui translatable (#193)
* made enigma gui translatable * key renamings * missed strings * string.format() & another missed string * cached content (thanks @liach) * added a dialog when changing language * better sentence * more %s * liach's requests * empty map * the last (?) missed strings * IT WORKS * French translation * Update fr_fr.json
Diffstat (limited to 'src/main/java/cuchaz/enigma/gui/elements')
-rw-r--r--src/main/java/cuchaz/enigma/gui/elements/MenuBar.java81
-rw-r--r--src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java21
2 files changed, 66 insertions, 36 deletions
diff --git a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
index cdcad05..50f0849 100644
--- a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
+++ b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
@@ -7,7 +7,7 @@ import cuchaz.enigma.gui.dialog.AboutDialog;
7import cuchaz.enigma.gui.dialog.SearchDialog; 7import cuchaz.enigma.gui.dialog.SearchDialog;
8import cuchaz.enigma.gui.stats.StatsMember; 8import cuchaz.enigma.gui.stats.StatsMember;
9import cuchaz.enigma.translation.mapping.serde.MappingFormat; 9import cuchaz.enigma.translation.mapping.serde.MappingFormat;
10import cuchaz.enigma.utils.Utils; 10import cuchaz.enigma.utils.I18n;
11 11
12import javax.swing.*; 12import javax.swing.*;
13import java.awt.*; 13import java.awt.*;
@@ -40,10 +40,10 @@ public class MenuBar extends JMenuBar {
40 this.gui = gui; 40 this.gui = gui;
41 41
42 { 42 {
43 JMenu menu = new JMenu("File"); 43 JMenu menu = new JMenu(I18n.translate("menu.file"));
44 this.add(menu); 44 this.add(menu);
45 { 45 {
46 JMenuItem item = new JMenuItem("Open Jar..."); 46 JMenuItem item = new JMenuItem(I18n.translate("menu.file.jar.open"));
47 menu.add(item); 47 menu.add(item);
48 item.addActionListener(event -> { 48 item.addActionListener(event -> {
49 this.gui.jarFileChooser.setVisible(true); 49 this.gui.jarFileChooser.setVisible(true);
@@ -54,19 +54,19 @@ public class MenuBar extends JMenuBar {
54 }); 54 });
55 } 55 }
56 { 56 {
57 JMenuItem item = new JMenuItem("Close Jar"); 57 JMenuItem item = new JMenuItem(I18n.translate("menu.file.jar.close"));
58 menu.add(item); 58 menu.add(item);
59 item.addActionListener(event -> this.gui.getController().closeJar()); 59 item.addActionListener(event -> this.gui.getController().closeJar());
60 this.closeJarMenu = item; 60 this.closeJarMenu = item;
61 } 61 }
62 menu.addSeparator(); 62 menu.addSeparator();
63 JMenu openMenu = new JMenu("Open Mappings..."); 63 JMenu openMenu = new JMenu(I18n.translate("menu.file.mappings.open"));
64 menu.add(openMenu); 64 menu.add(openMenu);
65 { 65 {
66 openMappingsMenus = new ArrayList<>(); 66 openMappingsMenus = new ArrayList<>();
67 for (MappingFormat format : MappingFormat.values()) { 67 for (MappingFormat format : MappingFormat.values()) {
68 if (format.getReader() != null) { 68 if (format.getReader() != null) {
69 JMenuItem item = new JMenuItem(Utils.caplisiseCamelCase(format.name())); 69 JMenuItem item = new JMenuItem(I18n.translate("mapping_format." + format.name().toLowerCase(Locale.ROOT)));
70 openMenu.add(item); 70 openMenu.add(item);
71 item.addActionListener(event -> { 71 item.addActionListener(event -> {
72 if (this.gui.enigmaMappingsFileChooser.showOpenDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { 72 if (this.gui.enigmaMappingsFileChooser.showOpenDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) {
@@ -79,7 +79,7 @@ public class MenuBar extends JMenuBar {
79 } 79 }
80 } 80 }
81 { 81 {
82 JMenuItem item = new JMenuItem("Save Mappings"); 82 JMenuItem item = new JMenuItem(I18n.translate("menu.file.mappings.save"));
83 menu.add(item); 83 menu.add(item);
84 item.addActionListener(event -> { 84 item.addActionListener(event -> {
85 this.gui.getController().saveMappings(this.gui.enigmaMappingsFileChooser.getSelectedFile().toPath()); 85 this.gui.getController().saveMappings(this.gui.enigmaMappingsFileChooser.getSelectedFile().toPath());
@@ -87,13 +87,13 @@ public class MenuBar extends JMenuBar {
87 item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK)); 87 item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK));
88 this.saveMappingsMenu = item; 88 this.saveMappingsMenu = item;
89 } 89 }
90 JMenu saveMenu = new JMenu("Save Mappings As..."); 90 JMenu saveMenu = new JMenu(I18n.translate("menu.file.mappings.save_as"));
91 menu.add(saveMenu); 91 menu.add(saveMenu);
92 { 92 {
93 saveMappingsMenus = new ArrayList<>(); 93 saveMappingsMenus = new ArrayList<>();
94 for (MappingFormat format : MappingFormat.values()) { 94 for (MappingFormat format : MappingFormat.values()) {
95 if (format.getWriter() != null) { 95 if (format.getWriter() != null) {
96 JMenuItem item = new JMenuItem(Utils.caplisiseCamelCase(format.name())); 96 JMenuItem item = new JMenuItem(I18n.translate("mapping_format." + format.name().toLowerCase(Locale.ROOT)));
97 saveMenu.add(item); 97 saveMenu.add(item);
98 item.addActionListener(event -> { 98 item.addActionListener(event -> {
99 // TODO: Use a specific file chooser for it 99 // TODO: Use a specific file chooser for it
@@ -107,7 +107,7 @@ public class MenuBar extends JMenuBar {
107 } 107 }
108 } 108 }
109 { 109 {
110 JMenuItem item = new JMenuItem("Close Mappings"); 110 JMenuItem item = new JMenuItem(I18n.translate("menu.file.mappings.close"));
111 menu.add(item); 111 menu.add(item);
112 item.addActionListener(event -> { 112 item.addActionListener(event -> {
113 if (this.gui.getController().isDirty()) { 113 if (this.gui.getController().isDirty()) {
@@ -118,7 +118,7 @@ public class MenuBar extends JMenuBar {
118 } else if (response == JOptionPane.NO_OPTION) 118 } else if (response == JOptionPane.NO_OPTION)
119 this.gui.getController().closeMappings(); 119 this.gui.getController().closeMappings();
120 return null; 120 return null;
121 }), "Save and close", "Discard changes", "Cancel"); 121 }), I18n.translate("prompt.close.save"), I18n.translate("prompt.close.discard"), I18n.translate("prompt.close.cancel"));
122 } else 122 } else
123 this.gui.getController().closeMappings(); 123 this.gui.getController().closeMappings();
124 124
@@ -126,14 +126,14 @@ public class MenuBar extends JMenuBar {
126 this.closeMappingsMenu = item; 126 this.closeMappingsMenu = item;
127 } 127 }
128 { 128 {
129 JMenuItem item = new JMenuItem("Drop Invalid Mappings"); 129 JMenuItem item = new JMenuItem(I18n.translate("menu.file.mappings.drop"));
130 menu.add(item); 130 menu.add(item);
131 item.addActionListener(event -> this.gui.getController().dropMappings()); 131 item.addActionListener(event -> this.gui.getController().dropMappings());
132 this.dropMappingsMenu = item; 132 this.dropMappingsMenu = item;
133 } 133 }
134 menu.addSeparator(); 134 menu.addSeparator();
135 { 135 {
136 JMenuItem item = new JMenuItem("Export Source..."); 136 JMenuItem item = new JMenuItem(I18n.translate("menu.file.export.source"));
137 menu.add(item); 137 menu.add(item);
138 item.addActionListener(event -> { 138 item.addActionListener(event -> {
139 if (this.gui.exportSourceFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) { 139 if (this.gui.exportSourceFileChooser.showSaveDialog(this.gui.getFrame()) == JFileChooser.APPROVE_OPTION) {
@@ -143,7 +143,7 @@ public class MenuBar extends JMenuBar {
143 this.exportSourceMenu = item; 143 this.exportSourceMenu = item;
144 } 144 }
145 { 145 {
146 JMenuItem item = new JMenuItem("Export Jar..."); 146 JMenuItem item = new JMenuItem(I18n.translate("menu.file.export.jar"));
147 menu.add(item); 147 menu.add(item);
148 item.addActionListener(event -> { 148 item.addActionListener(event -> {
149 this.gui.exportJarFileChooser.setVisible(true); 149 this.gui.exportJarFileChooser.setVisible(true);
@@ -156,22 +156,22 @@ public class MenuBar extends JMenuBar {
156 } 156 }
157 menu.addSeparator(); 157 menu.addSeparator();
158 { 158 {
159 JMenuItem stats = new JMenuItem("Mapping Stats..."); 159 JMenuItem stats = new JMenuItem(I18n.translate("menu.file.stats"));
160 160
161 stats.addActionListener(event -> { 161 stats.addActionListener(event -> {
162 JFrame frame = new JFrame("Choose Included Members"); 162 JFrame frame = new JFrame(I18n.translate("menu.file.stats.title"));
163 Container pane = frame.getContentPane(); 163 Container pane = frame.getContentPane();
164 pane.setLayout(new FlowLayout()); 164 pane.setLayout(new FlowLayout());
165 165
166 Map<StatsMember, JCheckBox> checkboxes = Arrays 166 Map<StatsMember, JCheckBox> checkboxes = Arrays
167 .stream(StatsMember.values()) 167 .stream(StatsMember.values())
168 .collect(Collectors.toMap(m -> m, m -> { 168 .collect(Collectors.toMap(m -> m, m -> {
169 JCheckBox checkbox = new JCheckBox(Utils.caplisiseCamelCase(m.name())); 169 JCheckBox checkbox = new JCheckBox(I18n.translate("type." + m.name().toLowerCase(Locale.ROOT)));
170 pane.add(checkbox); 170 pane.add(checkbox);
171 return checkbox; 171 return checkbox;
172 })); 172 }));
173 173
174 JButton button = new JButton("Generate Stats"); 174 JButton button = new JButton(I18n.translate("menu.file.stats.generate"));
175 175
176 button.addActionListener(e -> { 176 button.addActionListener(e -> {
177 Set<StatsMember> includedMembers = checkboxes 177 Set<StatsMember> includedMembers = checkboxes
@@ -195,24 +195,53 @@ public class MenuBar extends JMenuBar {
195 } 195 }
196 menu.addSeparator(); 196 menu.addSeparator();
197 { 197 {
198 JMenuItem item = new JMenuItem("Exit"); 198 JMenuItem item = new JMenuItem(I18n.translate("menu.file.exit"));
199 menu.add(item); 199 menu.add(item);
200 item.addActionListener(event -> this.gui.close()); 200 item.addActionListener(event -> this.gui.close());
201 } 201 }
202 } 202 }
203 { 203 {
204 JMenu menu = new JMenu("View"); 204 JMenu menu = new JMenu(I18n.translate("menu.view"));
205 this.add(menu); 205 this.add(menu);
206 { 206 {
207 JMenu themes = new JMenu("Themes"); 207 JMenu themes = new JMenu(I18n.translate("menu.view.themes"));
208 menu.add(themes); 208 menu.add(themes);
209 for (Config.LookAndFeel lookAndFeel : Config.LookAndFeel.values()) { 209 for (Config.LookAndFeel lookAndFeel : Config.LookAndFeel.values()) {
210 JMenuItem theme = new JMenuItem(lookAndFeel.getName()); 210 JMenuItem theme = new JMenuItem(I18n.translate("menu.view.themes." + lookAndFeel.name().toLowerCase(Locale.ROOT)));
211 themes.add(theme); 211 themes.add(theme);
212 theme.addActionListener(event -> Themes.setLookAndFeel(gui, lookAndFeel)); 212 theme.addActionListener(event -> Themes.setLookAndFeel(gui, lookAndFeel));
213 } 213 }
214
215 JMenu languages = new JMenu(I18n.translate("menu.view.languages"));
216 menu.add(languages);
217 for (String lang : I18n.getAvailableLanguages()) {
218 JMenuItem language = new JMenuItem(I18n.getLanguageName(lang));
219 languages.add(language);
220 language.addActionListener(event -> I18n.setLanguage(lang));
221 language.addActionListener(event -> {
222 JFrame frame = new JFrame(I18n.translate("menu.view.languages.title"));
223 Container pane = frame.getContentPane();
224 pane.setLayout(new FlowLayout());
225
226 JLabel text = new JLabel((I18n.translate("menu.view.languages.summary")));
227 text.setHorizontalAlignment(JLabel.CENTER);
228 pane.add(text);
229
230 JButton okButton = new JButton(I18n.translate("menu.view.languages.ok"));
231 okButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
232 okButton.setHorizontalAlignment(JButton.CENTER);
233 pane.add(okButton);
234 okButton.addActionListener(arg0 -> frame.dispose());
235
236 frame.setSize(350, 110);
237 frame.setResizable(false);
238 frame.setLocationRelativeTo(this.gui.getFrame());
239 frame.setVisible(true);
240 frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
241 });
242 }
214 243
215 JMenuItem search = new JMenuItem("Search"); 244 JMenuItem search = new JMenuItem(I18n.translate("menu.view.search"));
216 search.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, InputEvent.SHIFT_MASK)); 245 search.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, InputEvent.SHIFT_MASK));
217 menu.add(search); 246 menu.add(search);
218 search.addActionListener(event -> { 247 search.addActionListener(event -> {
@@ -224,15 +253,15 @@ public class MenuBar extends JMenuBar {
224 } 253 }
225 } 254 }
226 { 255 {
227 JMenu menu = new JMenu("Help"); 256 JMenu menu = new JMenu(I18n.translate("menu.help"));
228 this.add(menu); 257 this.add(menu);
229 { 258 {
230 JMenuItem item = new JMenuItem("About"); 259 JMenuItem item = new JMenuItem(I18n.translate("menu.help.about"));
231 menu.add(item); 260 menu.add(item);
232 item.addActionListener(event -> AboutDialog.show(this.gui.getFrame())); 261 item.addActionListener(event -> AboutDialog.show(this.gui.getFrame()));
233 } 262 }
234 { 263 {
235 JMenuItem item = new JMenuItem("GitHub Page"); 264 JMenuItem item = new JMenuItem(I18n.translate("menu.help.github"));
236 menu.add(item); 265 menu.add(item);
237 item.addActionListener(event -> { 266 item.addActionListener(event -> {
238 try { 267 try {
diff --git a/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java
index b9d459f..b0fb2b0 100644
--- a/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java
+++ b/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java
@@ -1,6 +1,7 @@
1package cuchaz.enigma.gui.elements; 1package cuchaz.enigma.gui.elements;
2 2
3import cuchaz.enigma.gui.Gui; 3import cuchaz.enigma.gui.Gui;
4import cuchaz.enigma.utils.I18n;
4 5
5import javax.swing.*; 6import javax.swing.*;
6import java.awt.event.InputEvent; 7import java.awt.event.InputEvent;
@@ -21,7 +22,7 @@ public class PopupMenuBar extends JPopupMenu {
21 22
22 public PopupMenuBar(Gui gui) { 23 public PopupMenuBar(Gui gui) {
23 { 24 {
24 JMenuItem menu = new JMenuItem("Rename"); 25 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.rename"));
25 menu.addActionListener(event -> gui.startRename()); 26 menu.addActionListener(event -> gui.startRename());
26 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, 0)); 27 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, 0));
27 menu.setEnabled(false); 28 menu.setEnabled(false);
@@ -29,7 +30,7 @@ public class PopupMenuBar extends JPopupMenu {
29 this.renameMenu = menu; 30 this.renameMenu = menu;
30 } 31 }
31 { 32 {
32 JMenuItem menu = new JMenuItem("Edit Javadoc"); 33 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.javadoc"));
33 menu.addActionListener(event -> gui.startDocChange()); 34 menu.addActionListener(event -> gui.startDocChange());
34 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, 0)); 35 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, 0));
35 menu.setEnabled(false); 36 menu.setEnabled(false);
@@ -37,7 +38,7 @@ public class PopupMenuBar extends JPopupMenu {
37 this.editJavadocMenu = menu; 38 this.editJavadocMenu = menu;
38 } 39 }
39 { 40 {
40 JMenuItem menu = new JMenuItem("Show Inheritance"); 41 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.inheritance"));
41 menu.addActionListener(event -> gui.showInheritance()); 42 menu.addActionListener(event -> gui.showInheritance());
42 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, 0)); 43 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, 0));
43 menu.setEnabled(false); 44 menu.setEnabled(false);
@@ -45,7 +46,7 @@ public class PopupMenuBar extends JPopupMenu {
45 this.showInheritanceMenu = menu; 46 this.showInheritanceMenu = menu;
46 } 47 }
47 { 48 {
48 JMenuItem menu = new JMenuItem("Show Implementations"); 49 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.implementations"));
49 menu.addActionListener(event -> gui.showImplementations()); 50 menu.addActionListener(event -> gui.showImplementations());
50 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, 0)); 51 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, 0));
51 menu.setEnabled(false); 52 menu.setEnabled(false);
@@ -53,7 +54,7 @@ public class PopupMenuBar extends JPopupMenu {
53 this.showImplementationsMenu = menu; 54 this.showImplementationsMenu = menu;
54 } 55 }
55 { 56 {
56 JMenuItem menu = new JMenuItem("Show Calls"); 57 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.calls"));
57 menu.addActionListener(event -> gui.showCalls(true)); 58 menu.addActionListener(event -> gui.showCalls(true));
58 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, 0)); 59 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, 0));
59 menu.setEnabled(false); 60 menu.setEnabled(false);
@@ -61,7 +62,7 @@ public class PopupMenuBar extends JPopupMenu {
61 this.showCallsMenu = menu; 62 this.showCallsMenu = menu;
62 } 63 }
63 { 64 {
64 JMenuItem menu = new JMenuItem("Show Calls (Specific)"); 65 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.calls.specific"));
65 menu.addActionListener(event -> gui.showCalls(false)); 66 menu.addActionListener(event -> gui.showCalls(false));
66 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.SHIFT_DOWN_MASK)); 67 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.SHIFT_DOWN_MASK));
67 menu.setEnabled(false); 68 menu.setEnabled(false);
@@ -69,7 +70,7 @@ public class PopupMenuBar extends JPopupMenu {
69 this.showCallsSpecificMenu = menu; 70 this.showCallsSpecificMenu = menu;
70 } 71 }
71 { 72 {
72 JMenuItem menu = new JMenuItem("Go to Declaration"); 73 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.declaration"));
73 menu.addActionListener(event -> gui.getController().navigateTo(gui.cursorReference.entry)); 74 menu.addActionListener(event -> gui.getController().navigateTo(gui.cursorReference.entry));
74 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, 0)); 75 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, 0));
75 menu.setEnabled(false); 76 menu.setEnabled(false);
@@ -77,7 +78,7 @@ public class PopupMenuBar extends JPopupMenu {
77 this.openEntryMenu = menu; 78 this.openEntryMenu = menu;
78 } 79 }
79 { 80 {
80 JMenuItem menu = new JMenuItem("Go back"); 81 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.back"));
81 menu.addActionListener(event -> gui.getController().openPreviousReference()); 82 menu.addActionListener(event -> gui.getController().openPreviousReference());
82 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, 0)); 83 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, 0));
83 menu.setEnabled(false); 84 menu.setEnabled(false);
@@ -85,7 +86,7 @@ public class PopupMenuBar extends JPopupMenu {
85 this.openPreviousMenu = menu; 86 this.openPreviousMenu = menu;
86 } 87 }
87 { 88 {
88 JMenuItem menu = new JMenuItem("Go forward"); 89 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.forward"));
89 menu.addActionListener(event -> gui.getController().openNextReference()); 90 menu.addActionListener(event -> gui.getController().openNextReference());
90 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, 0)); 91 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, 0));
91 menu.setEnabled(false); 92 menu.setEnabled(false);
@@ -93,7 +94,7 @@ public class PopupMenuBar extends JPopupMenu {
93 this.openNextMenu = menu; 94 this.openNextMenu = menu;
94 } 95 }
95 { 96 {
96 JMenuItem menu = new JMenuItem("Mark as deobfuscated"); 97 JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.mark_deobfuscated"));
97 menu.addActionListener(event -> gui.toggleMapping()); 98 menu.addActionListener(event -> gui.toggleMapping());
98 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, 0)); 99 menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, 0));
99 menu.setEnabled(false); 100 menu.setEnabled(false);