/*
* Copyright (c) 1998-2017 by Richard A. Wilkes. All rights reserved.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, version 2.0. If a copy of the MPL was not distributed with
* this file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This Source Code Form is "Incompatible With Secondary Licenses", as
* defined by the Mozilla Public License, version 2.0.
*/
package com.trollworks.gcs.menu.file;
import com.trollworks.toolkit.annotation.Localize;
import com.trollworks.toolkit.ui.menu.Command;
import com.trollworks.toolkit.ui.menu.DynamicMenuEnabler;
import com.trollworks.toolkit.ui.menu.DynamicMenuItem;
import com.trollworks.toolkit.ui.menu.MenuProvider;
import com.trollworks.toolkit.ui.menu.file.CloseCommand;
import com.trollworks.toolkit.ui.menu.file.OpenCommand;
import com.trollworks.toolkit.ui.menu.file.PageSetupCommand;
import com.trollworks.toolkit.ui.menu.file.PrintCommand;
import com.trollworks.toolkit.ui.menu.file.QuitCommand;
import com.trollworks.toolkit.ui.menu.file.RecentFilesMenu;
import com.trollworks.toolkit.ui.menu.file.SaveAsCommand;
import com.trollworks.toolkit.ui.menu.file.SaveCommand;
import com.trollworks.toolkit.utility.Localization;
import com.trollworks.toolkit.utility.Platform;
import java.util.HashSet;
import java.util.Set;
import javax.swing.JMenu;
/** Provides the standard "File" menu. */
public class FileMenuProvider implements MenuProvider {
@Localize("File")
@Localize(locale = "de", value = "Datei")
@Localize(locale = "ru", value = "Файл")
@Localize(locale = "es", value = "Archivo")
private static String FILE;
static {
Localization.initialize();
}
public static final String NAME = "File"; //$NON-NLS-1$
@Override
public Set<Command> getModifiableCommands() {
Set<Command> cmds = new HashSet<>();
cmds.add(NewCharacterSheetCommand.INSTANCE);
cmds.add(NewCharacterTemplateCommand.INSTANCE);
cmds.add(NewAdvantagesLibraryCommand.INSTANCE);
cmds.add(NewEquipmentLibraryCommand.INSTANCE);
cmds.add(NewNoteLibraryCommand.INSTANCE);
cmds.add(NewSkillsLibraryCommand.INSTANCE);
cmds.add(NewSpellsLibraryCommand.INSTANCE);
cmds.add(OpenCommand.INSTANCE);
cmds.add(CloseCommand.INSTANCE);
cmds.add(SaveCommand.INSTANCE);
cmds.add(SaveAsCommand.INSTANCE);
cmds.add(ExportToGurpsCalculatorCommand.INSTANCE);
cmds.add(PageSetupCommand.INSTANCE);
cmds.add(PrintCommand.INSTANCE);
if (!Platform.isMacintosh()) {
cmds.add(QuitCommand.INSTANCE);
}
return cmds;
}
@Override
public JMenu createMenu() {
JMenu menu = new JMenu(FILE);
menu.setName(NAME);
menu.add(new DynamicMenuItem(NewCharacterSheetCommand.INSTANCE));
menu.add(new DynamicMenuItem(NewCharacterTemplateCommand.INSTANCE));
menu.add(new DynamicMenuItem(NewAdvantagesLibraryCommand.INSTANCE));
menu.add(new DynamicMenuItem(NewEquipmentLibraryCommand.INSTANCE));
menu.add(new DynamicMenuItem(NewNoteLibraryCommand.INSTANCE));
menu.add(new DynamicMenuItem(NewSkillsLibraryCommand.INSTANCE));
menu.add(new DynamicMenuItem(NewSpellsLibraryCommand.INSTANCE));
menu.addSeparator();
menu.add(new DynamicMenuItem(OpenCommand.INSTANCE));
menu.add(new RecentFilesMenu());
menu.add(new DynamicMenuItem(CloseCommand.INSTANCE));
menu.addSeparator();
menu.add(new DynamicMenuItem(SaveCommand.INSTANCE));
menu.add(new DynamicMenuItem(SaveAsCommand.INSTANCE));
menu.add(new DynamicMenuItem(ExportToGurpsCalculatorCommand.INSTANCE));
menu.addSeparator();
menu.add(new DynamicMenuItem(PageSetupCommand.INSTANCE));
menu.add(new DynamicMenuItem(PrintCommand.INSTANCE));
if (!Platform.isMacintosh()) {
menu.addSeparator();
menu.add(new DynamicMenuItem(QuitCommand.INSTANCE));
}
DynamicMenuEnabler.add(menu);
return menu;
}
}