package games.strategy.triplea.ui.menubar; import java.awt.event.KeyEvent; import java.util.Set; import javax.swing.JMenu; import javax.swing.JMenuBar; import games.strategy.debug.DebugUtils; import games.strategy.debug.ErrorConsole; import games.strategy.engine.gamePlayer.IGamePlayer; import games.strategy.performance.EnablePerformanceLoggingCheckBox; import games.strategy.triplea.ai.proAI.ProAI; import games.strategy.triplea.ui.TripleAFrame; import games.strategy.ui.SwingAction; import games.strategy.ui.SwingComponents; public class DebugMenu { public DebugMenu(final JMenuBar menuBar, final TripleAFrame frame) { final JMenu debugMenu = SwingComponents.newJMenu("Debug", SwingComponents.KeyboardCode.D); menuBar.add(debugMenu); final Set<IGamePlayer> players = frame.getLocalPlayers().getLocalPlayers(); final boolean areThereProAIs = players.stream().filter(player -> player instanceof ProAI).findFirst().isPresent(); if (areThereProAIs) { ProAI.initialize(frame); debugMenu.add(SwingAction.of("Show Hard AI Logs", e -> ProAI.showSettingsWindow())).setMnemonic(KeyEvent.VK_X); } debugMenu.add(new EnablePerformanceLoggingCheckBox()); debugMenu.add(SwingAction.of("Show Console", e -> { ErrorConsole.getConsole().setVisible(true); ErrorConsole.getConsole().append(DebugUtils.getMemory()); })).setMnemonic(KeyEvent.VK_C); } }