From 02165abde2b0ff476b4a6ded3c82a5f6aa04f72a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?= Date: Sat, 30 Sep 2023 02:57:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B8=AE=E5=8A=A9=E8=8F=9C?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constants/TextConstants.java | 1 + .../event/handler/menubar/About.java | 30 +++++++++++++++++++ .../views/manager/TopMenuBarManager.java | 16 ++++++++++ .../views/root/top/menu/TopMenuBar.java | 26 ++++++++++++++++ src/main/resources/i18n/i18n.properties | 1 + src/main/resources/i18n/i18n_en.properties | 1 + src/main/resources/i18n/i18n_zh_CN.properties | 1 + 7 files changed, 76 insertions(+) create mode 100644 src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/About.java 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=窗口置顶