package magic.ui.screen.menu.settings;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import magic.data.GeneralConfig;
import magic.translate.MText;
import magic.ui.ScreenController;
import magic.ui.dialog.FiremindWorkerDialog;
import magic.ui.screen.menu.MenuScreenContentPanel;
import magic.ui.theme.ThemeFactory;
import magic.utility.MagicFileSystem;
@SuppressWarnings("serial")
class SettingsMenuContentPanel extends MenuScreenContentPanel {
// translatable strings.
private static final String _S1 = "Settings Menu";
private static final String _S2 = "Preferences";
private static final String _S3 = "Setup card images";
private static final String _S4 = "Run Firemind Worker";
private static final String _S5 = "Toggle full-screen";
private static final String _S6 = "Close menu";
private static final String _S7 = "Reset & Restart";
private static final String _S11 = "Reset settings to default and run startup wizard?";
private static final String _S12 = "This action cannot be undone!";
private static final String _S13 = "Reset & Restart";
private static final String _S14 = "Yes";
private static final String _S15 = "No";
private static FiremindWorkerDialog firemindWorkerDialog;
SettingsMenuContentPanel() {
super(MText.get(_S1), true);
addMenuItem(MText.get(_S2), this::showPreferencesDialog);
addMenuItem(MText.get(_S3), this::showDowloadImagesDialog);
addMenuItem(MText.get(_S4), this::showFiremindWorkerDialog);
addMenuItem(MText.get(_S5), this::doToggleFullScreen);
addMenuItem(MText.get(_S7), this::doResetRestart);
addSpace();
addMenuItem(MText.get(_S6), this::doCloseMenu);
refreshMenuLayout();
}
private void showDowloadImagesDialog() {
ScreenController.showDownloadImagesScreen();
}
private void showFiremindWorkerDialog() {
if (firemindWorkerDialog == null || !firemindWorkerDialog.isDisplayable()) {
firemindWorkerDialog = new FiremindWorkerDialog(ScreenController.getFrame());
} else {
firemindWorkerDialog.setVisible(true);
}
}
private void doResetRestart() {
final int response = JOptionPane.showOptionDialog(ScreenController.getFrame(),
String.format("<html>%s<br><br><b>%s</b></html>", MText.get(_S11), MText.get(_S12)),
MText.get(_S13),
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
new String[]{MText.get(_S14), MText.get(_S15)}, MText.get(_S15));
if (response == JOptionPane.YES_OPTION) {
setVisible(false);
SwingUtilities.invokeLater(() -> {
MagicFileSystem.deleteGeneralConfigFile();
GeneralConfig.getInstance().load();
ThemeFactory.getInstance().setCurrentTheme(GeneralConfig.getInstance().getTheme());
ScreenController.showStartScreen();
});
}
}
private void showPreferencesDialog() {
ScreenController.showPreferencesDialog();
}
private void doToggleFullScreen() {
ScreenController.getFrame().toggleFullScreenMode();
}
private void doCloseMenu() {
ScreenController.closeActiveScreen(false);
}
}