/* * 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; import com.trollworks.gcs.app.GCSApp; import com.trollworks.toolkit.annotation.Localize; import com.trollworks.toolkit.ui.App; import com.trollworks.toolkit.ui.menu.Command; import com.trollworks.toolkit.ui.menu.DynamicMenuEnabler; import com.trollworks.toolkit.ui.menu.MenuProvider; import com.trollworks.toolkit.ui.menu.help.AboutCommand; import com.trollworks.toolkit.ui.menu.help.OpenURICommand; import com.trollworks.toolkit.ui.menu.help.UpdateCommand; import com.trollworks.toolkit.utility.Localization; import com.trollworks.toolkit.utility.Platform; import java.util.Collections; import java.util.Set; import javax.swing.JMenu; import javax.swing.JMenuItem; /** Provides the standard "Help" menu. */ public class HelpMenuProvider implements MenuProvider { @Localize("Help") @Localize(locale = "de", value = "Hilfe") @Localize(locale = "ru", value = "Справка") @Localize(locale = "es", value = "Ayuda") private static String HELP; @Localize("Release Notes") @Localize(locale = "de", value = "Hinweise zur Veröffentlichung") @Localize(locale = "ru", value = "Примечания к выпуску") @Localize(locale = "es", value = "Notas de la versión") private static String RELEASE_NOTES; @Localize("Bug Reports") private static String BUG_REPORTS; @Localize("Feature Requests") private static String FEATURE_REQUESTS; @Localize("License") @Localize(locale = "de", value = "Lizenz") @Localize(locale = "ru", value = "Лицензия") @Localize(locale = "es", value = "Licencia") private static String LICENSE; @Localize("Web Site") @Localize(locale = "de", value = "Webseite") @Localize(locale = "ru", value = "Сайт") @Localize(locale = "es", value = "Sitio Web") private static String WEB_SITE; @Localize("Mailing Lists") @Localize(locale = "de", value = "Mailinglisten") @Localize(locale = "ru", value = "Списки рассылки") @Localize(locale = "es", value = "Listas de correo") private static String MAILING_LISTS; static { Localization.initialize(); } public static final String NAME = "Help"; //$NON-NLS-1$ @Override public Set<Command> getModifiableCommands() { return Collections.emptySet(); } @Override public JMenu createMenu() { JMenu menu = new JMenu(HELP); menu.setName(NAME); if (!Platform.isMacintosh()) { menu.add(new JMenuItem(AboutCommand.INSTANCE)); menu.addSeparator(); } menu.add(new JMenuItem(UpdateCommand.INSTANCE)); menu.addSeparator(); menu.add(new JMenuItem(new OpenURICommand(RELEASE_NOTES, GCSApp.WEB_SITE + "/release_notes.php"))); //$NON-NLS-1$ menu.add(new JMenuItem(new OpenURICommand(LICENSE, App.getHomePath().resolve("license.html").toUri()))); //$NON-NLS-1$ menu.addSeparator(); menu.add(new JMenuItem(new OpenURICommand(WEB_SITE, GCSApp.WEB_SITE))); menu.add(new JMenuItem(new OpenURICommand(MAILING_LISTS, GCSApp.WEB_SITE + "/mailing_lists.php"))); //$NON-NLS-1$ menu.add(new JMenuItem(new OpenURICommand(FEATURE_REQUESTS, "https://gurpscharactersheet.atlassian.net/issues/?filter=10000"))); //$NON-NLS-1$ menu.add(new JMenuItem(new OpenURICommand(BUG_REPORTS, "https://gurpscharactersheet.atlassian.net/issues/?filter=10001"))); //$NON-NLS-1$ DynamicMenuEnabler.add(menu); return menu; } }