From 97d8776a5ede0f9cd2c78ca8413819bead4ea656 Mon Sep 17 00:00:00 2001 From: gewuyou <1063891901@qq.com> Date: Thu, 24 Aug 2023 17:30:22 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A9=20=E6=B7=BB=E5=8A=A0=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 +- src/main/java/module-info.java | 5 +- .../Interface/ShortcutKeyInterface.java | 9 -- src/main/java/org/jcnc/jnotepad/LunchApp.java | 11 +-- .../jnotepad/app/config/JnotepadConfig.java | 53 ++++++++++ .../app/config/LoadJnotepadConfig.java | 98 +++++++++++++++++++ .../app/config/LoadShortcutKeyConfig.java | 77 +++++++++++++++ .../jcnc/jnotepad/app/entity/ShortcutKey.java | 35 +++++++ .../org/jcnc/jnotepad/app/entity/Style.java | 35 +++++++ .../jcnc/jnotepad/constants/AppConstants.java | 17 +++- .../jnotepad/constants/PathConstants.java | 5 +- .../jnotepad/constants/TextConstants.java | 46 +++++++++ .../controller/event/handler/NewFile.java | 2 - .../controller/event/handler/OpenConfig.java | 32 ++++++ .../controller/event/handler/OpenFile.java | 33 +------ .../controller/event/handler/OpenHandler.java | 45 +++++++++ .../controller/event/handler/SaveFile.java | 9 ++ .../controller/manager/ShortcutKey.java | 88 ----------------- .../java/org/jcnc/jnotepad/init/Config.java | 2 + .../org/jcnc/jnotepad/tool/PopUpUtil.java | 32 ++++++ .../jnotepad/ui/menu/JNotepadMenuBar.java | 18 ++-- .../org/jcnc/jnotepad/view/init/View.java | 20 +++- src/main/resources/config/shortcutKey.json | 10 -- src/main/resources/logback.xml | 4 +- 24 files changed, 520 insertions(+), 173 deletions(-) delete mode 100644 src/main/java/org/jcnc/jnotepad/Interface/ShortcutKeyInterface.java create mode 100644 src/main/java/org/jcnc/jnotepad/app/config/JnotepadConfig.java create mode 100644 src/main/java/org/jcnc/jnotepad/app/config/LoadJnotepadConfig.java create mode 100644 src/main/java/org/jcnc/jnotepad/app/config/LoadShortcutKeyConfig.java create mode 100644 src/main/java/org/jcnc/jnotepad/app/entity/ShortcutKey.java create mode 100644 src/main/java/org/jcnc/jnotepad/app/entity/Style.java create mode 100644 src/main/java/org/jcnc/jnotepad/controller/event/handler/OpenConfig.java create mode 100644 src/main/java/org/jcnc/jnotepad/controller/event/handler/OpenHandler.java delete mode 100644 src/main/java/org/jcnc/jnotepad/controller/manager/ShortcutKey.java create mode 100644 src/main/java/org/jcnc/jnotepad/tool/PopUpUtil.java delete mode 100644 src/main/resources/config/shortcutKey.json diff --git a/pom.xml b/pom.xml index 0fed9d1..ded11a0 100644 --- a/pom.xml +++ b/pom.xml @@ -32,10 +32,11 @@ ${junit.version} test + - com.google.code.gson - gson - 2.10.1 + com.fasterxml.jackson.core + jackson-databind + 2.12.7.1 diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 82564b9..f8ce033 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -5,12 +5,15 @@ module org.jcnc.jnotepad { // 但我打开源代码,他们的模块的确有包含这个,java.naming,这个没懂,我干脆自己导入 requires java.naming; requires atlantafx.base; - requires com.google.gson; + requires com.fasterxml.jackson.core; + requires com.fasterxml.jackson.databind; + requires com.fasterxml.jackson.annotation; requires org.slf4j; requires ch.qos.logback.core; requires ch.qos.logback.classic; requires com.ibm.icu; + exports org.jcnc.jnotepad.app.config; exports org.jcnc.jnotepad; exports org.jcnc.jnotepad.tool; exports org.jcnc.jnotepad.Interface; diff --git a/src/main/java/org/jcnc/jnotepad/Interface/ShortcutKeyInterface.java b/src/main/java/org/jcnc/jnotepad/Interface/ShortcutKeyInterface.java deleted file mode 100644 index 36c7122..0000000 --- a/src/main/java/org/jcnc/jnotepad/Interface/ShortcutKeyInterface.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.jcnc.jnotepad.Interface; - -/** - * @author 一个大转盘 - */ -public interface ShortcutKeyInterface { - void createShortcutKeyByConfig(); - -} diff --git a/src/main/java/org/jcnc/jnotepad/LunchApp.java b/src/main/java/org/jcnc/jnotepad/LunchApp.java index b8d4d15..ed227c4 100644 --- a/src/main/java/org/jcnc/jnotepad/LunchApp.java +++ b/src/main/java/org/jcnc/jnotepad/LunchApp.java @@ -7,6 +7,7 @@ import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.layout.Pane; import javafx.stage.Stage; +import org.jcnc.jnotepad.app.config.LoadShortcutKeyConfig; import org.jcnc.jnotepad.constants.AppConstants; import org.jcnc.jnotepad.controller.manager.Controller; import org.jcnc.jnotepad.init.Config; @@ -33,28 +34,22 @@ public class LunchApp extends Application { Controller controller = Controller.getInstance(); Scene scene; - View view; @Override public void start(Stage primaryStage) { Config config = new Config(); - Properties properties = config.readPropertiesFromFile(); String title = properties.getProperty("title", "JNotepad"); - view = new View(); - Pane root = new Pane(); - double width = AppConstants.SCREEN_WIDTH; double length = AppConstants.SCREEN_LENGTH; String icon = AppConstants.APP_ICON; - scene = new Scene(root, width, length); Application.setUserAgentStylesheet(new PrimerLight().getUserAgentStylesheet()); scene.getStylesheets().add(Objects.requireNonNull(getClass().getResource("/css/styles.css")).toExternalForm()); @@ -76,9 +71,7 @@ public class LunchApp extends Application { ViewManager viewManager = ViewManager.getInstance(scene); viewManager.initScreen(scene); // 初始化快捷键 - view.initShortcutKey(); - - + View.getInstance().initShortcutKey(new LoadShortcutKeyConfig()); } @Override diff --git a/src/main/java/org/jcnc/jnotepad/app/config/JnotepadConfig.java b/src/main/java/org/jcnc/jnotepad/app/config/JnotepadConfig.java new file mode 100644 index 0000000..c138fba --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/app/config/JnotepadConfig.java @@ -0,0 +1,53 @@ +package org.jcnc.jnotepad.app.config; + + +import org.jcnc.jnotepad.app.entity.ShortcutKey; +import org.jcnc.jnotepad.app.entity.Style; + +import java.util.List; + +/** + * 应用程序配置类 + * + * @author gewuyou 一个大转盘 + * @see [相关类/方法] + */ +public class JnotepadConfig { + /** + * 快捷键列表 + */ + private List shortcutKeyList; + + /** + * 样式列表 TODO + */ + private List