package magic.ui.screen.menu.main; import magic.exception.InvalidDeckException; import magic.translate.MText; import magic.ui.ScreenController; import magic.ui.screen.menu.MenuScreenContentPanel; import magic.ui.widget.alerter.AlertPanel; import magic.utility.MagicSystem; @SuppressWarnings("serial") class MainMenuContentPanel extends MenuScreenContentPanel { // translatable strings. private static final String _S1 = "Main Menu"; private static final String _S2 = "New duel"; private static final String _S3 = "Resume duel"; private static final String _S4 = "Card explorer"; private static final String _S5 = "Deck editor"; private static final String _S6 = "Settings"; private static final String _S7 = "Help"; private static final String _S8 = "Quit to desktop"; private static final AlertPanel alertPanel = new AlertPanel(); MainMenuContentPanel() { super(MText.get(_S1), false); setMenuItems(MagicSystem.isDevMode()); add(alertPanel); refreshAlerts(); } private void setMenuItems(boolean showDevMenuItem) { clearMenuItems(); addMenuItem(MText.get(_S2), this::doNewDuel); addMenuItem(MText.get(_S3), this::doResumeDuel); addMenuItem(MText.get(_S4), this::showExplorerScreen); addMenuItem(MText.get(_S5), this::showDeckEditor); addMenuItem(MText.get(_S6), this::showSettingsMenu); addMenuItem(MText.get(_S7), this::showHelpMenu); addSpace(); addMenuItem(MText.get(_S8), this::doShutdown); if (showDevMenuItem) { addSpace(); addSpace(); addSpace(); addMenuItem("DevMode", 16, this::showDevMenu); } refreshMenuLayout(); } void refreshAlerts() { alertPanel.refreshAlerts(); } private void doResumeDuel() { try { ScreenController.getFrame().loadDuel(); } catch (InvalidDeckException ex) { ScreenController.showWarningMessage(ex.getMessage()); } } private void doNewDuel() { ScreenController.showNewDuelSettingsScreen(); } private void showExplorerScreen() { ScreenController.showCardExplorerScreen(); } private void showDeckEditor() { ScreenController.showDeckEditor(); } private void showSettingsMenu() { ScreenController.showSettingsMenuScreen(); } private void showHelpMenu() { ScreenController.showHelpMenuScreen(); } private void doShutdown() { ScreenController.closeActiveScreen(false); } private void showDevMenu() { ScreenController.showDevMenuScreen(); if (!MagicSystem.isDevMode()) { hideDevModeMenuItem(); } } void showDevModeMenuItem() { setMenuItems(true); } void hideDevModeMenuItem() { setMenuItems(false); MainMenuScreen.isCtrlKeyPressed = false; } }