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