From fb486a87baa7ce0763aa00720ea14bbee04a94a8 Mon Sep 17 00:00:00 2001
From: gewuyou <1063891901@qq.com>
Date: Fri, 13 Oct 2023 16:36:25 +0800
Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20=E4=BC=98=E5=8C=96?=
=?UTF-8?q?=E5=BF=AB=E6=8D=B7=E9=94=AE=E5=88=9D=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/org/jcnc/jnotepad/JnotepadApp.java | 6 +-
.../api/core/views/menu/AbstractBaseMenu.java | 65 +++++++++++++
.../AbstractMenu.java} | 97 +++++++++++--------
.../org/jcnc/jnotepad/app/utils/TabUtil.java | 9 +-
.../config/UserConfigController.java | 41 ++++++++
.../ui/views/manager/TopMenuBarManager.java | 33 +------
.../ui/views/root/top/menubar/TopMenuBar.java | 12 ---
.../root/top/menubar/menu/FileTopMenu.java | 6 +-
.../root/top/menubar/menu/HelpTopMenu.java | 6 +-
.../top/menubar/menu/LanguageTopMenu.java | 10 +-
.../root/top/menubar/menu/PluginTopMenu.java | 6 +-
.../root/top/menubar/menu/RunTopMenu.java | 6 +-
.../root/top/menubar/menu/SettingTopMenu.java | 6 +-
.../resources/jcnc/app/i18n/i18n.properties | 17 ++++
14 files changed, 206 insertions(+), 114 deletions(-)
create mode 100644 src/main/java/org/jcnc/jnotepad/api/core/views/menu/AbstractBaseMenu.java
rename src/main/java/org/jcnc/jnotepad/api/core/views/{top/menu/AbstractTopMenu.java => menu/AbstractMenu.java} (58%)
diff --git a/src/main/java/org/jcnc/jnotepad/JnotepadApp.java b/src/main/java/org/jcnc/jnotepad/JnotepadApp.java
index 170e258..88f5cc7 100644
--- a/src/main/java/org/jcnc/jnotepad/JnotepadApp.java
+++ b/src/main/java/org/jcnc/jnotepad/JnotepadApp.java
@@ -26,12 +26,16 @@ public class JnotepadApp extends Application {
}
@Override
- public void start(Stage primaryStage) {
+ public void init() {
// 获取当前启动位置a
String currentWorkingDirectory = System.getProperty("user.dir");
LogUtil.getLogger(this.getClass()).info("当前启动位置:{}", currentWorkingDirectory);
// 设置参数
APPLICATION_MANAGER.setApplication(this);
+ }
+
+ @Override
+ public void start(Stage primaryStage) {
APPLICATION_MANAGER.setPrimaryStage(primaryStage);
// 加载应用程序资源
APPLICATION_MANAGER.loadAppResources();
diff --git a/src/main/java/org/jcnc/jnotepad/api/core/views/menu/AbstractBaseMenu.java b/src/main/java/org/jcnc/jnotepad/api/core/views/menu/AbstractBaseMenu.java
new file mode 100644
index 0000000..39debbf
--- /dev/null
+++ b/src/main/java/org/jcnc/jnotepad/api/core/views/menu/AbstractBaseMenu.java
@@ -0,0 +1,65 @@
+package org.jcnc.jnotepad.api.core.views.menu;
+
+import javafx.scene.control.Menu;
+import javafx.scene.control.MenuItem;
+import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
+import org.jcnc.jnotepad.controller.config.UserConfigController;
+import org.jcnc.jnotepad.ui.views.root.top.menubar.TopMenuBar;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 抽象基础菜单类
+ *
+ *
+ * 此抽象类用于创建基础菜单,包括菜单项的注册和初始化。
+ *
+ *
+ * @author gewuyou
+ */
+public abstract class AbstractBaseMenu extends AbstractMenu