diff --git a/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java b/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java index 0c8c514..5f31944 100644 --- a/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java +++ b/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java @@ -16,6 +16,7 @@ public class TextConstants { public static final String SAVE_AS = "SAVE_AS"; public static final String RENAME = "RENAME"; public static final String SET = "SET"; + public static final String HELP = "HELP"; public static final String WORD_WRAP = "WORD_WRAP"; public static final String PLUGIN = "PLUGIN"; public static final String MANAGER_PLUGIN = "MANAGER_PLUGIN"; diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/About.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/About.java new file mode 100644 index 0000000..46fda19 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/About.java @@ -0,0 +1,30 @@ +package org.jcnc.jnotepad.controller.event.handler.menubar; + +import javafx.event.ActionEvent; +import javafx.event.EventHandler; + +/** + * 打开关于页面程序。 + * + *

当用户选择关于时,将创建一个新的Stage。

+ * + * @author 许轲 + */ +public class About implements EventHandler { + /** + * 处理关于页面。 + * + * @param event 事件对象 + */ + @Override + public void handle(ActionEvent event) { + addAboutStage(); + } + + /** + * 关于页面。 + */ + public void addAboutStage() { + + } +} diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/TopMenuBarManager.java b/src/main/java/org/jcnc/jnotepad/views/manager/TopMenuBarManager.java index 6b8c845..4be718b 100644 --- a/src/main/java/org/jcnc/jnotepad/views/manager/TopMenuBarManager.java +++ b/src/main/java/org/jcnc/jnotepad/views/manager/TopMenuBarManager.java @@ -39,6 +39,8 @@ public class TopMenuBarManager { private final Map pluginMenuItems = new HashMap<>(); + private final Map helpMenuItems = new HashMap<>(); + private final Map languageMenuItems = new HashMap<>(); Logger logger = LogUtil.getLogger(this.getClass()); AppConfigController appConfigController = AppConfigController.getInstance(); @@ -66,8 +68,11 @@ public class TopMenuBarManager { toggleLanguageCheck(appConfigController.getLanguage()); // 初始化设置菜单 initSettingMenu(); + // 初始化设置菜单 + initHelpMenu(); // 初始化插件菜单 initPluginMenu(); + // 刷新顶部菜单栏 refreshTopMenuBar(); // 初始化快捷键 @@ -300,6 +305,17 @@ public class TopMenuBarManager { initMenuItems(pluginMenuItems, pluginMenu); } + /** + * 初始化插件菜单 + */ + private void initHelpMenu() { + logger.info("初始化帮助菜单!"); + var helpMenu = topMenuBar.gethelpMenuMenu(); + // 插件菜单 + UiResourceBundle.bindStringProperty(helpMenu.textProperty(), HELP); + + initMenuItems(helpMenuItems, helpMenu); + } /** * 初始化设置菜单 */ diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menu/TopMenuBar.java b/src/main/java/org/jcnc/jnotepad/views/root/top/menu/TopMenuBar.java index 550293b..c9674e2 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/top/menu/TopMenuBar.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/top/menu/TopMenuBar.java @@ -32,11 +32,16 @@ public class TopMenuBar extends MenuBar { */ private final Menu setMenu = new Menu(); + /** + * 帮助菜单 + */ + private final Menu helpMenu = new Menu(); /// 菜单按钮 /** * 插件菜单 */ private final Menu pluginMenu = new Menu(); + /** * 语言菜单 */ @@ -45,6 +50,11 @@ public class TopMenuBar extends MenuBar { * 新建 */ private final MenuItem newItem = new MenuItem(); + + /** + * 新建 + */ + private final MenuItem aboutItem = new MenuItem(); /** * 打开 */ @@ -116,10 +126,21 @@ public class TopMenuBar extends MenuBar { return setMenu; } + public Menu getHelpMenu() { + return helpMenu; + } + + + public Menu getPluginMenu() { return pluginMenu; } + public Menu gethelpMenuMenu() { + return helpMenu; + } + + public Menu getLanguageMenu() { return languageMenu; } @@ -132,6 +153,11 @@ public class TopMenuBar extends MenuBar { return newItem; } + + public MenuItem getAboutItem() { + return aboutItem; + } + public MenuItem getOpenItem() { return openItem; } diff --git a/src/main/resources/i18n/i18n.properties b/src/main/resources/i18n/i18n.properties index 0c89879..4759334 100644 --- a/src/main/resources/i18n/i18n.properties +++ b/src/main/resources/i18n/i18n.properties @@ -9,6 +9,7 @@ PLUGIN=插件 CHINESE=中文 title=JNotepad OPEN=打开 +HELP=帮助 OPEN_CONFIGURATION_FILE=打开配置文件 RENAME=重命名 TOP=窗口置顶 diff --git a/src/main/resources/i18n/i18n_en.properties b/src/main/resources/i18n/i18n_en.properties index e37eab2..94ad5b8 100644 --- a/src/main/resources/i18n/i18n_en.properties +++ b/src/main/resources/i18n/i18n_en.properties @@ -9,6 +9,7 @@ PLUGIN=Plugins CHINESE=Chinese title=JNotepad OPEN=Open +HELP=Help OPEN_CONFIGURATION_FILE=Open Configuration File RENAME=Rename TOP=Window Top diff --git a/src/main/resources/i18n/i18n_zh_CN.properties b/src/main/resources/i18n/i18n_zh_CN.properties index 1fbb8bb..9224042 100644 --- a/src/main/resources/i18n/i18n_zh_CN.properties +++ b/src/main/resources/i18n/i18n_zh_CN.properties @@ -9,6 +9,7 @@ PLUGIN=插件 CHINESE=中文 title=JNotepad OPEN=打开 +HELP=帮助 OPEN_CONFIGURATION_FILE=打开配置文件 RENAME=重命名 TOP=窗口置顶