summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/gui/elements
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/gui/elements')
-rw-r--r--src/main/java/cuchaz/enigma/gui/elements/MenuBar.java43
1 files changed, 42 insertions, 1 deletions
diff --git a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
index 2e10bfb..cdcad05 100644
--- a/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
+++ b/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java
@@ -5,6 +5,7 @@ import cuchaz.enigma.config.Themes;
5import cuchaz.enigma.gui.Gui; 5import cuchaz.enigma.gui.Gui;
6import cuchaz.enigma.gui.dialog.AboutDialog; 6import 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.translation.mapping.serde.MappingFormat; 9import cuchaz.enigma.translation.mapping.serde.MappingFormat;
9import cuchaz.enigma.utils.Utils; 10import cuchaz.enigma.utils.Utils;
10 11
@@ -19,8 +20,9 @@ import java.net.URL;
19import java.nio.file.Files; 20import java.nio.file.Files;
20import java.nio.file.Path; 21import java.nio.file.Path;
21import java.nio.file.Paths; 22import java.nio.file.Paths;
22import java.util.ArrayList;
23import java.util.List; 23import java.util.List;
24import java.util.*;
25import java.util.stream.Collectors;
24 26
25public class MenuBar extends JMenuBar { 27public class MenuBar extends JMenuBar {
26 28
@@ -154,6 +156,45 @@ public class MenuBar extends JMenuBar {
154 } 156 }
155 menu.addSeparator(); 157 menu.addSeparator();
156 { 158 {
159 JMenuItem stats = new JMenuItem("Mapping Stats...");
160
161 stats.addActionListener(event -> {
162 JFrame frame = new JFrame("Choose Included Members");
163 Container pane = frame.getContentPane();
164 pane.setLayout(new FlowLayout());
165
166 Map<StatsMember, JCheckBox> checkboxes = Arrays
167 .stream(StatsMember.values())
168 .collect(Collectors.toMap(m -> m, m -> {
169 JCheckBox checkbox = new JCheckBox(Utils.caplisiseCamelCase(m.name()));
170 pane.add(checkbox);
171 return checkbox;
172 }));
173
174 JButton button = new JButton("Generate Stats");
175
176 button.addActionListener(e -> {
177 Set<StatsMember> includedMembers = checkboxes
178 .entrySet()
179 .stream()
180 .filter(entry -> entry.getValue().isSelected())
181 .map(Map.Entry::getKey)
182 .collect(Collectors.toSet());
183
184 frame.setVisible(false);
185 frame.dispose();
186 gui.getController().openStats(includedMembers);
187 });
188
189 pane.add(button);
190 frame.pack();
191 frame.setVisible(true);
192 });
193
194 menu.add(stats);
195 }
196 menu.addSeparator();
197 {
157 JMenuItem item = new JMenuItem("Exit"); 198 JMenuItem item = new JMenuItem("Exit");
158 menu.add(item); 199 menu.add(item);
159 item.addActionListener(event -> this.gui.close()); 200 item.addActionListener(event -> this.gui.close());