From 8e2d7c53de0b9a5bf1d9e3fd3b3f3b0633d596c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:05:29 +0800
Subject: [PATCH 01/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20VerticalBoxAble.java?=
=?UTF-8?q?=20=E7=9A=84=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../component/module/interfaces/VerticalBoxAble.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/interfaces/VerticalBoxAble.java b/src/main/java/org/jcnc/jnotepad/component/module/interfaces/VerticalBoxAble.java
index 87b5f10..ab4130a 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/interfaces/VerticalBoxAble.java
+++ b/src/main/java/org/jcnc/jnotepad/component/module/interfaces/VerticalBoxAble.java
@@ -4,9 +4,11 @@ import javafx.scene.Node;
import javafx.scene.layout.VBox;
/**
- * 可添加子节点的垂直布局接口
+ * 可添加子节点的垂直布局接口。
*
- * 该接口定义了添加子节点和获取垂直布局的方法。
+ * 该接口定义了向垂直布局添加子节点和获取垂直布局的方法。
+ *
+ * 实现此接口的类可以使用方法将一个或多个子节点添加到垂直布局中,以自定义垂直布局的UI组件。
*
* @author luke
*/
--
Gitee
From c9c6152df24f776f5cb8b440777b77059b5ce5c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:05:37 +0800
Subject: [PATCH 02/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20UserConfig.java=20?=
=?UTF-8?q?=E7=9A=84=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jcnc/jnotepad/app/config/UserConfig.java | 38 ++++++++++++++++++-
1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/jcnc/jnotepad/app/config/UserConfig.java b/src/main/java/org/jcnc/jnotepad/app/config/UserConfig.java
index c828a33..8a05648 100644
--- a/src/main/java/org/jcnc/jnotepad/app/config/UserConfig.java
+++ b/src/main/java/org/jcnc/jnotepad/app/config/UserConfig.java
@@ -8,7 +8,12 @@ import java.util.List;
/**
* 用户配置文件类
*
- * @author 许轲
+ *
+ * 此类用于存储用户的配置信息,包括语言设置、文本自动换行设置和快捷键配置。
+ *
+ *
+ * @author luke
+ *
*/
public class UserConfig {
@@ -17,27 +22,56 @@ public class UserConfig {
private boolean textWrap;
private List shortcutKey;
-
+ /**
+ * 获取语言设置
+ *
+ * @return 语言设置
+ */
public String getLanguage() {
return language;
}
+ /**
+ * 设置语言设置
+ *
+ * @param language 语言设置
+ */
public void setLanguage(String language) {
this.language = language;
}
+ /**
+ * 获取快捷键配置列表
+ *
+ * @return 快捷键配置列表
+ */
public List getShortcutKey() {
return shortcutKey;
}
+ /**
+ * 设置快捷键配置列表
+ *
+ * @param shortcutKey 快捷键配置列表
+ */
public void setShortcutKey(List shortcutKey) {
this.shortcutKey = shortcutKey;
}
+ /**
+ * 获取文本自动换行设置
+ *
+ * @return 是否启用文本自动换行
+ */
public boolean isTextWrap() {
return textWrap;
}
+ /**
+ * 设置文本自动换行设置
+ *
+ * @param textWrap 是否启用文本自动换行
+ */
public void setTextWrap(boolean textWrap) {
this.textWrap = textWrap;
}
--
Gitee
From 0402d31630c4ff109f271f1b2134047ce7b073f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:05:43 +0800
Subject: [PATCH 03/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20UiResourceBundle.jav?=
=?UTF-8?q?a=20=E7=9A=84=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jnotepad/app/i18n/UiResourceBundle.java | 23 +++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/src/main/java/org/jcnc/jnotepad/app/i18n/UiResourceBundle.java b/src/main/java/org/jcnc/jnotepad/app/i18n/UiResourceBundle.java
index bf6245b..fbda96f 100644
--- a/src/main/java/org/jcnc/jnotepad/app/i18n/UiResourceBundle.java
+++ b/src/main/java/org/jcnc/jnotepad/app/i18n/UiResourceBundle.java
@@ -13,6 +13,22 @@ import java.util.ResourceBundle;
/**
* UI资源绑定,用于加载语言文件。
*
+ *
+ * 此类用于加载和管理UI资源文件,支持国际化和多语言功能。可以通过绑定StringProperty和键值对应的内容,以及获取当前资源文件的内容。
+ *
+ *
+ *
+ * 该类是一个单例类,通过getInstance方法获取实例。
+ *
+ *
+ *
+ * 使用方法示例:
+ *
+ * UiResourceBundle.bindStringProperty(stringProperty, "key");
+ * String content = UiResourceBundle.getContent("key");
+ *
+ *
+ *
* @author songdragon
*/
public class UiResourceBundle {
@@ -35,6 +51,11 @@ public class UiResourceBundle {
}
+ /**
+ * 获取UiResourceBundle的单例实例
+ *
+ * @return UiResourceBundle的单例实例
+ */
public static UiResourceBundle getInstance() {
return INSTANCE;
}
@@ -81,6 +102,8 @@ public class UiResourceBundle {
/**
* 重置当前local
+ *
+ * @param toLocal 要设置的新的Locale
*/
public final void resetLocal(Locale toLocal) {
if (this.currentLocale == toLocal) {
--
Gitee
From 2b0dce46400b1983d02b6c788ebf133f542026b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:05:48 +0800
Subject: [PATCH 04/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20ThreadPoolManager.ja?=
=?UTF-8?q?va=20=E7=9A=84=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jnotepad/common/manager/ThreadPoolManager.java | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/main/java/org/jcnc/jnotepad/common/manager/ThreadPoolManager.java b/src/main/java/org/jcnc/jnotepad/common/manager/ThreadPoolManager.java
index 709e7c8..bab3a57 100644
--- a/src/main/java/org/jcnc/jnotepad/common/manager/ThreadPoolManager.java
+++ b/src/main/java/org/jcnc/jnotepad/common/manager/ThreadPoolManager.java
@@ -7,9 +7,10 @@ import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
/**
- * 线程池管理类
- *
- * 该类用于管理应用程序中的线程池,提供了异步操作的执行环境。
+ * 线程池管理类。
+ *
+ * 该类用于管理应用程序中的线程池,提供了异步操作的执行环境。
+ *
*
* @author gewuyou
*/
@@ -68,9 +69,11 @@ public class ThreadPoolManager {
}
/**
- * 当前运行线程数自减
+ * 当前运行线程数自减。
+ *
+ * 当你创建任务时,务必在最后执行一次该方法。
+ *
*
- * @apiNote 当你创建任务时,务必在最后执行一次该方法
* @see ThreadPoolManager
*/
public static void threadContSelfSubtracting() {
--
Gitee
From b5fe6c84519a3613a32a43acaf481645b66fdb29 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:06:01 +0800
Subject: [PATCH 05/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20TextConstants.java?=
=?UTF-8?q?=20=E7=9A=84=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../common/constants/TextConstants.java | 128 +++++++++++++++++-
1 file changed, 122 insertions(+), 6 deletions(-)
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 8be04c0..098964a 100644
--- a/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java
+++ b/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java
@@ -1,55 +1,171 @@
package org.jcnc.jnotepad.common.constants;
-
/**
- * 文本常量,被多处使用的常量放到此处。如果只有一个class使用,在class中使用private static final声明。
+ * 文本常量类,包含多处使用的文本常量。
+ *
+ * 如果只有一个类使用常量,请在该类中使用 private static final
声明。
*
* @author gewuyou
*/
public class TextConstants {
+ /**
+ * 标题文本常量
+ */
public static final String TITLE = "title";
+
+ /**
+ * 保存文本常量
+ */
public static final String SAVE = "SAVE";
+
+ /**
+ * 文件文本常量
+ */
public static final String FILE = "FILE";
+ /**
+ * 构建文本常量
+ */
public static final String BUILD = "BUILD";
+
+ /**
+ * 终端文本常量
+ */
public static final String TERMINAL = "TERMINAL";
+ /**
+ * 运行文本常量
+ */
public static final String RUN = "RUN";
+
+ /**
+ * 调试文本常量
+ */
public static final String DE_BUG = "DE_BUG";
+
+ /**
+ * 新建文本常量
+ */
public static final String NEW = "NEW";
+
+ /**
+ * 打开文本常量
+ */
public static final String OPEN = "OPEN";
- public static final String OPEN_DIRECTORY = "OPEN_DIRECTORY";
+
+ /**
+ * 打开目录文本常量
+ */
+ public static final String OPEN_DIRECTORY = "OPEN_DIRECTORY";
+
+ /**
+ * 另存为文本常量
+ */
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";
+ /**
+ * 关于文本常量
+ */
public static final String ABOUT = "ABOUT";
+ /**
+ * 开发者文本常量
+ */
public static final String DEVELOPER = "DEVELOPER";
+
+ /**
+ * 统计文本常量
+ */
public static final String STATISTICS = "STATISTICS";
+
+ /**
+ * 打开配置文件文本常量
+ */
public static final String OPEN_CONFIGURATION_FILE = "OPEN_CONFIGURATION_FILE";
+
+ /**
+ * 顶部文本常量
+ */
public static final String TOP = "TOP";
+
+ /**
+ * 语言文本常量
+ */
public static final String LANGUAGE = "LANGUAGE";
+
+ /**
+ * 中文文本常量
+ */
public static final String UPPER_CHINESE = "CHINESE";
+
+ /**
+ * 英文文本常量
+ */
public static final String UPPER_ENGLISH = "ENGLISH";
+
+ /**
+ * 新建文件文本常量
+ */
public static final String NEW_FILE = "NEW_FILE";
+
+ /**
+ * 行文本常量
+ */
public static final String ROW = "ROW";
+
+ /**
+ * 列文本常量
+ */
public static final String COLUMN = "COLUMN";
+
+ /**
+ * 字数统计文本常量
+ */
public static final String WORD_COUNT = "WORD_COUNT";
+
+ /**
+ * 编码文本常量
+ */
public static final String ENCODE = "ENCODE";
+
/**
- * 英文小写
+ * 英文小写文本常量
*/
public static final String ENGLISH = "english";
- /// BaseConfig 文本常量
/**
- * 中文小写
+ * 中文小写文本常量
*/
public static final String CHINESE = "chinese";
--
Gitee
From d4f02c84c7db0ddd159860367fc36d9695d02a04 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:06:07 +0800
Subject: [PATCH 06/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20SplitPaneItemConstan?=
=?UTF-8?q?ts.java=20=E7=9A=84=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../constants/SplitPaneItemConstants.java | 25 ++++++++++++-------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/src/main/java/org/jcnc/jnotepad/common/constants/SplitPaneItemConstants.java b/src/main/java/org/jcnc/jnotepad/common/constants/SplitPaneItemConstants.java
index abb36ef..c6e2e20 100644
--- a/src/main/java/org/jcnc/jnotepad/common/constants/SplitPaneItemConstants.java
+++ b/src/main/java/org/jcnc/jnotepad/common/constants/SplitPaneItemConstants.java
@@ -2,24 +2,31 @@ package org.jcnc.jnotepad.common.constants;
/**
* SplitPane常量类
- * *
+ *
* 用于记录SplitPane中子组件的索引
*
* @author cccqyu
*/
public class SplitPaneItemConstants {
- // rootSplitPane
-
- // 上部
+ /**
+ * rootSplitPane中的上部分隔栏索引。
+ */
public static final int ROOT_SPLIT_PANE_TOP_SPLIT_PANE = 0;
- // 底部
- public static final int ROOT_SPLIT_PANE_CMDBox = 1;
- // rootSplitPane中的上部面板
- // 左侧
+ /**
+ * rootSplitPane中的底部指令框索引。
+ */
+ public static final int ROOT_SPLIT_PANE_CMD_BOX = 1;
+
+ /**
+ * rootSplitPane中的上部面板的左侧索引。
+ */
public static final int TOP_SPLIT_PANE_DIRECTORY_SIDEBAR_PANE = 0;
- // 右侧
+
+ /**
+ * rootSplitPane中的上部面板的右侧索引。
+ */
public static final int TOP_SPLIT_PANE_CENTER_TAB_PANE = 1;
}
--
Gitee
From a3f77bc6fe3266ab45c9a9cf6b33e1c707dbdfdb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:06:14 +0800
Subject: [PATCH 07/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20RunTopMenu.java=20?=
=?UTF-8?q?=E7=9A=84=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jcnc/jnotepad/views/root/top/menubar/menu/RunTopMenu.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/RunTopMenu.java b/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/RunTopMenu.java
index 91d891c..a65d5f8 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/RunTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/RunTopMenu.java
@@ -142,7 +142,7 @@ public class RunTopMenu extends AbstractTopMenu {
// 调试 test
registerMenuItem(topMenuBar.getDeBugItem(), DE_BUG, "deBugItem", event -> {
BUILD_PANEL_MANAGER.controlShow(true);
- BUILD_PANEL_MANAGER.setText(BUILD_PANEL.getBuildBox(), "待开发");
+ BUILD_PANEL_MANAGER.setText(BUILD_PANEL.getDebugBox(), "待开发");
});
--
Gitee
From cac5a365f5a9baaba950fabf786b0d8814a35664 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:06:19 +0800
Subject: [PATCH 08/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20RunBox.java=20?=
=?UTF-8?q?=E7=9A=84=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../component/module/vbox/components/RunBox.java | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/RunBox.java b/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/RunBox.java
index a35cea1..3fb466a 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/RunBox.java
+++ b/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/RunBox.java
@@ -3,21 +3,29 @@ package org.jcnc.jnotepad.component.module.vbox.components;
import org.jcnc.jnotepad.component.module.TextCodeArea;
/**
- * Run终端界面。
+ * 运行信息显示界面。
*
+ * 这个类实现了一个用于显示运行信息的界面,它是TextCodeArea的子类,并在构造函数中将其设置为不可编辑状态。
+ *
+ * 运行信息可以通过调用setText方法将文本添加到界面中。
*
* @author cccqyu
*/
public class RunBox extends TextCodeArea {
-
-
+ /**
+ * 创建RunBox对象的构造函数。
+ */
public RunBox() {
super();
this.setEditable(false);
}
+ /**
+ * 设置运行信息的文本内容。
+ *
+ * @param text 要显示的运行信息文本
+ */
public void setText(String text) {
this.appendText(text);
}
-
}
--
Gitee
From 0f8cc95e4014bc0387536511d0ccdfafa49d034f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:06:25 +0800
Subject: [PATCH 09/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20PluginConfig.java=20?=
=?UTF-8?q?=E7=9A=84=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jcnc/jnotepad/app/config/PluginConfig.java | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/main/java/org/jcnc/jnotepad/app/config/PluginConfig.java b/src/main/java/org/jcnc/jnotepad/app/config/PluginConfig.java
index 2b05c81..2b110b2 100644
--- a/src/main/java/org/jcnc/jnotepad/app/config/PluginConfig.java
+++ b/src/main/java/org/jcnc/jnotepad/app/config/PluginConfig.java
@@ -7,15 +7,30 @@ import java.util.List;
/**
* 插件配置文件
*
+ *
+ * 此类用于存储插件的配置信息,包括插件描述符的列表。
+ *
+ *
* @author gewuyou
+ *
*/
public class PluginConfig {
private List plugins;
+ /**
+ * 获取插件描述符列表
+ *
+ * @return 插件描述符列表
+ */
public List getPlugins() {
return plugins;
}
+ /**
+ * 设置插件描述符列表
+ *
+ * @param plugins 插件描述符列表
+ */
public void setPlugins(List plugins) {
this.plugins = plugins;
}
--
Gitee
From d4220b2acc8fa198106fddf78a0f6f1fdcf38856 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:06:32 +0800
Subject: [PATCH 10/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20MenuBuilder.java=20?=
=?UTF-8?q?=E7=9A=84=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../core/views/menu/builder/MenuBuilder.java | 22 ++++++++++++++-----
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/src/main/java/org/jcnc/jnotepad/api/core/views/menu/builder/MenuBuilder.java b/src/main/java/org/jcnc/jnotepad/api/core/views/menu/builder/MenuBuilder.java
index 40ee038..789c6a7 100644
--- a/src/main/java/org/jcnc/jnotepad/api/core/views/menu/builder/MenuBuilder.java
+++ b/src/main/java/org/jcnc/jnotepad/api/core/views/menu/builder/MenuBuilder.java
@@ -7,19 +7,29 @@ import javafx.scene.control.MenuItem;
/**
* 菜单建造者类
*
+ *
+ * 此类用于构建菜单对象,可以添加菜单项、单选菜单项、复选菜单项以及分割线等。
+ *
+ *
* @author gewuyou
+ *
*/
public class MenuBuilder extends AbstractMenuBuilder {
private final Menu menu;
+ /**
+ * 构造菜单建造者
+ *
+ * @param label 菜单的标签
+ */
public MenuBuilder(String label) {
menu = new Menu(label);
}
/**
- * Get subclass builder
+ * 获取子类的建造者实例
*
- * @return builder
+ * @return 建造者实例
*/
@Override
protected MenuBuilder getBuilder() {
@@ -27,9 +37,9 @@ public class MenuBuilder extends AbstractMenuBuilder {
}
/**
- * Retrieves the items of the menu.
+ * 获取菜单的菜单项列表
*
- * @return an ObservableList of MenuItems
+ * @return 菜单项列表
*/
@Override
protected ObservableList
*
* @param 配置文件类型
- *
* @author gewuyou
*/
public interface ConfigController {
--
Gitee
From 96fa1434facc6cc3efb6bb29ebeb07b128afb58d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:43:20 +0800
Subject: [PATCH 34/36] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E8=AF=B4=E6=98=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/org/jcnc/jnotepad/app/aReadme.md | 1 +
src/main/java/org/jcnc/jnotepad/app/common/aReadme.md | 1 +
src/main/java/org/jcnc/jnotepad/app/util/aReadme.md | 1 +
src/main/java/org/jcnc/jnotepad/controller/aReadme.md | 1 +
src/main/java/org/jcnc/jnotepad/controller/plugin/aReadme.md | 1 +
src/main/java/org/jcnc/jnotepad/model/aReadme.md | 1 +
src/main/java/org/jcnc/jnotepad/ui/component/aReadme.md | 1 +
src/main/java/org/jcnc/jnotepad/ui/views/aReadme.md | 1 +
8 files changed, 8 insertions(+)
create mode 100644 src/main/java/org/jcnc/jnotepad/app/aReadme.md
create mode 100644 src/main/java/org/jcnc/jnotepad/app/common/aReadme.md
create mode 100644 src/main/java/org/jcnc/jnotepad/app/util/aReadme.md
create mode 100644 src/main/java/org/jcnc/jnotepad/controller/aReadme.md
create mode 100644 src/main/java/org/jcnc/jnotepad/controller/plugin/aReadme.md
create mode 100644 src/main/java/org/jcnc/jnotepad/model/aReadme.md
create mode 100644 src/main/java/org/jcnc/jnotepad/ui/component/aReadme.md
create mode 100644 src/main/java/org/jcnc/jnotepad/ui/views/aReadme.md
diff --git a/src/main/java/org/jcnc/jnotepad/app/aReadme.md b/src/main/java/org/jcnc/jnotepad/app/aReadme.md
new file mode 100644
index 0000000..f8c0fd8
--- /dev/null
+++ b/src/main/java/org/jcnc/jnotepad/app/aReadme.md
@@ -0,0 +1 @@
+app 目录存放应用程序配置、应用程序缓存、通用常量和国际化文件。
diff --git a/src/main/java/org/jcnc/jnotepad/app/common/aReadme.md b/src/main/java/org/jcnc/jnotepad/app/common/aReadme.md
new file mode 100644
index 0000000..e1291f8
--- /dev/null
+++ b/src/main/java/org/jcnc/jnotepad/app/common/aReadme.md
@@ -0,0 +1 @@
+common 目录存放应用程序的通用组卷
\ No newline at end of file
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/aReadme.md b/src/main/java/org/jcnc/jnotepad/app/util/aReadme.md
new file mode 100644
index 0000000..6a5900e
--- /dev/null
+++ b/src/main/java/org/jcnc/jnotepad/app/util/aReadme.md
@@ -0,0 +1 @@
+util 存放通用的实用工具代码。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/aReadme.md b/src/main/java/org/jcnc/jnotepad/controller/aReadme.md
new file mode 100644
index 0000000..c721407
--- /dev/null
+++ b/src/main/java/org/jcnc/jnotepad/controller/aReadme.md
@@ -0,0 +1 @@
+controller 存放控制器相关的代码,包括事件处理、异常处理等。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/plugin/aReadme.md b/src/main/java/org/jcnc/jnotepad/controller/plugin/aReadme.md
new file mode 100644
index 0000000..e89957c
--- /dev/null
+++ b/src/main/java/org/jcnc/jnotepad/controller/plugin/aReadme.md
@@ -0,0 +1 @@
+plugin 存放插件相关的代码,包括插件接口和管理器。
diff --git a/src/main/java/org/jcnc/jnotepad/model/aReadme.md b/src/main/java/org/jcnc/jnotepad/model/aReadme.md
new file mode 100644
index 0000000..3bb67d3
--- /dev/null
+++ b/src/main/java/org/jcnc/jnotepad/model/aReadme.md
@@ -0,0 +1 @@
+model 存放模型相关的代码,包括实体类和枚举。
diff --git a/src/main/java/org/jcnc/jnotepad/ui/component/aReadme.md b/src/main/java/org/jcnc/jnotepad/ui/component/aReadme.md
new file mode 100644
index 0000000..dee97fc
--- /dev/null
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/aReadme.md
@@ -0,0 +1 @@
+component 目录包含可复用的UI组件,如自定义模块。
diff --git a/src/main/java/org/jcnc/jnotepad/ui/views/aReadme.md b/src/main/java/org/jcnc/jnotepad/ui/views/aReadme.md
new file mode 100644
index 0000000..3c76b3b
--- /dev/null
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/aReadme.md
@@ -0,0 +1 @@
+view 存放与视图相关的代码。
--
Gitee
From 36ac4c87f12adec89b1c28bfe43e42093bc6189c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:43:52 +0800
Subject: [PATCH 35/36] =?UTF-8?q?=E9=87=8D=E6=9E=84=E9=A1=B9=E7=9B=AE?=
=?UTF-8?q?=E7=BB=93=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/module-info.java | 30 +++++++++----------
.../java/org/jcnc/jnotepad/JnotepadApp.java | 2 +-
.../config/BaseConfigController.java | 6 ++--
.../bottom/AbstractFunctionChildrenBox.java | 2 +-
.../core/views/top/menu/AbstractTopMenu.java | 4 +--
.../common/constants/AppConstants.java | 2 +-
.../constants/SplitPaneItemConstants.java | 2 +-
.../common/constants/TextConstants.java | 2 +-
.../manager/ApplicationCacheManager.java | 2 +-
.../common/manager/ThreadPoolManager.java | 4 +--
.../jcnc/jnotepad/app/config/AppConfig.java | 4 +--
.../app/manager/ApplicationManager.java | 20 ++++++-------
.../{ => app}/util/ClipboardUtil.java | 2 +-
.../{ => app}/util/EncodingDetector.java | 2 +-
.../jnotepad/{ => app}/util/FileUtil.java | 2 +-
.../jnotepad/{ => app}/util/JsonUtil.java | 2 +-
.../jcnc/jnotepad/{ => app}/util/LogUtil.java | 2 +-
.../{ => app}/util/NotificationUtil.java | 4 +--
.../jnotepad/{ => app}/util/PopUpUtil.java | 6 ++--
.../jnotepad/{ => app}/util/ResourceUtil.java | 2 +-
.../jcnc/jnotepad/{ => app}/util/TabUtil.java | 24 +++++++--------
.../jcnc/jnotepad/{ => app}/util/UiUtil.java | 4 +--
.../controller/ResourceController.java | 2 +-
.../controller/cache/CacheController.java | 6 ++--
.../config/AppConfigController.java | 4 +--
.../config/PluginConfigController.java | 2 +-
.../config/UserConfigController.java | 4 +--
.../event/handler/menuitem/NewFile.java | 2 +-
.../event/handler/menuitem/OpenConfig.java | 4 +--
.../event/handler/menuitem/OpenFile.java | 10 +++----
.../event/handler/menuitem/RenameFile.java | 4 +--
.../event/handler/menuitem/SaveAsFile.java | 6 ++--
.../event/handler/menuitem/SaveFile.java | 4 +--
.../event/handler/toolbar/DirTreeBtn.java | 2 +-
.../event/handler/toolbar/OpenDirectory.java | 12 ++++----
.../event/handler/toolbar/RunBtn.java | 2 +-
.../event/handler/toolbar/SetBtn.java | 2 +-
.../i18n/LocalizationController.java | 4 +--
.../controller/manager/Controller.java | 8 ++---
.../{ => controller}/plugin/PluginLoader.java | 12 ++++----
.../plugin/PluginManagerInterface.java | 12 ++++----
.../plugin/interfaces/Plugin.java | 2 +-
.../plugin/manager/PluginManager.java | 10 +++----
.../model/entity/PluginDescriptor.java | 2 +-
.../component/module/TextCodeArea.java | 2 +-
.../module/base/AbstractBorderPane.java | 4 +--
.../module/base/AbstractHorizontalBox.java | 4 +--
.../module/base/AbstractVerticalBox.java | 4 +--
.../module/hbox/CustomTitleBarBox.java | 2 +-
.../module/interfaces/BorderPaneAble.java | 2 +-
.../module/interfaces/ControllerAble.java | 2 +-
.../module/interfaces/HorizontalBoxAble.java | 2 +-
.../module/interfaces/VerticalBoxAble.java | 2 +-
.../component/module/vbox/BuildPanel.java | 8 ++---
.../vbox/components/CmdTerminalBox.java | 4 +--
.../module/vbox/components/DebugBox.java | 4 +--
.../module/vbox/components/RunBox.java | 4 +--
.../stage/dialog/AppDialogBuilder.java | 6 ++--
.../stage/dialog/AppDialogStage.java | 4 +--
.../factory/DirectoryChooserFactory.java | 2 +-
.../dialog/factory/FileChooserFactory.java | 2 +-
.../impl/BasicDirectoryChooserFactory.java | 4 +--
.../factory/impl/BasicFileChooserFactory.java | 4 +--
.../dialog/interfaces/DialogButtonAction.java | 4 +--
.../stage/setting/CustomSetButton.java | 2 +-
.../component/stage/setting/SetDevBox.java | 2 +-
.../component/stage/setting/SetStage.java | 18 +++++------
.../topmenu/builder/StageButtonBuilder.java | 2 +-
.../topmenu/help/DeveloperDebugPaneStage.java | 10 +++----
.../stage/topmenu/help/HelpPaneStage.java | 12 ++++----
.../stage/topmenu/plugin/CustomSplitPane.java | 2 +-
.../topmenu/plugin/PluginManagementPane.java | 12 ++++----
.../views/manager/BottomStatusBoxManager.java | 12 ++++----
.../views/manager/BuildPanelManager.java | 6 ++--
.../views/manager/CenterTabPaneManager.java | 16 +++++-----
.../manager/DirectorySidebarManager.java | 12 ++++----
.../views/manager/MainBorderPaneManager.java | 12 ++++----
.../views/manager/RootBorderPaneManager.java | 16 +++++-----
.../RootBottomSideBarVerticalBoxManager.java | 8 ++---
.../{ => ui}/views/manager/RootManager.java | 4 +--
.../RootRightSideBarVerticalBoxManager.java | 4 +--
.../manager/RootTopBorderPaneManager.java | 6 ++--
.../views/manager/SidebarToolBarManager.java | 6 ++--
.../views/manager/TopMenuBarManager.java | 8 ++---
.../{ => ui}/views/root/RootBorderPane.java | 4 +--
.../bottom/RootBottomSideBarVerticalBox.java | 4 +--
.../root/bottom/function/FunctionBox.java | 2 +-
.../root/bottom/status/BottomStatusBox.java | 4 +--
.../root/center/main/MainBorderPane.java | 4 +--
.../directory/DirectorySidebarPane.java | 4 +--
.../center/main/center/tab/CenterTab.java | 14 ++++-----
.../center/main/center/tab/CenterTabPane.java | 2 +-
.../left/sidebar/tools/SidebarToolBar.java | 2 +-
.../left/sidebar/tools/ToolVerticalBox.java | 4 +--
.../right/RootRightSideBarVerticalBox.java | 4 +--
.../views/root/top/RootTopBorderPane.java | 4 +--
.../views/root/top/menubar/TopMenuBar.java | 6 ++--
.../root/top/menubar/menu/FileTopMenu.java | 4 +--
.../root/top/menubar/menu/HelpTopMenu.java | 8 ++---
.../top/menubar/menu/LanguageTopMenu.java | 4 +--
.../root/top/menubar/menu/PluginTopMenu.java | 6 ++--
.../root/top/menubar/menu/RunTopMenu.java | 16 +++++-----
.../root/top/menubar/menu/SettingTopMenu.java | 8 ++---
103 files changed, 295 insertions(+), 295 deletions(-)
rename src/main/java/org/jcnc/jnotepad/{ => app}/common/constants/AppConstants.java (97%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/common/constants/SplitPaneItemConstants.java (93%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/common/constants/TextConstants.java (98%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/common/manager/ApplicationCacheManager.java (94%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/common/manager/ThreadPoolManager.java (96%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/util/ClipboardUtil.java (96%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/util/EncodingDetector.java (98%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/util/FileUtil.java (99%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/util/JsonUtil.java (98%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/util/LogUtil.java (95%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/util/NotificationUtil.java (97%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/util/PopUpUtil.java (96%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/util/ResourceUtil.java (98%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/util/TabUtil.java (95%)
rename src/main/java/org/jcnc/jnotepad/{ => app}/util/UiUtil.java (98%)
rename src/main/java/org/jcnc/jnotepad/{ => controller}/plugin/PluginLoader.java (97%)
rename src/main/java/org/jcnc/jnotepad/{ => controller}/plugin/PluginManagerInterface.java (92%)
rename src/main/java/org/jcnc/jnotepad/{ => controller}/plugin/interfaces/Plugin.java (84%)
rename src/main/java/org/jcnc/jnotepad/{ => controller}/plugin/manager/PluginManager.java (95%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/TextCodeArea.java (99%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/base/AbstractBorderPane.java (90%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/base/AbstractHorizontalBox.java (91%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/base/AbstractVerticalBox.java (91%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/hbox/CustomTitleBarBox.java (98%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/interfaces/BorderPaneAble.java (95%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/interfaces/ControllerAble.java (92%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/interfaces/HorizontalBoxAble.java (93%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/interfaces/VerticalBoxAble.java (93%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/vbox/BuildPanel.java (87%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/vbox/components/CmdTerminalBox.java (97%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/vbox/components/DebugBox.java (85%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/module/vbox/components/RunBox.java (84%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/dialog/AppDialogBuilder.java (97%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/dialog/AppDialogStage.java (95%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/dialog/factory/DirectoryChooserFactory.java (93%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/dialog/factory/FileChooserFactory.java (94%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/dialog/factory/impl/BasicDirectoryChooserFactory.java (90%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/dialog/factory/impl/BasicFileChooserFactory.java (94%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/dialog/interfaces/DialogButtonAction.java (72%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/setting/CustomSetButton.java (79%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/setting/SetDevBox.java (97%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/setting/SetStage.java (95%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/topmenu/builder/StageButtonBuilder.java (92%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/topmenu/help/DeveloperDebugPaneStage.java (94%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/topmenu/help/HelpPaneStage.java (95%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/topmenu/plugin/CustomSplitPane.java (96%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/component/stage/topmenu/plugin/PluginManagementPane.java (97%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/BottomStatusBoxManager.java (95%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/BuildPanelManager.java (89%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/CenterTabPaneManager.java (95%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/DirectorySidebarManager.java (92%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/MainBorderPaneManager.java (81%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/RootBorderPaneManager.java (74%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/RootBottomSideBarVerticalBoxManager.java (81%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/RootManager.java (98%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/RootRightSideBarVerticalBoxManager.java (85%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/RootTopBorderPaneManager.java (80%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/SidebarToolBarManager.java (94%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/manager/TopMenuBarManager.java (94%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/RootBorderPane.java (85%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/bottom/RootBottomSideBarVerticalBox.java (87%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/bottom/function/FunctionBox.java (92%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/bottom/status/BottomStatusBox.java (87%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/center/main/MainBorderPane.java (80%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/center/main/center/directory/DirectorySidebarPane.java (89%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/center/main/center/tab/CenterTab.java (93%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/center/main/center/tab/CenterTabPane.java (84%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/left/sidebar/tools/SidebarToolBar.java (96%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/left/sidebar/tools/ToolVerticalBox.java (86%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/right/RootRightSideBarVerticalBox.java (85%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/top/RootTopBorderPane.java (85%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/top/menubar/TopMenuBar.java (96%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/top/menubar/menu/FileTopMenu.java (93%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/top/menubar/menu/HelpTopMenu.java (83%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/top/menubar/menu/LanguageTopMenu.java (96%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/top/menubar/menu/PluginTopMenu.java (86%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/top/menubar/menu/RunTopMenu.java (89%)
rename src/main/java/org/jcnc/jnotepad/{ => ui}/views/root/top/menubar/menu/SettingTopMenu.java (90%)
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 40812fd..2c2066c 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -24,30 +24,30 @@ module org.jcnc.jnotepad {
exports org.jcnc.jnotepad.model.enums;
exports org.jcnc.jnotepad.app.config;
exports org.jcnc.jnotepad.app.i18n;
- exports org.jcnc.jnotepad.common.constants;
+ exports org.jcnc.jnotepad.app.common.constants;
exports org.jcnc.jnotepad.controller.config;
exports org.jcnc.jnotepad.controller.manager;
exports org.jcnc.jnotepad.controller.i18n;
exports org.jcnc.jnotepad.controller.event.handler.toolbar;
exports org.jcnc.jnotepad.controller.event.handler.menuitem;
- exports org.jcnc.jnotepad.component.module.interfaces;
+ exports org.jcnc.jnotepad.ui.component.module.interfaces;
opens org.jcnc.jnotepad.app.config;
- exports org.jcnc.jnotepad.plugin.interfaces;
- exports org.jcnc.jnotepad.views.root.bottom.function;
+ exports org.jcnc.jnotepad.controller.plugin.interfaces;
+ exports org.jcnc.jnotepad.ui.views.root.bottom.function;
- exports org.jcnc.jnotepad.component.module;
+ exports org.jcnc.jnotepad.ui.component.module;
exports org.jcnc.jnotepad.model.entity;
- exports org.jcnc.jnotepad.views.root.bottom;
- exports org.jcnc.jnotepad.views.root.bottom.status;
+ exports org.jcnc.jnotepad.ui.views.root.bottom;
+ exports org.jcnc.jnotepad.ui.views.root.bottom.status;
exports org.jcnc.jnotepad.api.core.views.sidebar.bottom;
exports org.jcnc.jnotepad.api.core.controller.config;
- exports org.jcnc.jnotepad.component.module.base;
- exports org.jcnc.jnotepad.component.stage.setting;
- exports org.jcnc.jnotepad.component.module.vbox;
- exports org.jcnc.jnotepad.component.module.hbox;
- exports org.jcnc.jnotepad.component.stage.topmenu.help;
- exports org.jcnc.jnotepad.component.stage.topmenu.plugin;
- exports org.jcnc.jnotepad.component.module.vbox.components;
- exports org.jcnc.jnotepad.views.root.center.main.center.tab;
+ exports org.jcnc.jnotepad.ui.component.module.base;
+ exports org.jcnc.jnotepad.ui.component.stage.setting;
+ exports org.jcnc.jnotepad.ui.component.module.vbox;
+ exports org.jcnc.jnotepad.ui.component.module.hbox;
+ exports org.jcnc.jnotepad.ui.component.stage.topmenu.help;
+ exports org.jcnc.jnotepad.ui.component.stage.topmenu.plugin;
+ exports org.jcnc.jnotepad.ui.component.module.vbox.components;
+ exports org.jcnc.jnotepad.ui.views.root.center.main.center.tab;
}
\ No newline at end of file
diff --git a/src/main/java/org/jcnc/jnotepad/JnotepadApp.java b/src/main/java/org/jcnc/jnotepad/JnotepadApp.java
index d2ccd29..8d2abe2 100644
--- a/src/main/java/org/jcnc/jnotepad/JnotepadApp.java
+++ b/src/main/java/org/jcnc/jnotepad/JnotepadApp.java
@@ -3,7 +3,7 @@ package org.jcnc.jnotepad;
import javafx.application.Application;
import javafx.stage.Stage;
import org.jcnc.jnotepad.app.manager.ApplicationManager;
-import org.jcnc.jnotepad.util.LogUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/api/core/controller/config/BaseConfigController.java b/src/main/java/org/jcnc/jnotepad/api/core/controller/config/BaseConfigController.java
index 174c16d..5d04c42 100644
--- a/src/main/java/org/jcnc/jnotepad/api/core/controller/config/BaseConfigController.java
+++ b/src/main/java/org/jcnc/jnotepad/api/core/controller/config/BaseConfigController.java
@@ -1,10 +1,10 @@
package org.jcnc.jnotepad.api.core.controller.config;
import org.jcnc.jnotepad.api.core.controller.interfaces.ConfigController;
+import org.jcnc.jnotepad.app.util.JsonUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.util.PopUpUtil;
import org.jcnc.jnotepad.controller.exception.AppException;
-import org.jcnc.jnotepad.util.JsonUtil;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.util.PopUpUtil;
import org.slf4j.Logger;
import java.io.BufferedWriter;
diff --git a/src/main/java/org/jcnc/jnotepad/api/core/views/sidebar/bottom/AbstractFunctionChildrenBox.java b/src/main/java/org/jcnc/jnotepad/api/core/views/sidebar/bottom/AbstractFunctionChildrenBox.java
index 59e3fba..7e61c8a 100644
--- a/src/main/java/org/jcnc/jnotepad/api/core/views/sidebar/bottom/AbstractFunctionChildrenBox.java
+++ b/src/main/java/org/jcnc/jnotepad/api/core/views/sidebar/bottom/AbstractFunctionChildrenBox.java
@@ -3,7 +3,7 @@ package org.jcnc.jnotepad.api.core.views.sidebar.bottom;
import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
-import org.jcnc.jnotepad.views.root.bottom.function.FunctionBox;
+import org.jcnc.jnotepad.ui.views.root.bottom.function.FunctionBox;
/**
* 子功能栏抽象类
diff --git a/src/main/java/org/jcnc/jnotepad/api/core/views/top/menu/AbstractTopMenu.java b/src/main/java/org/jcnc/jnotepad/api/core/views/top/menu/AbstractTopMenu.java
index 3b9b06d..d2154bc 100644
--- a/src/main/java/org/jcnc/jnotepad/api/core/views/top/menu/AbstractTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/api/core/views/top/menu/AbstractTopMenu.java
@@ -8,8 +8,8 @@ import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import javafx.scene.control.RadioMenuItem;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.views.root.top.menubar.TopMenuBar;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.ui.views.root.top.menubar.TopMenuBar;
import org.slf4j.Logger;
import java.util.Map;
diff --git a/src/main/java/org/jcnc/jnotepad/common/constants/AppConstants.java b/src/main/java/org/jcnc/jnotepad/app/common/constants/AppConstants.java
similarity index 97%
rename from src/main/java/org/jcnc/jnotepad/common/constants/AppConstants.java
rename to src/main/java/org/jcnc/jnotepad/app/common/constants/AppConstants.java
index 3c50b82..ebc7d32 100644
--- a/src/main/java/org/jcnc/jnotepad/common/constants/AppConstants.java
+++ b/src/main/java/org/jcnc/jnotepad/app/common/constants/AppConstants.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.common.constants;
+package org.jcnc.jnotepad.app.common.constants;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
diff --git a/src/main/java/org/jcnc/jnotepad/common/constants/SplitPaneItemConstants.java b/src/main/java/org/jcnc/jnotepad/app/common/constants/SplitPaneItemConstants.java
similarity index 93%
rename from src/main/java/org/jcnc/jnotepad/common/constants/SplitPaneItemConstants.java
rename to src/main/java/org/jcnc/jnotepad/app/common/constants/SplitPaneItemConstants.java
index c6e2e20..44c5ccf 100644
--- a/src/main/java/org/jcnc/jnotepad/common/constants/SplitPaneItemConstants.java
+++ b/src/main/java/org/jcnc/jnotepad/app/common/constants/SplitPaneItemConstants.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.common.constants;
+package org.jcnc.jnotepad.app.common.constants;
/**
* SplitPane常量类
diff --git a/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java b/src/main/java/org/jcnc/jnotepad/app/common/constants/TextConstants.java
similarity index 98%
rename from src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java
rename to src/main/java/org/jcnc/jnotepad/app/common/constants/TextConstants.java
index 098964a..a881d26 100644
--- a/src/main/java/org/jcnc/jnotepad/common/constants/TextConstants.java
+++ b/src/main/java/org/jcnc/jnotepad/app/common/constants/TextConstants.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.common.constants;
+package org.jcnc.jnotepad.app.common.constants;
/**
* 文本常量类,包含多处使用的文本常量。
diff --git a/src/main/java/org/jcnc/jnotepad/common/manager/ApplicationCacheManager.java b/src/main/java/org/jcnc/jnotepad/app/common/manager/ApplicationCacheManager.java
similarity index 94%
rename from src/main/java/org/jcnc/jnotepad/common/manager/ApplicationCacheManager.java
rename to src/main/java/org/jcnc/jnotepad/app/common/manager/ApplicationCacheManager.java
index 19bcaab..7a88c5a 100644
--- a/src/main/java/org/jcnc/jnotepad/common/manager/ApplicationCacheManager.java
+++ b/src/main/java/org/jcnc/jnotepad/app/common/manager/ApplicationCacheManager.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.common.manager;
+package org.jcnc.jnotepad.app.common.manager;
import org.jcnc.jnotepad.api.core.manager.AbstractCacheManager;
diff --git a/src/main/java/org/jcnc/jnotepad/common/manager/ThreadPoolManager.java b/src/main/java/org/jcnc/jnotepad/app/common/manager/ThreadPoolManager.java
similarity index 96%
rename from src/main/java/org/jcnc/jnotepad/common/manager/ThreadPoolManager.java
rename to src/main/java/org/jcnc/jnotepad/app/common/manager/ThreadPoolManager.java
index bab3a57..fcf5bbd 100644
--- a/src/main/java/org/jcnc/jnotepad/common/manager/ThreadPoolManager.java
+++ b/src/main/java/org/jcnc/jnotepad/app/common/manager/ThreadPoolManager.java
@@ -1,6 +1,6 @@
-package org.jcnc.jnotepad.common.manager;
+package org.jcnc.jnotepad.app.common.manager;
-import org.jcnc.jnotepad.util.LogUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
import org.slf4j.Logger;
import java.util.concurrent.*;
diff --git a/src/main/java/org/jcnc/jnotepad/app/config/AppConfig.java b/src/main/java/org/jcnc/jnotepad/app/config/AppConfig.java
index ad46c98..c12acc9 100644
--- a/src/main/java/org/jcnc/jnotepad/app/config/AppConfig.java
+++ b/src/main/java/org/jcnc/jnotepad/app/config/AppConfig.java
@@ -8,8 +8,8 @@ import java.util.Collections;
import java.util.Optional;
import java.util.Set;
-import static org.jcnc.jnotepad.common.constants.AppConstants.DEFAULT_PROPERTY;
-import static org.jcnc.jnotepad.common.constants.AppConstants.PROGRAM_FILE_DIRECTORY;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.DEFAULT_PROPERTY;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.PROGRAM_FILE_DIRECTORY;
/**
* 应用程序配置文件
diff --git a/src/main/java/org/jcnc/jnotepad/app/manager/ApplicationManager.java b/src/main/java/org/jcnc/jnotepad/app/manager/ApplicationManager.java
index 6ba75f4..d0aba5a 100644
--- a/src/main/java/org/jcnc/jnotepad/app/manager/ApplicationManager.java
+++ b/src/main/java/org/jcnc/jnotepad/app/manager/ApplicationManager.java
@@ -8,22 +8,22 @@ import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.stage.Window;
import org.jcnc.jnotepad.JnotepadApp;
+import org.jcnc.jnotepad.app.common.constants.AppConstants;
+import org.jcnc.jnotepad.app.common.constants.TextConstants;
+import org.jcnc.jnotepad.app.common.manager.ThreadPoolManager;
import org.jcnc.jnotepad.app.config.AppConfig;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
-import org.jcnc.jnotepad.common.constants.AppConstants;
-import org.jcnc.jnotepad.common.constants.TextConstants;
-import org.jcnc.jnotepad.common.manager.ThreadPoolManager;
+import org.jcnc.jnotepad.app.util.FileUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.util.UiUtil;
import org.jcnc.jnotepad.controller.ResourceController;
import org.jcnc.jnotepad.controller.cache.CacheController;
import org.jcnc.jnotepad.controller.config.AppConfigController;
import org.jcnc.jnotepad.controller.config.PluginConfigController;
import org.jcnc.jnotepad.controller.exception.AppException;
import org.jcnc.jnotepad.controller.manager.Controller;
-import org.jcnc.jnotepad.plugin.manager.PluginManager;
-import org.jcnc.jnotepad.util.FileUtil;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.util.UiUtil;
-import org.jcnc.jnotepad.views.manager.*;
+import org.jcnc.jnotepad.controller.plugin.manager.PluginManager;
+import org.jcnc.jnotepad.ui.views.manager.*;
import java.io.File;
import java.io.IOException;
@@ -34,8 +34,8 @@ import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ExecutorService;
-import static org.jcnc.jnotepad.common.constants.AppConstants.DEFAULT_PROPERTY;
-import static org.jcnc.jnotepad.common.constants.AppConstants.PROGRAM_FILE_DIRECTORY;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.DEFAULT_PROPERTY;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.PROGRAM_FILE_DIRECTORY;
/**
* 应用程序管理类
diff --git a/src/main/java/org/jcnc/jnotepad/util/ClipboardUtil.java b/src/main/java/org/jcnc/jnotepad/app/util/ClipboardUtil.java
similarity index 96%
rename from src/main/java/org/jcnc/jnotepad/util/ClipboardUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/util/ClipboardUtil.java
index 4e95321..dd42114 100644
--- a/src/main/java/org/jcnc/jnotepad/util/ClipboardUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/util/ClipboardUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.util;
+package org.jcnc.jnotepad.app.util;
import javafx.scene.input.Clipboard;
import javafx.scene.input.ClipboardContent;
diff --git a/src/main/java/org/jcnc/jnotepad/util/EncodingDetector.java b/src/main/java/org/jcnc/jnotepad/app/util/EncodingDetector.java
similarity index 98%
rename from src/main/java/org/jcnc/jnotepad/util/EncodingDetector.java
rename to src/main/java/org/jcnc/jnotepad/app/util/EncodingDetector.java
index 9511288..620fbfa 100644
--- a/src/main/java/org/jcnc/jnotepad/util/EncodingDetector.java
+++ b/src/main/java/org/jcnc/jnotepad/app/util/EncodingDetector.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.util;
+package org.jcnc.jnotepad.app.util;
import com.ibm.icu.text.CharsetDetector;
import com.ibm.icu.text.CharsetMatch;
diff --git a/src/main/java/org/jcnc/jnotepad/util/FileUtil.java b/src/main/java/org/jcnc/jnotepad/app/util/FileUtil.java
similarity index 99%
rename from src/main/java/org/jcnc/jnotepad/util/FileUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/util/FileUtil.java
index f17542f..8f6b6ad 100644
--- a/src/main/java/org/jcnc/jnotepad/util/FileUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/util/FileUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.util;
+package org.jcnc.jnotepad.app.util;
import javafx.scene.Node;
import org.jcnc.jnotepad.controller.event.handler.menuitem.OpenFile;
diff --git a/src/main/java/org/jcnc/jnotepad/util/JsonUtil.java b/src/main/java/org/jcnc/jnotepad/app/util/JsonUtil.java
similarity index 98%
rename from src/main/java/org/jcnc/jnotepad/util/JsonUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/util/JsonUtil.java
index 7960f5e..9ec43db 100644
--- a/src/main/java/org/jcnc/jnotepad/util/JsonUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/util/JsonUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.util;
+package org.jcnc.jnotepad.app.util;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git a/src/main/java/org/jcnc/jnotepad/util/LogUtil.java b/src/main/java/org/jcnc/jnotepad/app/util/LogUtil.java
similarity index 95%
rename from src/main/java/org/jcnc/jnotepad/util/LogUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/util/LogUtil.java
index 34eb0d4..04e8ce6 100644
--- a/src/main/java/org/jcnc/jnotepad/util/LogUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/util/LogUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.util;
+package org.jcnc.jnotepad.app.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/org/jcnc/jnotepad/util/NotificationUtil.java b/src/main/java/org/jcnc/jnotepad/app/util/NotificationUtil.java
similarity index 97%
rename from src/main/java/org/jcnc/jnotepad/util/NotificationUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/util/NotificationUtil.java
index 3c5bf4f..2528eb4 100644
--- a/src/main/java/org/jcnc/jnotepad/util/NotificationUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/util/NotificationUtil.java
@@ -1,9 +1,9 @@
-package org.jcnc.jnotepad.util;
+package org.jcnc.jnotepad.app.util;
import atlantafx.base.controls.Notification;
import atlantafx.base.theme.Styles;
import javafx.scene.layout.StackPane;
-import org.jcnc.jnotepad.views.manager.RootManager;
+import org.jcnc.jnotepad.ui.views.manager.RootManager;
import org.kordamp.ikonli.javafx.FontIcon;
import java.util.Collections;
diff --git a/src/main/java/org/jcnc/jnotepad/util/PopUpUtil.java b/src/main/java/org/jcnc/jnotepad/app/util/PopUpUtil.java
similarity index 96%
rename from src/main/java/org/jcnc/jnotepad/util/PopUpUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/util/PopUpUtil.java
index d205ea8..a1a58e8 100644
--- a/src/main/java/org/jcnc/jnotepad/util/PopUpUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/util/PopUpUtil.java
@@ -1,8 +1,8 @@
-package org.jcnc.jnotepad.util;
+package org.jcnc.jnotepad.app.util;
-import org.jcnc.jnotepad.component.stage.dialog.AppDialogBuilder;
-import org.jcnc.jnotepad.component.stage.dialog.interfaces.DialogButtonAction;
import org.jcnc.jnotepad.model.enums.DialogType;
+import org.jcnc.jnotepad.ui.component.stage.dialog.AppDialogBuilder;
+import org.jcnc.jnotepad.ui.component.stage.dialog.interfaces.DialogButtonAction;
/**
* 弹窗工具类
diff --git a/src/main/java/org/jcnc/jnotepad/util/ResourceUtil.java b/src/main/java/org/jcnc/jnotepad/app/util/ResourceUtil.java
similarity index 98%
rename from src/main/java/org/jcnc/jnotepad/util/ResourceUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/util/ResourceUtil.java
index ee7f7c0..d0da3d5 100644
--- a/src/main/java/org/jcnc/jnotepad/util/ResourceUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/util/ResourceUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.util;
+package org.jcnc.jnotepad.app.util;
import org.jcnc.jnotepad.JnotepadApp;
diff --git a/src/main/java/org/jcnc/jnotepad/util/TabUtil.java b/src/main/java/org/jcnc/jnotepad/app/util/TabUtil.java
similarity index 95%
rename from src/main/java/org/jcnc/jnotepad/util/TabUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/util/TabUtil.java
index b083441..627a8d8 100644
--- a/src/main/java/org/jcnc/jnotepad/util/TabUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/util/TabUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.util;
+package org.jcnc.jnotepad.app.util;
import javafx.scene.control.Tab;
import javafx.scene.control.TextField;
@@ -6,22 +6,22 @@ import javafx.scene.input.KeyCode;
import javafx.stage.FileChooser;
import org.jcnc.jnotepad.api.core.views.menu.builder.ContextMenuBuilder;
import org.jcnc.jnotepad.api.core.views.menu.builder.MenuBuilder;
+import org.jcnc.jnotepad.app.common.constants.AppConstants;
+import org.jcnc.jnotepad.app.common.constants.TextConstants;
+import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
-import org.jcnc.jnotepad.common.constants.AppConstants;
-import org.jcnc.jnotepad.common.constants.TextConstants;
-import org.jcnc.jnotepad.common.manager.ApplicationCacheManager;
-import org.jcnc.jnotepad.component.module.TextCodeArea;
-import org.jcnc.jnotepad.component.stage.dialog.factory.impl.BasicFileChooserFactory;
import org.jcnc.jnotepad.controller.config.UserConfigController;
import org.jcnc.jnotepad.controller.event.handler.menuitem.OpenFile;
import org.jcnc.jnotepad.controller.i18n.LocalizationController;
import org.jcnc.jnotepad.model.entity.Cache;
import org.jcnc.jnotepad.model.enums.CacheExpirationTime;
-import org.jcnc.jnotepad.views.manager.BottomStatusBoxManager;
-import org.jcnc.jnotepad.views.manager.CenterTabPaneManager;
-import org.jcnc.jnotepad.views.manager.TopMenuBarManager;
-import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTab;
-import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTabPane;
+import org.jcnc.jnotepad.ui.component.module.TextCodeArea;
+import org.jcnc.jnotepad.ui.component.stage.dialog.factory.impl.BasicFileChooserFactory;
+import org.jcnc.jnotepad.ui.views.manager.BottomStatusBoxManager;
+import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
+import org.jcnc.jnotepad.ui.views.manager.TopMenuBarManager;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.tab.CenterTab;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.tab.CenterTabPane;
import org.slf4j.Logger;
import java.io.File;
@@ -29,8 +29,8 @@ import java.nio.charset.Charset;
import java.util.Comparator;
import java.util.List;
+import static org.jcnc.jnotepad.app.util.FileUtil.getFileText;
import static org.jcnc.jnotepad.controller.config.UserConfigController.CONFIG_NAME;
-import static org.jcnc.jnotepad.util.FileUtil.getFileText;
/**
* 标签页工具
diff --git a/src/main/java/org/jcnc/jnotepad/util/UiUtil.java b/src/main/java/org/jcnc/jnotepad/app/util/UiUtil.java
similarity index 98%
rename from src/main/java/org/jcnc/jnotepad/util/UiUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/util/UiUtil.java
index 7cfe1c0..8411829 100644
--- a/src/main/java/org/jcnc/jnotepad/util/UiUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/util/UiUtil.java
@@ -1,12 +1,12 @@
-package org.jcnc.jnotepad.util;
+package org.jcnc.jnotepad.app.util;
import atlantafx.base.theme.Styles;
import javafx.scene.Node;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Window;
+import org.jcnc.jnotepad.app.common.constants.AppConstants;
import org.jcnc.jnotepad.app.manager.ApplicationManager;
-import org.jcnc.jnotepad.common.constants.AppConstants;
import org.kordamp.ikonli.javafx.FontIcon;
import java.util.HashMap;
diff --git a/src/main/java/org/jcnc/jnotepad/controller/ResourceController.java b/src/main/java/org/jcnc/jnotepad/controller/ResourceController.java
index 8ac7794..a545c26 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/ResourceController.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/ResourceController.java
@@ -1,7 +1,7 @@
package org.jcnc.jnotepad.controller;
import org.jcnc.jnotepad.controller.i18n.LocalizationController;
-import org.jcnc.jnotepad.plugin.PluginLoader;
+import org.jcnc.jnotepad.controller.plugin.PluginLoader;
/**
* 资源控制器
diff --git a/src/main/java/org/jcnc/jnotepad/controller/cache/CacheController.java b/src/main/java/org/jcnc/jnotepad/controller/cache/CacheController.java
index 28cd7d0..77fbd42 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/cache/CacheController.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/cache/CacheController.java
@@ -1,11 +1,11 @@
package org.jcnc.jnotepad.controller.cache;
import com.fasterxml.jackson.core.type.TypeReference;
-import org.jcnc.jnotepad.common.manager.ApplicationCacheManager;
+import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
+import org.jcnc.jnotepad.app.util.JsonUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
import org.jcnc.jnotepad.controller.config.AppConfigController;
import org.jcnc.jnotepad.model.entity.Cache;
-import org.jcnc.jnotepad.util.JsonUtil;
-import org.jcnc.jnotepad.util.LogUtil;
import org.slf4j.Logger;
import java.io.File;
diff --git a/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java b/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java
index 293432f..fb40bcb 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java
@@ -5,8 +5,8 @@ import org.jcnc.jnotepad.app.config.AppConfig;
import java.nio.file.Paths;
-import static org.jcnc.jnotepad.common.constants.AppConstants.DEFAULT_PROPERTY;
-import static org.jcnc.jnotepad.common.constants.AppConstants.PROGRAM_FILE_DIRECTORY;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.DEFAULT_PROPERTY;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.PROGRAM_FILE_DIRECTORY;
/**
* 应用程序配置文件控制器
diff --git a/src/main/java/org/jcnc/jnotepad/controller/config/PluginConfigController.java b/src/main/java/org/jcnc/jnotepad/controller/config/PluginConfigController.java
index f65146d..bce610f 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/config/PluginConfigController.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/config/PluginConfigController.java
@@ -7,7 +7,7 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
-import static org.jcnc.jnotepad.common.constants.AppConstants.PROGRAM_FILE_DIRECTORY;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.PROGRAM_FILE_DIRECTORY;
/**
* 插件控制器
diff --git a/src/main/java/org/jcnc/jnotepad/controller/config/UserConfigController.java b/src/main/java/org/jcnc/jnotepad/controller/config/UserConfigController.java
index 3bbb9bd..2d2b4bf 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/config/UserConfigController.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/config/UserConfigController.java
@@ -8,8 +8,8 @@ import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
-import static org.jcnc.jnotepad.common.constants.AppConstants.PROGRAM_FILE_DIRECTORY;
-import static org.jcnc.jnotepad.common.constants.TextConstants.CHINESE;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.PROGRAM_FILE_DIRECTORY;
+import static org.jcnc.jnotepad.app.common.constants.TextConstants.CHINESE;
/**
* 应用程序配置控制器
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/NewFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/NewFile.java
index 6c9b0b4..27722cd 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/NewFile.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/NewFile.java
@@ -3,7 +3,7 @@ package org.jcnc.jnotepad.controller.event.handler.menuitem;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
-import static org.jcnc.jnotepad.util.TabUtil.addNewFileTab;
+import static org.jcnc.jnotepad.app.util.TabUtil.addNewFileTab;
/**
* 新建文件事件的事件处理程序。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenConfig.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenConfig.java
index b73c3f7..0f7a95a 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenConfig.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenConfig.java
@@ -1,12 +1,12 @@
package org.jcnc.jnotepad.controller.event.handler.menuitem;
import javafx.event.ActionEvent;
+import org.jcnc.jnotepad.app.util.LogUtil;
import org.jcnc.jnotepad.controller.config.UserConfigController;
-import org.jcnc.jnotepad.util.LogUtil;
import java.io.File;
-import static org.jcnc.jnotepad.util.TabUtil.openFileToTab;
+import static org.jcnc.jnotepad.app.util.TabUtil.openFileToTab;
/**
* 打开配置文件事件处理程序。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenFile.java
index 580ffce..2fdcbc0 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenFile.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenFile.java
@@ -3,17 +3,17 @@ package org.jcnc.jnotepad.controller.event.handler.menuitem;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.stage.FileChooser;
+import org.jcnc.jnotepad.app.common.constants.TextConstants;
+import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
-import org.jcnc.jnotepad.common.constants.TextConstants;
-import org.jcnc.jnotepad.common.manager.ApplicationCacheManager;
-import org.jcnc.jnotepad.component.stage.dialog.factory.impl.BasicFileChooserFactory;
+import org.jcnc.jnotepad.app.util.UiUtil;
import org.jcnc.jnotepad.model.entity.Cache;
import org.jcnc.jnotepad.model.enums.CacheExpirationTime;
-import org.jcnc.jnotepad.util.UiUtil;
+import org.jcnc.jnotepad.ui.component.stage.dialog.factory.impl.BasicFileChooserFactory;
import java.io.File;
-import static org.jcnc.jnotepad.util.TabUtil.openFileToTab;
+import static org.jcnc.jnotepad.app.util.TabUtil.openFileToTab;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/RenameFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/RenameFile.java
index a636d64..7fdde7c 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/RenameFile.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/RenameFile.java
@@ -2,9 +2,9 @@ package org.jcnc.jnotepad.controller.event.handler.menuitem;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
-import org.jcnc.jnotepad.views.manager.CenterTabPaneManager;
+import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
-import static org.jcnc.jnotepad.util.TabUtil.rename;
+import static org.jcnc.jnotepad.app.util.TabUtil.rename;
/**
* 重命名文件事件处理器。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveAsFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveAsFile.java
index eb754d2..a0a7bc9 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveAsFile.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveAsFile.java
@@ -1,10 +1,10 @@
package org.jcnc.jnotepad.controller.event.handler.menuitem;
import javafx.event.ActionEvent;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.views.manager.CenterTabPaneManager;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
-import static org.jcnc.jnotepad.util.TabUtil.saveAsFile;
+import static org.jcnc.jnotepad.app.util.TabUtil.saveAsFile;
/**
* 保存文件事件处理器。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveFile.java
index a57f382..7e186d9 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveFile.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveFile.java
@@ -2,9 +2,9 @@ package org.jcnc.jnotepad.controller.event.handler.menuitem;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
-import org.jcnc.jnotepad.views.manager.CenterTabPaneManager;
+import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
-import static org.jcnc.jnotepad.util.TabUtil.saveFile;
+import static org.jcnc.jnotepad.app.util.TabUtil.saveFile;
/**
* 保存文件事件处理程序。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/DirTreeBtn.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/DirTreeBtn.java
index 27066f3..b994a42 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/DirTreeBtn.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/DirTreeBtn.java
@@ -2,7 +2,7 @@ package org.jcnc.jnotepad.controller.event.handler.toolbar;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
-import org.jcnc.jnotepad.views.manager.DirectorySidebarManager;
+import org.jcnc.jnotepad.ui.views.manager.DirectorySidebarManager;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/OpenDirectory.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/OpenDirectory.java
index 977131f..f863134 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/OpenDirectory.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/OpenDirectory.java
@@ -3,16 +3,16 @@ package org.jcnc.jnotepad.controller.event.handler.toolbar;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
+import org.jcnc.jnotepad.app.common.constants.TextConstants;
+import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
-import org.jcnc.jnotepad.common.constants.TextConstants;
-import org.jcnc.jnotepad.common.manager.ApplicationCacheManager;
-import org.jcnc.jnotepad.component.stage.dialog.factory.impl.BasicDirectoryChooserFactory;
+import org.jcnc.jnotepad.app.util.FileUtil;
+import org.jcnc.jnotepad.app.util.UiUtil;
import org.jcnc.jnotepad.model.entity.Cache;
import org.jcnc.jnotepad.model.entity.DirFileModel;
import org.jcnc.jnotepad.model.enums.CacheExpirationTime;
-import org.jcnc.jnotepad.util.FileUtil;
-import org.jcnc.jnotepad.util.UiUtil;
-import org.jcnc.jnotepad.views.manager.DirectorySidebarManager;
+import org.jcnc.jnotepad.ui.component.stage.dialog.factory.impl.BasicDirectoryChooserFactory;
+import org.jcnc.jnotepad.ui.views.manager.DirectorySidebarManager;
import java.io.File;
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/RunBtn.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/RunBtn.java
index 2548596..0150bc3 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/RunBtn.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/RunBtn.java
@@ -3,7 +3,7 @@ package org.jcnc.jnotepad.controller.event.handler.toolbar;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
-import org.jcnc.jnotepad.views.manager.BuildPanelManager;
+import org.jcnc.jnotepad.ui.views.manager.BuildPanelManager;
/**
* 终端处理器
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/SetBtn.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/SetBtn.java
index f5e60f5..a92166f 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/SetBtn.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/SetBtn.java
@@ -2,7 +2,7 @@ package org.jcnc.jnotepad.controller.event.handler.toolbar;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
-import org.jcnc.jnotepad.component.stage.setting.SetStage;
+import org.jcnc.jnotepad.ui.component.stage.setting.SetStage;
/**
* 设置按钮事件的事件处理程序。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/i18n/LocalizationController.java b/src/main/java/org/jcnc/jnotepad/controller/i18n/LocalizationController.java
index 715cd9e..343c117 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/i18n/LocalizationController.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/i18n/LocalizationController.java
@@ -9,8 +9,8 @@ import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
-import static org.jcnc.jnotepad.common.constants.TextConstants.CHINESE;
-import static org.jcnc.jnotepad.common.constants.TextConstants.ENGLISH;
+import static org.jcnc.jnotepad.app.common.constants.TextConstants.CHINESE;
+import static org.jcnc.jnotepad.app.common.constants.TextConstants.ENGLISH;
/**
* 本地化控制器
diff --git a/src/main/java/org/jcnc/jnotepad/controller/manager/Controller.java b/src/main/java/org/jcnc/jnotepad/controller/manager/Controller.java
index 3be9d5a..648bfc1 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/manager/Controller.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/manager/Controller.java
@@ -1,15 +1,15 @@
package org.jcnc.jnotepad.controller.manager;
-import org.jcnc.jnotepad.common.manager.ApplicationCacheManager;
-import org.jcnc.jnotepad.component.module.interfaces.ControllerAble;
+import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
+import org.jcnc.jnotepad.ui.component.module.interfaces.ControllerAble;
import java.io.File;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
-import static org.jcnc.jnotepad.util.TabUtil.addNewFileTab;
-import static org.jcnc.jnotepad.util.TabUtil.openFileToTab;
+import static org.jcnc.jnotepad.app.util.TabUtil.addNewFileTab;
+import static org.jcnc.jnotepad.app.util.TabUtil.openFileToTab;
/**
* 控制器类,实现 ControllerAble 接口,用于管理文本编辑器的各种操作和事件处理。
diff --git a/src/main/java/org/jcnc/jnotepad/plugin/PluginLoader.java b/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginLoader.java
similarity index 97%
rename from src/main/java/org/jcnc/jnotepad/plugin/PluginLoader.java
rename to src/main/java/org/jcnc/jnotepad/controller/plugin/PluginLoader.java
index 865d271..23927dc 100644
--- a/src/main/java/org/jcnc/jnotepad/plugin/PluginLoader.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginLoader.java
@@ -1,13 +1,13 @@
-package org.jcnc.jnotepad.plugin;
+package org.jcnc.jnotepad.controller.plugin;
-import org.jcnc.jnotepad.common.manager.ThreadPoolManager;
+import org.jcnc.jnotepad.app.common.manager.ThreadPoolManager;
+import org.jcnc.jnotepad.app.util.JsonUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
import org.jcnc.jnotepad.controller.config.PluginConfigController;
import org.jcnc.jnotepad.controller.exception.AppException;
+import org.jcnc.jnotepad.controller.plugin.interfaces.Plugin;
+import org.jcnc.jnotepad.controller.plugin.manager.PluginManager;
import org.jcnc.jnotepad.model.entity.PluginDescriptor;
-import org.jcnc.jnotepad.plugin.interfaces.Plugin;
-import org.jcnc.jnotepad.plugin.manager.PluginManager;
-import org.jcnc.jnotepad.util.JsonUtil;
-import org.jcnc.jnotepad.util.LogUtil;
import org.slf4j.Logger;
import java.io.*;
diff --git a/src/main/java/org/jcnc/jnotepad/plugin/PluginManagerInterface.java b/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginManagerInterface.java
similarity index 92%
rename from src/main/java/org/jcnc/jnotepad/plugin/PluginManagerInterface.java
rename to src/main/java/org/jcnc/jnotepad/controller/plugin/PluginManagerInterface.java
index 8011ca7..7a376b6 100644
--- a/src/main/java/org/jcnc/jnotepad/plugin/PluginManagerInterface.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginManagerInterface.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.plugin;
+package org.jcnc.jnotepad.controller.plugin;
import javafx.scene.Scene;
import javafx.scene.control.Button;
@@ -6,11 +6,11 @@ import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
-import org.jcnc.jnotepad.component.stage.dialog.factory.impl.BasicFileChooserFactory;
-import org.jcnc.jnotepad.plugin.manager.PluginManager;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.util.PopUpUtil;
-import org.jcnc.jnotepad.util.UiUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.util.PopUpUtil;
+import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.controller.plugin.manager.PluginManager;
+import org.jcnc.jnotepad.ui.component.stage.dialog.factory.impl.BasicFileChooserFactory;
import org.slf4j.Logger;
import java.io.File;
diff --git a/src/main/java/org/jcnc/jnotepad/plugin/interfaces/Plugin.java b/src/main/java/org/jcnc/jnotepad/controller/plugin/interfaces/Plugin.java
similarity index 84%
rename from src/main/java/org/jcnc/jnotepad/plugin/interfaces/Plugin.java
rename to src/main/java/org/jcnc/jnotepad/controller/plugin/interfaces/Plugin.java
index daab29f..c06e46a 100644
--- a/src/main/java/org/jcnc/jnotepad/plugin/interfaces/Plugin.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/plugin/interfaces/Plugin.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.plugin.interfaces;
+package org.jcnc.jnotepad.controller.plugin.interfaces;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/plugin/manager/PluginManager.java b/src/main/java/org/jcnc/jnotepad/controller/plugin/manager/PluginManager.java
similarity index 95%
rename from src/main/java/org/jcnc/jnotepad/plugin/manager/PluginManager.java
rename to src/main/java/org/jcnc/jnotepad/controller/plugin/manager/PluginManager.java
index 70e3a51..4bb8935 100644
--- a/src/main/java/org/jcnc/jnotepad/plugin/manager/PluginManager.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/plugin/manager/PluginManager.java
@@ -1,11 +1,11 @@
-package org.jcnc.jnotepad.plugin.manager;
+package org.jcnc.jnotepad.controller.plugin.manager;
+import org.jcnc.jnotepad.app.common.manager.ThreadPoolManager;
import org.jcnc.jnotepad.app.manager.ApplicationManager;
-import org.jcnc.jnotepad.common.manager.ThreadPoolManager;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.util.PopUpUtil;
import org.jcnc.jnotepad.controller.config.PluginConfigController;
import org.jcnc.jnotepad.model.entity.PluginDescriptor;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.util.PopUpUtil;
import org.slf4j.Logger;
import java.io.File;
@@ -18,7 +18,7 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
-import static org.jcnc.jnotepad.plugin.PluginLoader.readPlugin;
+import static org.jcnc.jnotepad.controller.plugin.PluginLoader.readPlugin;
/**
* 插件管理器
diff --git a/src/main/java/org/jcnc/jnotepad/model/entity/PluginDescriptor.java b/src/main/java/org/jcnc/jnotepad/model/entity/PluginDescriptor.java
index b7e4f71..c339d88 100644
--- a/src/main/java/org/jcnc/jnotepad/model/entity/PluginDescriptor.java
+++ b/src/main/java/org/jcnc/jnotepad/model/entity/PluginDescriptor.java
@@ -1,7 +1,7 @@
package org.jcnc.jnotepad.model.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import org.jcnc.jnotepad.plugin.interfaces.Plugin;
+import org.jcnc.jnotepad.controller.plugin.interfaces.Plugin;
import java.util.Objects;
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/TextCodeArea.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/TextCodeArea.java
similarity index 99%
rename from src/main/java/org/jcnc/jnotepad/component/module/TextCodeArea.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/TextCodeArea.java
index 3a36ae3..c5ac2f4 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/TextCodeArea.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/TextCodeArea.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.module;
+package org.jcnc.jnotepad.ui.component.module;
import javafx.application.Platform;
import javafx.geometry.Insets;
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/base/AbstractBorderPane.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/base/AbstractBorderPane.java
similarity index 90%
rename from src/main/java/org/jcnc/jnotepad/component/module/base/AbstractBorderPane.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/base/AbstractBorderPane.java
index 78c0e06..934c3a6 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/base/AbstractBorderPane.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/base/AbstractBorderPane.java
@@ -1,8 +1,8 @@
-package org.jcnc.jnotepad.component.module.base;
+package org.jcnc.jnotepad.ui.component.module.base;
import javafx.scene.Node;
import javafx.scene.layout.BorderPane;
-import org.jcnc.jnotepad.component.module.interfaces.BorderPaneAble;
+import org.jcnc.jnotepad.ui.component.module.interfaces.BorderPaneAble;
/**
* 抽象边界面板类。
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/base/AbstractHorizontalBox.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/base/AbstractHorizontalBox.java
similarity index 91%
rename from src/main/java/org/jcnc/jnotepad/component/module/base/AbstractHorizontalBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/base/AbstractHorizontalBox.java
index 367f3f9..93b7e05 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/base/AbstractHorizontalBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/base/AbstractHorizontalBox.java
@@ -1,8 +1,8 @@
-package org.jcnc.jnotepad.component.module.base;
+package org.jcnc.jnotepad.ui.component.module.base;
import javafx.scene.Node;
import javafx.scene.layout.HBox;
-import org.jcnc.jnotepad.component.module.interfaces.HorizontalBoxAble;
+import org.jcnc.jnotepad.ui.component.module.interfaces.HorizontalBoxAble;
/**
* 抽象水平盒子类。
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/base/AbstractVerticalBox.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/base/AbstractVerticalBox.java
similarity index 91%
rename from src/main/java/org/jcnc/jnotepad/component/module/base/AbstractVerticalBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/base/AbstractVerticalBox.java
index 0e86bfd..a460894 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/base/AbstractVerticalBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/base/AbstractVerticalBox.java
@@ -1,8 +1,8 @@
-package org.jcnc.jnotepad.component.module.base;
+package org.jcnc.jnotepad.ui.component.module.base;
import javafx.scene.Node;
import javafx.scene.layout.VBox;
-import org.jcnc.jnotepad.component.module.interfaces.VerticalBoxAble;
+import org.jcnc.jnotepad.ui.component.module.interfaces.VerticalBoxAble;
/**
* 抽象垂直盒子类。
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/hbox/CustomTitleBarBox.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/hbox/CustomTitleBarBox.java
similarity index 98%
rename from src/main/java/org/jcnc/jnotepad/component/module/hbox/CustomTitleBarBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/hbox/CustomTitleBarBox.java
index 56436a8..534da1f 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/hbox/CustomTitleBarBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/hbox/CustomTitleBarBox.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.module.hbox;
+package org.jcnc.jnotepad.ui.component.module.hbox;
import javafx.animation.TranslateTransition;
import javafx.geometry.Pos;
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/interfaces/BorderPaneAble.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/BorderPaneAble.java
similarity index 95%
rename from src/main/java/org/jcnc/jnotepad/component/module/interfaces/BorderPaneAble.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/BorderPaneAble.java
index 2f1a476..1c9946f 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/interfaces/BorderPaneAble.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/BorderPaneAble.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.module.interfaces;
+package org.jcnc.jnotepad.ui.component.module.interfaces;
import javafx.scene.Node;
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/interfaces/ControllerAble.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/ControllerAble.java
similarity index 92%
rename from src/main/java/org/jcnc/jnotepad/component/module/interfaces/ControllerAble.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/ControllerAble.java
index 14d77ea..a8054c5 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/interfaces/ControllerAble.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/ControllerAble.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.module.interfaces;
+package org.jcnc.jnotepad.ui.component.module.interfaces;
/**
* 控制器接口类。
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/interfaces/HorizontalBoxAble.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/HorizontalBoxAble.java
similarity index 93%
rename from src/main/java/org/jcnc/jnotepad/component/module/interfaces/HorizontalBoxAble.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/HorizontalBoxAble.java
index 6949451..cc2f441 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/interfaces/HorizontalBoxAble.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/HorizontalBoxAble.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.module.interfaces;
+package org.jcnc.jnotepad.ui.component.module.interfaces;
import javafx.scene.Node;
import javafx.scene.layout.HBox;
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/interfaces/VerticalBoxAble.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/VerticalBoxAble.java
similarity index 93%
rename from src/main/java/org/jcnc/jnotepad/component/module/interfaces/VerticalBoxAble.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/VerticalBoxAble.java
index ab4130a..1808bb7 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/interfaces/VerticalBoxAble.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/interfaces/VerticalBoxAble.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.module.interfaces;
+package org.jcnc.jnotepad.ui.component.module.interfaces;
import javafx.scene.Node;
import javafx.scene.layout.VBox;
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/vbox/BuildPanel.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/BuildPanel.java
similarity index 87%
rename from src/main/java/org/jcnc/jnotepad/component/module/vbox/BuildPanel.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/BuildPanel.java
index 20147a2..19eb2ae 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/vbox/BuildPanel.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/BuildPanel.java
@@ -1,10 +1,10 @@
-package org.jcnc.jnotepad.component.module.vbox;
+package org.jcnc.jnotepad.ui.component.module.vbox;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
-import org.jcnc.jnotepad.component.module.vbox.components.CmdTerminalBox;
-import org.jcnc.jnotepad.component.module.vbox.components.DebugBox;
-import org.jcnc.jnotepad.component.module.vbox.components.RunBox;
+import org.jcnc.jnotepad.ui.component.module.vbox.components.CmdTerminalBox;
+import org.jcnc.jnotepad.ui.component.module.vbox.components.DebugBox;
+import org.jcnc.jnotepad.ui.component.module.vbox.components.RunBox;
/**
* 底部运行、调试和命令终端面板。
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/CmdTerminalBox.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/CmdTerminalBox.java
similarity index 97%
rename from src/main/java/org/jcnc/jnotepad/component/module/vbox/components/CmdTerminalBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/CmdTerminalBox.java
index 4f7f599..a03da92 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/CmdTerminalBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/CmdTerminalBox.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.module.vbox.components;
+package org.jcnc.jnotepad.ui.component.module.vbox.components;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
@@ -10,7 +10,7 @@ import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.util.Duration;
import org.fxmisc.richtext.StyleClassedTextArea;
-import org.jcnc.jnotepad.util.LogUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
import java.io.*;
import java.nio.charset.Charset;
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/DebugBox.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/DebugBox.java
similarity index 85%
rename from src/main/java/org/jcnc/jnotepad/component/module/vbox/components/DebugBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/DebugBox.java
index a48f353..9be0a3f 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/DebugBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/DebugBox.java
@@ -1,6 +1,6 @@
-package org.jcnc.jnotepad.component.module.vbox.components;
+package org.jcnc.jnotepad.ui.component.module.vbox.components;
-import org.jcnc.jnotepad.component.module.TextCodeArea;
+import org.jcnc.jnotepad.ui.component.module.TextCodeArea;
/**
* 调试信息显示界面。
diff --git a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/RunBox.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/RunBox.java
similarity index 84%
rename from src/main/java/org/jcnc/jnotepad/component/module/vbox/components/RunBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/RunBox.java
index 3fb466a..01fe3ad 100644
--- a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/RunBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/RunBox.java
@@ -1,6 +1,6 @@
-package org.jcnc.jnotepad.component.module.vbox.components;
+package org.jcnc.jnotepad.ui.component.module.vbox.components;
-import org.jcnc.jnotepad.component.module.TextCodeArea;
+import org.jcnc.jnotepad.ui.component.module.TextCodeArea;
/**
* 运行信息显示界面。
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/AppDialogBuilder.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/AppDialogBuilder.java
similarity index 97%
rename from src/main/java/org/jcnc/jnotepad/component/stage/dialog/AppDialogBuilder.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/AppDialogBuilder.java
index ec46440..8e31859 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/AppDialogBuilder.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/AppDialogBuilder.java
@@ -1,13 +1,13 @@
-package org.jcnc.jnotepad.component.stage.dialog;
+package org.jcnc.jnotepad.ui.component.stage.dialog;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.image.Image;
import javafx.stage.Modality;
import javafx.stage.Stage;
-import org.jcnc.jnotepad.component.stage.dialog.interfaces.DialogButtonAction;
+import org.jcnc.jnotepad.app.util.UiUtil;
import org.jcnc.jnotepad.model.enums.DialogType;
-import org.jcnc.jnotepad.util.UiUtil;
+import org.jcnc.jnotepad.ui.component.stage.dialog.interfaces.DialogButtonAction;
import org.kordamp.ikonli.javafx.FontIcon;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/AppDialogStage.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/AppDialogStage.java
similarity index 95%
rename from src/main/java/org/jcnc/jnotepad/component/stage/dialog/AppDialogStage.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/AppDialogStage.java
index b5cb9f3..b0ef87b 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/AppDialogStage.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/AppDialogStage.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.dialog;
+package org.jcnc.jnotepad.ui.component.stage.dialog;
import javafx.scene.Scene;
import javafx.scene.control.Button;
@@ -7,7 +7,7 @@ import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
-import org.jcnc.jnotepad.component.stage.dialog.interfaces.DialogButtonAction;
+import org.jcnc.jnotepad.ui.component.stage.dialog.interfaces.DialogButtonAction;
/**
* 应用对话框
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/DirectoryChooserFactory.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/DirectoryChooserFactory.java
similarity index 93%
rename from src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/DirectoryChooserFactory.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/DirectoryChooserFactory.java
index 104f4b2..0958a10 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/DirectoryChooserFactory.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/DirectoryChooserFactory.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.dialog.factory;
+package org.jcnc.jnotepad.ui.component.stage.dialog.factory;
import javafx.stage.DirectoryChooser;
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/FileChooserFactory.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/FileChooserFactory.java
similarity index 94%
rename from src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/FileChooserFactory.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/FileChooserFactory.java
index 954c797..77f815f 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/FileChooserFactory.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/FileChooserFactory.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.dialog.factory;
+package org.jcnc.jnotepad.ui.component.stage.dialog.factory;
import javafx.stage.FileChooser;
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/impl/BasicDirectoryChooserFactory.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/impl/BasicDirectoryChooserFactory.java
similarity index 90%
rename from src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/impl/BasicDirectoryChooserFactory.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/impl/BasicDirectoryChooserFactory.java
index 9e07fc1..7870fcf 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/impl/BasicDirectoryChooserFactory.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/impl/BasicDirectoryChooserFactory.java
@@ -1,7 +1,7 @@
-package org.jcnc.jnotepad.component.stage.dialog.factory.impl;
+package org.jcnc.jnotepad.ui.component.stage.dialog.factory.impl;
import javafx.stage.DirectoryChooser;
-import org.jcnc.jnotepad.component.stage.dialog.factory.DirectoryChooserFactory;
+import org.jcnc.jnotepad.ui.component.stage.dialog.factory.DirectoryChooserFactory;
import java.io.File;
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/impl/BasicFileChooserFactory.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/impl/BasicFileChooserFactory.java
similarity index 94%
rename from src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/impl/BasicFileChooserFactory.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/impl/BasicFileChooserFactory.java
index c84b86f..c8152d3 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/factory/impl/BasicFileChooserFactory.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/factory/impl/BasicFileChooserFactory.java
@@ -1,7 +1,7 @@
-package org.jcnc.jnotepad.component.stage.dialog.factory.impl;
+package org.jcnc.jnotepad.ui.component.stage.dialog.factory.impl;
import javafx.stage.FileChooser;
-import org.jcnc.jnotepad.component.stage.dialog.factory.FileChooserFactory;
+import org.jcnc.jnotepad.ui.component.stage.dialog.factory.FileChooserFactory;
import java.io.File;
import java.util.List;
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/interfaces/DialogButtonAction.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/interfaces/DialogButtonAction.java
similarity index 72%
rename from src/main/java/org/jcnc/jnotepad/component/stage/dialog/interfaces/DialogButtonAction.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/interfaces/DialogButtonAction.java
index f4bb4e4..8a27e43 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/dialog/interfaces/DialogButtonAction.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/interfaces/DialogButtonAction.java
@@ -1,6 +1,6 @@
-package org.jcnc.jnotepad.component.stage.dialog.interfaces;
+package org.jcnc.jnotepad.ui.component.stage.dialog.interfaces;
-import org.jcnc.jnotepad.component.stage.dialog.AppDialogStage;
+import org.jcnc.jnotepad.ui.component.stage.dialog.AppDialogStage;
/**
* 对话框按钮点击事件接口
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/setting/CustomSetButton.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/CustomSetButton.java
similarity index 79%
rename from src/main/java/org/jcnc/jnotepad/component/stage/setting/CustomSetButton.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/CustomSetButton.java
index 8432ca7..b349004 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/setting/CustomSetButton.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/CustomSetButton.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.setting;
+package org.jcnc.jnotepad.ui.component.stage.setting;
import javafx.scene.control.Button;
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetDevBox.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/SetDevBox.java
similarity index 97%
rename from src/main/java/org/jcnc/jnotepad/component/stage/setting/SetDevBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/SetDevBox.java
index 990c849..123464b 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetDevBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/SetDevBox.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.setting;
+package org.jcnc.jnotepad.ui.component.stage.setting;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/SetStage.java
similarity index 95%
rename from src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/SetStage.java
index b6aa98b..6136f49 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/setting/SetStage.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/SetStage.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.setting;
+package org.jcnc.jnotepad.ui.component.stage.setting;
import atlantafx.base.controls.CustomTextField;
import atlantafx.base.theme.Styles;
@@ -16,24 +16,24 @@ import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Modality;
import javafx.stage.Stage;
+import org.jcnc.jnotepad.app.common.constants.TextConstants;
+import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
import org.jcnc.jnotepad.app.config.AppConfig;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
import org.jcnc.jnotepad.app.manager.ApplicationManager;
-import org.jcnc.jnotepad.common.constants.TextConstants;
-import org.jcnc.jnotepad.common.manager.ApplicationCacheManager;
-import org.jcnc.jnotepad.component.stage.dialog.factory.impl.BasicDirectoryChooserFactory;
+import org.jcnc.jnotepad.app.util.PopUpUtil;
+import org.jcnc.jnotepad.app.util.UiUtil;
import org.jcnc.jnotepad.controller.config.AppConfigController;
import org.jcnc.jnotepad.controller.event.handler.toolbar.OpenDirectory;
+import org.jcnc.jnotepad.controller.plugin.PluginManagerInterface;
import org.jcnc.jnotepad.model.entity.Cache;
import org.jcnc.jnotepad.model.enums.CacheExpirationTime;
-import org.jcnc.jnotepad.plugin.PluginManagerInterface;
-import org.jcnc.jnotepad.util.PopUpUtil;
-import org.jcnc.jnotepad.util.UiUtil;
+import org.jcnc.jnotepad.ui.component.stage.dialog.factory.impl.BasicDirectoryChooserFactory;
import java.io.File;
-import static org.jcnc.jnotepad.common.constants.AppConstants.SCREEN_LENGTH;
-import static org.jcnc.jnotepad.common.constants.AppConstants.SCREEN_WIDTH;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.SCREEN_LENGTH;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.SCREEN_WIDTH;
/**
* SetStage类表示设置窗口的单例对象。此窗口用于显示不同的设置选项和其对应的布局。
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/builder/StageButtonBuilder.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/builder/StageButtonBuilder.java
similarity index 92%
rename from src/main/java/org/jcnc/jnotepad/component/stage/topmenu/builder/StageButtonBuilder.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/builder/StageButtonBuilder.java
index 22e022b..01b7ec7 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/builder/StageButtonBuilder.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/builder/StageButtonBuilder.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.topmenu.builder;
+package org.jcnc.jnotepad.ui.component.stage.topmenu.builder;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/DeveloperDebugPaneStage.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/DeveloperDebugPaneStage.java
similarity index 94%
rename from src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/DeveloperDebugPaneStage.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/DeveloperDebugPaneStage.java
index 7735781..972048d 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/DeveloperDebugPaneStage.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/DeveloperDebugPaneStage.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.topmenu.help;
+package org.jcnc.jnotepad.ui.component.stage.topmenu.help;
import javafx.geometry.Insets;
import javafx.scene.Scene;
@@ -10,10 +10,10 @@ import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import org.jcnc.jnotepad.api.core.component.stage.AbstractPaneStage;
import org.jcnc.jnotepad.app.manager.ApplicationManager;
-import org.jcnc.jnotepad.component.stage.topmenu.builder.StageButtonBuilder;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.util.PopUpUtil;
-import org.jcnc.jnotepad.util.UiUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.util.PopUpUtil;
+import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.ui.component.stage.topmenu.builder.StageButtonBuilder;
import org.slf4j.Logger;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/HelpPaneStage.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/HelpPaneStage.java
similarity index 95%
rename from src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/HelpPaneStage.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/HelpPaneStage.java
index 7ac86ad..cb41527 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/help/HelpPaneStage.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/HelpPaneStage.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.topmenu.help;
+package org.jcnc.jnotepad.ui.component.stage.topmenu.help;
import atlantafx.base.theme.Styles;
import javafx.event.ActionEvent;
@@ -16,12 +16,12 @@ import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;
import org.jcnc.jnotepad.api.core.component.stage.AbstractPaneStage;
-import org.jcnc.jnotepad.util.ClipboardUtil;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.util.NotificationUtil;
-import org.jcnc.jnotepad.util.UiUtil;
+import org.jcnc.jnotepad.app.util.ClipboardUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.util.NotificationUtil;
+import org.jcnc.jnotepad.app.util.UiUtil;
-import static org.jcnc.jnotepad.common.constants.AppConstants.*;
+import static org.jcnc.jnotepad.app.common.constants.AppConstants.*;
/**
* 帮助页面
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/CustomSplitPane.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/plugin/CustomSplitPane.java
similarity index 96%
rename from src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/CustomSplitPane.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/plugin/CustomSplitPane.java
index 42a6e36..4018f0a 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/CustomSplitPane.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/plugin/CustomSplitPane.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.topmenu.plugin;
+package org.jcnc.jnotepad.ui.component.stage.topmenu.plugin;
import javafx.geometry.Orientation;
import javafx.scene.control.SplitPane;
diff --git a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/PluginManagementPane.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/plugin/PluginManagementPane.java
similarity index 97%
rename from src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/PluginManagementPane.java
rename to src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/plugin/PluginManagementPane.java
index fa39582..26c6571 100644
--- a/src/main/java/org/jcnc/jnotepad/component/stage/topmenu/plugin/PluginManagementPane.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/plugin/PluginManagementPane.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.component.stage.topmenu.plugin;
+package org.jcnc.jnotepad.ui.component.stage.topmenu.plugin;
import atlantafx.base.controls.Tile;
import atlantafx.base.controls.ToggleSwitch;
@@ -26,12 +26,12 @@ import javafx.stage.Stage;
import org.commonmark.parser.Parser;
import org.commonmark.renderer.html.HtmlRenderer;
import org.jcnc.jnotepad.api.core.component.stage.AbstractPaneStage;
-import org.jcnc.jnotepad.component.stage.setting.CustomSetButton;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.util.PopUpUtil;
+import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.controller.plugin.manager.PluginManager;
import org.jcnc.jnotepad.model.entity.PluginDescriptor;
-import org.jcnc.jnotepad.plugin.manager.PluginManager;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.util.PopUpUtil;
-import org.jcnc.jnotepad.util.UiUtil;
+import org.jcnc.jnotepad.ui.component.stage.setting.CustomSetButton;
import org.slf4j.Logger;
import java.awt.*;
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/BottomStatusBoxManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/BottomStatusBoxManager.java
similarity index 95%
rename from src/main/java/org/jcnc/jnotepad/views/manager/BottomStatusBoxManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/BottomStatusBoxManager.java
index 4874082..afb5bed 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/BottomStatusBoxManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/BottomStatusBoxManager.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
import javafx.beans.value.ChangeListener;
import javafx.collections.ObservableList;
@@ -10,12 +10,12 @@ import javafx.scene.control.Label;
import javafx.scene.control.Tab;
import javafx.scene.layout.HBox;
import org.jcnc.jnotepad.api.core.views.manager.builder.BottomStatusBoxButtonBuilder;
+import org.jcnc.jnotepad.app.common.constants.TextConstants;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
-import org.jcnc.jnotepad.common.constants.TextConstants;
-import org.jcnc.jnotepad.component.module.TextCodeArea;
-import org.jcnc.jnotepad.views.root.bottom.status.BottomStatusBox;
-import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTab;
-import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTabPane;
+import org.jcnc.jnotepad.ui.component.module.TextCodeArea;
+import org.jcnc.jnotepad.ui.views.root.bottom.status.BottomStatusBox;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.tab.CenterTab;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.tab.CenterTabPane;
import org.kordamp.ikonli.javafx.FontIcon;
import java.nio.charset.Charset;
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/BuildPanelManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/BuildPanelManager.java
similarity index 89%
rename from src/main/java/org/jcnc/jnotepad/views/manager/BuildPanelManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/BuildPanelManager.java
index 199fb73..4ba4cb2 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/BuildPanelManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/BuildPanelManager.java
@@ -1,8 +1,8 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
import javafx.scene.control.SplitPane;
-import org.jcnc.jnotepad.component.module.TextCodeArea;
-import org.jcnc.jnotepad.views.root.center.main.MainBorderPane;
+import org.jcnc.jnotepad.ui.component.module.TextCodeArea;
+import org.jcnc.jnotepad.ui.views.root.center.main.MainBorderPane;
/**
* 构建底部三大菜单管理类
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/CenterTabPaneManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/CenterTabPaneManager.java
similarity index 95%
rename from src/main/java/org/jcnc/jnotepad/views/manager/CenterTabPaneManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/CenterTabPaneManager.java
index d7e6584..9913f90 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/CenterTabPaneManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/CenterTabPaneManager.java
@@ -1,18 +1,18 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import javafx.scene.control.Tab;
import javafx.stage.Stage;
-import org.jcnc.jnotepad.common.manager.ApplicationCacheManager;
-import org.jcnc.jnotepad.component.module.TextCodeArea;
+import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
+import org.jcnc.jnotepad.app.util.FileUtil;
+import org.jcnc.jnotepad.app.util.PopUpUtil;
import org.jcnc.jnotepad.controller.config.UserConfigController;
import org.jcnc.jnotepad.model.enums.CacheExpirationTime;
-import org.jcnc.jnotepad.util.FileUtil;
-import org.jcnc.jnotepad.util.PopUpUtil;
-import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTab;
-import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTabPane;
-import org.jcnc.jnotepad.views.root.top.menubar.TopMenuBar;
+import org.jcnc.jnotepad.ui.component.module.TextCodeArea;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.tab.CenterTab;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.tab.CenterTabPane;
+import org.jcnc.jnotepad.ui.views.root.top.menubar.TopMenuBar;
import java.io.File;
import java.util.ArrayList;
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/DirectorySidebarManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/DirectorySidebarManager.java
similarity index 92%
rename from src/main/java/org/jcnc/jnotepad/views/manager/DirectorySidebarManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/DirectorySidebarManager.java
index bc2b104..4aaaa4e 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/DirectorySidebarManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/DirectorySidebarManager.java
@@ -1,15 +1,15 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
import javafx.beans.value.ChangeListener;
import javafx.scene.control.SplitPane;
import javafx.scene.control.TreeItem;
-import org.jcnc.jnotepad.common.constants.SplitPaneItemConstants;
-import org.jcnc.jnotepad.common.manager.ApplicationCacheManager;
+import org.jcnc.jnotepad.app.common.constants.SplitPaneItemConstants;
+import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
+import org.jcnc.jnotepad.app.util.FileUtil;
import org.jcnc.jnotepad.controller.event.handler.toolbar.OpenDirectory;
import org.jcnc.jnotepad.model.entity.DirFileModel;
-import org.jcnc.jnotepad.util.FileUtil;
-import org.jcnc.jnotepad.views.root.center.main.MainBorderPane;
-import org.jcnc.jnotepad.views.root.center.main.center.directory.DirectorySidebarPane;
+import org.jcnc.jnotepad.ui.views.root.center.main.MainBorderPane;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.directory.DirectorySidebarPane;
import java.io.File;
import java.util.List;
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/MainBorderPaneManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/MainBorderPaneManager.java
similarity index 81%
rename from src/main/java/org/jcnc/jnotepad/views/manager/MainBorderPaneManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/MainBorderPaneManager.java
index 13a5eb7..aff2c01 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/MainBorderPaneManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/MainBorderPaneManager.java
@@ -1,12 +1,12 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
import javafx.geometry.Orientation;
import javafx.scene.control.SplitPane;
-import org.jcnc.jnotepad.common.constants.SplitPaneItemConstants;
-import org.jcnc.jnotepad.component.module.vbox.BuildPanel;
-import org.jcnc.jnotepad.views.root.center.main.MainBorderPane;
-import org.jcnc.jnotepad.views.root.center.main.center.directory.DirectorySidebarPane;
-import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTabPane;
+import org.jcnc.jnotepad.app.common.constants.SplitPaneItemConstants;
+import org.jcnc.jnotepad.ui.component.module.vbox.BuildPanel;
+import org.jcnc.jnotepad.ui.views.root.center.main.MainBorderPane;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.directory.DirectorySidebarPane;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.tab.CenterTabPane;
/**
* 主界面边界布局
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/RootBorderPaneManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/RootBorderPaneManager.java
similarity index 74%
rename from src/main/java/org/jcnc/jnotepad/views/manager/RootBorderPaneManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/RootBorderPaneManager.java
index 005e4a2..82fa0c7 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/RootBorderPaneManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/RootBorderPaneManager.java
@@ -1,11 +1,11 @@
-package org.jcnc.jnotepad.views.manager;
-
-import org.jcnc.jnotepad.views.root.RootBorderPane;
-import org.jcnc.jnotepad.views.root.bottom.RootBottomSideBarVerticalBox;
-import org.jcnc.jnotepad.views.root.center.main.MainBorderPane;
-import org.jcnc.jnotepad.views.root.left.sidebar.tools.ToolVerticalBox;
-import org.jcnc.jnotepad.views.root.right.RootRightSideBarVerticalBox;
-import org.jcnc.jnotepad.views.root.top.RootTopBorderPane;
+package org.jcnc.jnotepad.ui.views.manager;
+
+import org.jcnc.jnotepad.ui.views.root.RootBorderPane;
+import org.jcnc.jnotepad.ui.views.root.bottom.RootBottomSideBarVerticalBox;
+import org.jcnc.jnotepad.ui.views.root.center.main.MainBorderPane;
+import org.jcnc.jnotepad.ui.views.root.left.sidebar.tools.ToolVerticalBox;
+import org.jcnc.jnotepad.ui.views.root.right.RootRightSideBarVerticalBox;
+import org.jcnc.jnotepad.ui.views.root.top.RootTopBorderPane;
/**
* 应用程序的根布局管理类
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/RootBottomSideBarVerticalBoxManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/RootBottomSideBarVerticalBoxManager.java
similarity index 81%
rename from src/main/java/org/jcnc/jnotepad/views/manager/RootBottomSideBarVerticalBoxManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/RootBottomSideBarVerticalBoxManager.java
index 107b4ab..0120c8d 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/RootBottomSideBarVerticalBoxManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/RootBottomSideBarVerticalBoxManager.java
@@ -1,9 +1,9 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
import javafx.scene.layout.VBox;
-import org.jcnc.jnotepad.views.root.bottom.RootBottomSideBarVerticalBox;
-import org.jcnc.jnotepad.views.root.bottom.function.FunctionBox;
-import org.jcnc.jnotepad.views.root.bottom.status.BottomStatusBox;
+import org.jcnc.jnotepad.ui.views.root.bottom.RootBottomSideBarVerticalBox;
+import org.jcnc.jnotepad.ui.views.root.bottom.function.FunctionBox;
+import org.jcnc.jnotepad.ui.views.root.bottom.status.BottomStatusBox;
/**
* 底部根侧边栏垂直布局管理类
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/RootManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/RootManager.java
similarity index 98%
rename from src/main/java/org/jcnc/jnotepad/views/manager/RootManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/RootManager.java
index fc6b5bc..5e0fb37 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/RootManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/RootManager.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
import atlantafx.base.controls.Notification;
import atlantafx.base.util.Animations;
@@ -12,7 +12,7 @@ import javafx.scene.layout.Region;
import javafx.scene.layout.StackPane;
import javafx.util.Duration;
import org.jcnc.jnotepad.controller.exception.AppException;
-import org.jcnc.jnotepad.views.root.RootBorderPane;
+import org.jcnc.jnotepad.ui.views.root.RootBorderPane;
/**
* 根布局管理器类,用于管理记事本应用程序的根布局组件。
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/RootRightSideBarVerticalBoxManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/RootRightSideBarVerticalBoxManager.java
similarity index 85%
rename from src/main/java/org/jcnc/jnotepad/views/manager/RootRightSideBarVerticalBoxManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/RootRightSideBarVerticalBoxManager.java
index e06a904..a7cbe4b 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/RootRightSideBarVerticalBoxManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/RootRightSideBarVerticalBoxManager.java
@@ -1,6 +1,6 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
-import org.jcnc.jnotepad.views.root.right.RootRightSideBarVerticalBox;
+import org.jcnc.jnotepad.ui.views.root.right.RootRightSideBarVerticalBox;
/**
* 右侧边栏的垂直布局容器管理类
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/RootTopBorderPaneManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/RootTopBorderPaneManager.java
similarity index 80%
rename from src/main/java/org/jcnc/jnotepad/views/manager/RootTopBorderPaneManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/RootTopBorderPaneManager.java
index 0d8308c..f0921fe 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/RootTopBorderPaneManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/RootTopBorderPaneManager.java
@@ -1,7 +1,7 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
-import org.jcnc.jnotepad.views.root.top.RootTopBorderPane;
-import org.jcnc.jnotepad.views.root.top.menubar.TopMenuBar;
+import org.jcnc.jnotepad.ui.views.root.top.RootTopBorderPane;
+import org.jcnc.jnotepad.ui.views.root.top.menubar.TopMenuBar;
/**
* 顶部边界面板管理类
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/SidebarToolBarManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/SidebarToolBarManager.java
similarity index 94%
rename from src/main/java/org/jcnc/jnotepad/views/manager/SidebarToolBarManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/SidebarToolBarManager.java
index cad62de..ec4f214 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/SidebarToolBarManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/SidebarToolBarManager.java
@@ -1,13 +1,13 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
import javafx.scene.Node;
import org.jcnc.jnotepad.api.core.views.manager.AbstractManager;
import org.jcnc.jnotepad.api.core.views.manager.builder.SideBarButtonBuilder;
+import org.jcnc.jnotepad.app.util.UiUtil;
import org.jcnc.jnotepad.controller.event.handler.toolbar.DirTreeBtn;
import org.jcnc.jnotepad.controller.event.handler.toolbar.RunBtn;
import org.jcnc.jnotepad.controller.event.handler.toolbar.SetBtn;
-import org.jcnc.jnotepad.util.UiUtil;
-import org.jcnc.jnotepad.views.root.left.sidebar.tools.SidebarToolBar;
+import org.jcnc.jnotepad.ui.views.root.left.sidebar.tools.SidebarToolBar;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/TopMenuBarManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/TopMenuBarManager.java
similarity index 94%
rename from src/main/java/org/jcnc/jnotepad/views/manager/TopMenuBarManager.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/manager/TopMenuBarManager.java
index 03edb9f..89cd9bd 100644
--- a/src/main/java/org/jcnc/jnotepad/views/manager/TopMenuBarManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/TopMenuBarManager.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.views.manager;
+package org.jcnc.jnotepad.ui.views.manager;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
@@ -6,11 +6,11 @@ import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import javafx.scene.input.KeyCombination;
import org.jcnc.jnotepad.api.core.views.manager.AbstractManager;
+import org.jcnc.jnotepad.app.util.LogUtil;
import org.jcnc.jnotepad.controller.config.UserConfigController;
import org.jcnc.jnotepad.model.entity.ShortcutKey;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.views.root.top.menubar.TopMenuBar;
-import org.jcnc.jnotepad.views.root.top.menubar.menu.*;
+import org.jcnc.jnotepad.ui.views.root.top.menubar.TopMenuBar;
+import org.jcnc.jnotepad.ui.views.root.top.menubar.menu.*;
import org.slf4j.Logger;
import java.util.ArrayList;
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/RootBorderPane.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/RootBorderPane.java
similarity index 85%
rename from src/main/java/org/jcnc/jnotepad/views/root/RootBorderPane.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/RootBorderPane.java
index 88b50b4..1fcc2ed 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/RootBorderPane.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/RootBorderPane.java
@@ -1,6 +1,6 @@
-package org.jcnc.jnotepad.views.root;
+package org.jcnc.jnotepad.ui.views.root;
-import org.jcnc.jnotepad.component.module.base.AbstractBorderPane;
+import org.jcnc.jnotepad.ui.component.module.base.AbstractBorderPane;
/**
* RootBorderPane 表示 JNotepad 应用程序的根布局。
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/bottom/RootBottomSideBarVerticalBox.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/bottom/RootBottomSideBarVerticalBox.java
similarity index 87%
rename from src/main/java/org/jcnc/jnotepad/views/root/bottom/RootBottomSideBarVerticalBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/bottom/RootBottomSideBarVerticalBox.java
index ade0095..1b785bb 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/bottom/RootBottomSideBarVerticalBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/bottom/RootBottomSideBarVerticalBox.java
@@ -1,7 +1,7 @@
-package org.jcnc.jnotepad.views.root.bottom;
+package org.jcnc.jnotepad.ui.views.root.bottom;
import javafx.scene.layout.VBox;
-import org.jcnc.jnotepad.component.module.base.AbstractVerticalBox;
+import org.jcnc.jnotepad.ui.component.module.base.AbstractVerticalBox;
/**
* 底部根侧边栏垂直布局
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/bottom/function/FunctionBox.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/bottom/function/FunctionBox.java
similarity index 92%
rename from src/main/java/org/jcnc/jnotepad/views/root/bottom/function/FunctionBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/bottom/function/FunctionBox.java
index 0fcd58e..5d9826a 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/bottom/function/FunctionBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/bottom/function/FunctionBox.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.views.root.bottom.function;
+package org.jcnc.jnotepad.ui.views.root.bottom.function;
import javafx.geometry.Insets;
import javafx.scene.control.MenuBar;
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/bottom/status/BottomStatusBox.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/bottom/status/BottomStatusBox.java
similarity index 87%
rename from src/main/java/org/jcnc/jnotepad/views/root/bottom/status/BottomStatusBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/bottom/status/BottomStatusBox.java
index d95e7c6..6f1133a 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/bottom/status/BottomStatusBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/bottom/status/BottomStatusBox.java
@@ -1,8 +1,8 @@
-package org.jcnc.jnotepad.views.root.bottom.status;
+package org.jcnc.jnotepad.ui.views.root.bottom.status;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
-import org.jcnc.jnotepad.component.module.base.AbstractHorizontalBox;
+import org.jcnc.jnotepad.ui.component.module.base.AbstractHorizontalBox;
/**
* 状态栏组件封装。
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/center/main/MainBorderPane.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/MainBorderPane.java
similarity index 80%
rename from src/main/java/org/jcnc/jnotepad/views/root/center/main/MainBorderPane.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/MainBorderPane.java
index 5bbef69..88eb532 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/center/main/MainBorderPane.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/MainBorderPane.java
@@ -1,6 +1,6 @@
-package org.jcnc.jnotepad.views.root.center.main;
+package org.jcnc.jnotepad.ui.views.root.center.main;
-import org.jcnc.jnotepad.component.module.base.AbstractBorderPane;
+import org.jcnc.jnotepad.ui.component.module.base.AbstractBorderPane;
/**
* 主界面边界布局
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/center/main/center/directory/DirectorySidebarPane.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/directory/DirectorySidebarPane.java
similarity index 89%
rename from src/main/java/org/jcnc/jnotepad/views/root/center/main/center/directory/DirectorySidebarPane.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/directory/DirectorySidebarPane.java
index 02563bc..fbe31e1 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/center/main/center/directory/DirectorySidebarPane.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/directory/DirectorySidebarPane.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.views.root.center.main.center.directory;
+package org.jcnc.jnotepad.ui.views.root.center.main.center.directory;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
@@ -7,7 +7,7 @@ import org.jcnc.jnotepad.model.entity.DirFileModel;
import java.io.File;
import java.util.Objects;
-import static org.jcnc.jnotepad.util.TabUtil.openFileToTab;
+import static org.jcnc.jnotepad.app.util.TabUtil.openFileToTab;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/center/main/center/tab/CenterTab.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/tab/CenterTab.java
similarity index 93%
rename from src/main/java/org/jcnc/jnotepad/views/root/center/main/center/tab/CenterTab.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/tab/CenterTab.java
index f365523..871edb8 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/center/main/center/tab/CenterTab.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/tab/CenterTab.java
@@ -1,16 +1,16 @@
-package org.jcnc.jnotepad.views.root.center.main.center.tab;
+package org.jcnc.jnotepad.ui.views.root.center.main.center.tab;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.scene.control.Tab;
import org.fxmisc.flowless.VirtualizedScrollPane;
-import org.jcnc.jnotepad.component.module.TextCodeArea;
+import org.jcnc.jnotepad.app.util.FileUtil;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.util.TabUtil;
import org.jcnc.jnotepad.controller.config.UserConfigController;
-import org.jcnc.jnotepad.util.FileUtil;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.util.TabUtil;
-import org.jcnc.jnotepad.views.manager.BottomStatusBoxManager;
-import org.jcnc.jnotepad.views.manager.CenterTabPaneManager;
+import org.jcnc.jnotepad.ui.component.module.TextCodeArea;
+import org.jcnc.jnotepad.ui.views.manager.BottomStatusBoxManager;
+import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
import org.slf4j.Logger;
import java.io.BufferedWriter;
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/center/main/center/tab/CenterTabPane.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/tab/CenterTabPane.java
similarity index 84%
rename from src/main/java/org/jcnc/jnotepad/views/root/center/main/center/tab/CenterTabPane.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/tab/CenterTabPane.java
index b242380..c1909d3 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/center/main/center/tab/CenterTabPane.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/tab/CenterTabPane.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.views.root.center.main.center.tab;
+package org.jcnc.jnotepad.ui.views.root.center.main.center.tab;
import javafx.scene.control.TabPane;
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/left/sidebar/tools/SidebarToolBar.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/left/sidebar/tools/SidebarToolBar.java
similarity index 96%
rename from src/main/java/org/jcnc/jnotepad/views/root/left/sidebar/tools/SidebarToolBar.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/left/sidebar/tools/SidebarToolBar.java
index a406e4a..268e441 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/left/sidebar/tools/SidebarToolBar.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/left/sidebar/tools/SidebarToolBar.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.views.root.left.sidebar.tools;
+package org.jcnc.jnotepad.ui.views.root.left.sidebar.tools;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/left/sidebar/tools/ToolVerticalBox.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/left/sidebar/tools/ToolVerticalBox.java
similarity index 86%
rename from src/main/java/org/jcnc/jnotepad/views/root/left/sidebar/tools/ToolVerticalBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/left/sidebar/tools/ToolVerticalBox.java
index 4b16b08..69a189b 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/left/sidebar/tools/ToolVerticalBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/left/sidebar/tools/ToolVerticalBox.java
@@ -1,8 +1,8 @@
-package org.jcnc.jnotepad.views.root.left.sidebar.tools;
+package org.jcnc.jnotepad.ui.views.root.left.sidebar.tools;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
-import org.jcnc.jnotepad.component.module.base.AbstractVerticalBox;
+import org.jcnc.jnotepad.ui.component.module.base.AbstractVerticalBox;
/**
* 垂直布局类
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/right/RootRightSideBarVerticalBox.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/right/RootRightSideBarVerticalBox.java
similarity index 85%
rename from src/main/java/org/jcnc/jnotepad/views/root/right/RootRightSideBarVerticalBox.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/right/RootRightSideBarVerticalBox.java
index 6de4e90..aed21d1 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/right/RootRightSideBarVerticalBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/right/RootRightSideBarVerticalBox.java
@@ -1,6 +1,6 @@
-package org.jcnc.jnotepad.views.root.right;
+package org.jcnc.jnotepad.ui.views.root.right;
-import org.jcnc.jnotepad.component.module.base.AbstractVerticalBox;
+import org.jcnc.jnotepad.ui.component.module.base.AbstractVerticalBox;
/**
* 右侧边栏的垂直布局容器类。
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/RootTopBorderPane.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/RootTopBorderPane.java
similarity index 85%
rename from src/main/java/org/jcnc/jnotepad/views/root/top/RootTopBorderPane.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/top/RootTopBorderPane.java
index 7cd3d7a..2abc29d 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/top/RootTopBorderPane.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/RootTopBorderPane.java
@@ -1,6 +1,6 @@
-package org.jcnc.jnotepad.views.root.top;
+package org.jcnc.jnotepad.ui.views.root.top;
-import org.jcnc.jnotepad.component.module.base.AbstractBorderPane;
+import org.jcnc.jnotepad.ui.component.module.base.AbstractBorderPane;
/**
* RootTopBorderPane 类表示 JNotepad 应用程序的顶部边界面板。
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/TopMenuBar.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/TopMenuBar.java
similarity index 96%
rename from src/main/java/org/jcnc/jnotepad/views/root/top/menubar/TopMenuBar.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/TopMenuBar.java
index 7d82c07..ca594df 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/TopMenuBar.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/TopMenuBar.java
@@ -1,8 +1,8 @@
-package org.jcnc.jnotepad.views.root.top.menubar;
+package org.jcnc.jnotepad.ui.views.root.top.menubar;
import javafx.scene.control.*;
-import org.jcnc.jnotepad.views.manager.CenterTabPaneManager;
-import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTab;
+import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.tab.CenterTab;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/FileTopMenu.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/FileTopMenu.java
similarity index 93%
rename from src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/FileTopMenu.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/FileTopMenu.java
index ceac373..0d290db 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/FileTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/FileTopMenu.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.views.root.top.menubar.menu;
+package org.jcnc.jnotepad.ui.views.root.top.menubar.menu;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
@@ -9,7 +9,7 @@ import org.jcnc.jnotepad.controller.event.handler.toolbar.OpenDirectory;
import java.util.HashMap;
import java.util.Map;
-import static org.jcnc.jnotepad.common.constants.TextConstants.*;
+import static org.jcnc.jnotepad.app.common.constants.TextConstants.*;
/**
* 文件菜单
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/HelpTopMenu.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/HelpTopMenu.java
similarity index 83%
rename from src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/HelpTopMenu.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/HelpTopMenu.java
index 7626a34..035f129 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/HelpTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/HelpTopMenu.java
@@ -1,16 +1,16 @@
-package org.jcnc.jnotepad.views.root.top.menubar.menu;
+package org.jcnc.jnotepad.ui.views.root.top.menubar.menu;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import javafx.stage.Stage;
import org.jcnc.jnotepad.api.core.views.top.menu.AbstractTopMenu;
-import org.jcnc.jnotepad.component.stage.topmenu.help.DeveloperDebugPaneStage;
-import org.jcnc.jnotepad.component.stage.topmenu.help.HelpPaneStage;
+import org.jcnc.jnotepad.ui.component.stage.topmenu.help.DeveloperDebugPaneStage;
+import org.jcnc.jnotepad.ui.component.stage.topmenu.help.HelpPaneStage;
import java.util.HashMap;
import java.util.Map;
-import static org.jcnc.jnotepad.common.constants.TextConstants.*;
+import static org.jcnc.jnotepad.app.common.constants.TextConstants.*;
/**
* 帮助菜单
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/LanguageTopMenu.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/LanguageTopMenu.java
similarity index 96%
rename from src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/LanguageTopMenu.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/LanguageTopMenu.java
index 98e0b60..3fa2d47 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/LanguageTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/LanguageTopMenu.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.views.root.top.menubar.menu;
+package org.jcnc.jnotepad.ui.views.root.top.menubar.menu;
import javafx.event.ActionEvent;
import javafx.scene.control.Menu;
@@ -15,7 +15,7 @@ import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
-import static org.jcnc.jnotepad.common.constants.TextConstants.*;
+import static org.jcnc.jnotepad.app.common.constants.TextConstants.*;
/**
* 语言顶部菜单
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/PluginTopMenu.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/PluginTopMenu.java
similarity index 86%
rename from src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/PluginTopMenu.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/PluginTopMenu.java
index 10ac572..f3291bc 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/PluginTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/PluginTopMenu.java
@@ -1,14 +1,14 @@
-package org.jcnc.jnotepad.views.root.top.menubar.menu;
+package org.jcnc.jnotepad.ui.views.root.top.menubar.menu;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import org.jcnc.jnotepad.api.core.views.top.menu.AbstractTopMenu;
-import org.jcnc.jnotepad.component.stage.topmenu.plugin.PluginManagementPane;
+import org.jcnc.jnotepad.ui.component.stage.topmenu.plugin.PluginManagementPane;
import java.util.HashMap;
import java.util.Map;
-import static org.jcnc.jnotepad.common.constants.TextConstants.*;
+import static org.jcnc.jnotepad.app.common.constants.TextConstants.*;
/**
* 插件菜单
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/RunTopMenu.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/RunTopMenu.java
similarity index 89%
rename from src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/RunTopMenu.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/RunTopMenu.java
index a65d5f8..9cf0f2d 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/RunTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/RunTopMenu.java
@@ -1,22 +1,22 @@
-package org.jcnc.jnotepad.views.root.top.menubar.menu;
+package org.jcnc.jnotepad.ui.views.root.top.menubar.menu;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import org.jcnc.jnotepad.api.core.views.top.menu.AbstractTopMenu;
-import org.jcnc.jnotepad.component.module.vbox.BuildPanel;
-import org.jcnc.jnotepad.util.LogUtil;
-import org.jcnc.jnotepad.views.manager.BuildPanelManager;
-import org.jcnc.jnotepad.views.manager.CenterTabPaneManager;
-import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTab;
+import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.ui.component.module.vbox.BuildPanel;
+import org.jcnc.jnotepad.ui.views.manager.BuildPanelManager;
+import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
+import org.jcnc.jnotepad.ui.views.root.center.main.center.tab.CenterTab;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
-import static org.jcnc.jnotepad.common.constants.TextConstants.DE_BUG;
-import static org.jcnc.jnotepad.common.constants.TextConstants.RUN;
+import static org.jcnc.jnotepad.app.common.constants.TextConstants.DE_BUG;
+import static org.jcnc.jnotepad.app.common.constants.TextConstants.RUN;
/**
* 运行菜单
diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/SettingTopMenu.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/SettingTopMenu.java
similarity index 90%
rename from src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/SettingTopMenu.java
rename to src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/SettingTopMenu.java
index e4d262d..e9e8e3d 100644
--- a/src/main/java/org/jcnc/jnotepad/views/root/top/menubar/menu/SettingTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/SettingTopMenu.java
@@ -1,18 +1,18 @@
-package org.jcnc.jnotepad.views.root.top.menubar.menu;
+package org.jcnc.jnotepad.ui.views.root.top.menubar.menu;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import javafx.stage.Stage;
import org.jcnc.jnotepad.api.core.views.top.menu.AbstractTopMenu;
+import org.jcnc.jnotepad.app.util.UiUtil;
import org.jcnc.jnotepad.controller.config.UserConfigController;
import org.jcnc.jnotepad.controller.event.handler.menuitem.OpenConfig;
-import org.jcnc.jnotepad.util.UiUtil;
-import org.jcnc.jnotepad.views.manager.CenterTabPaneManager;
+import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
import java.util.HashMap;
import java.util.Map;
-import static org.jcnc.jnotepad.common.constants.TextConstants.*;
+import static org.jcnc.jnotepad.app.common.constants.TextConstants.*;
/**
* 设置菜单
--
Gitee
From 92b47af415ee2bd68352083dbc7d1e89fde4f926 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E8=BD=B2?=
Date: Wed, 11 Oct 2023 02:46:00 +0800
Subject: [PATCH 36/36] =?UTF-8?q?=E9=87=8D=E6=9E=84=E9=A1=B9=E7=9B=AE?=
=?UTF-8?q?=E7=BB=93=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/org/jcnc/jnotepad/JnotepadApp.java | 2 +-
.../api/core/controller/config/BaseConfigController.java | 6 +++---
.../jnotepad/api/core/views/top/menu/AbstractTopMenu.java | 2 +-
.../jnotepad/app/common/manager/ThreadPoolManager.java | 2 +-
.../org/jcnc/jnotepad/app/manager/ApplicationManager.java | 6 +++---
.../jcnc/jnotepad/app/{util => utils}/ClipboardUtil.java | 2 +-
.../jnotepad/app/{util => utils}/EncodingDetector.java | 2 +-
.../org/jcnc/jnotepad/app/{util => utils}/FileUtil.java | 2 +-
.../org/jcnc/jnotepad/app/{util => utils}/JsonUtil.java | 2 +-
.../org/jcnc/jnotepad/app/{util => utils}/LogUtil.java | 2 +-
.../jnotepad/app/{util => utils}/NotificationUtil.java | 2 +-
.../org/jcnc/jnotepad/app/{util => utils}/PopUpUtil.java | 2 +-
.../jcnc/jnotepad/app/{util => utils}/ResourceUtil.java | 2 +-
.../org/jcnc/jnotepad/app/{util => utils}/TabUtil.java | 4 ++--
.../org/jcnc/jnotepad/app/{util => utils}/UiUtil.java | 2 +-
.../java/org/jcnc/jnotepad/app/{util => utils}/aReadme.md | 0
.../jcnc/jnotepad/controller/cache/CacheController.java | 4 ++--
.../controller/event/handler/menuitem/NewFile.java | 2 +-
.../controller/event/handler/menuitem/OpenConfig.java | 4 ++--
.../controller/event/handler/menuitem/OpenFile.java | 4 ++--
.../controller/event/handler/menuitem/RenameFile.java | 2 +-
.../controller/event/handler/menuitem/SaveAsFile.java | 4 ++--
.../controller/event/handler/menuitem/SaveFile.java | 2 +-
.../controller/event/handler/toolbar/OpenDirectory.java | 4 ++--
.../org/jcnc/jnotepad/controller/manager/Controller.java | 4 ++--
.../org/jcnc/jnotepad/controller/plugin/PluginLoader.java | 4 ++--
.../controller/plugin/PluginManagerInterface.java | 6 +++---
.../jnotepad/controller/plugin/manager/PluginManager.java | 4 ++--
.../component/module/vbox/components/CmdTerminalBox.java | 2 +-
.../ui/component/stage/dialog/AppDialogBuilder.java | 2 +-
.../jnotepad/ui/component/stage/setting/SetStage.java | 4 ++--
.../stage/topmenu/help/DeveloperDebugPaneStage.java | 6 +++---
.../ui/component/stage/topmenu/help/HelpPaneStage.java | 8 ++++----
.../stage/topmenu/plugin/PluginManagementPane.java | 6 +++---
.../jnotepad/ui/views/manager/CenterTabPaneManager.java | 4 ++--
.../ui/views/manager/DirectorySidebarManager.java | 2 +-
.../jnotepad/ui/views/manager/SidebarToolBarManager.java | 2 +-
.../jcnc/jnotepad/ui/views/manager/TopMenuBarManager.java | 2 +-
.../main/center/directory/DirectorySidebarPane.java | 2 +-
.../ui/views/root/center/main/center/tab/CenterTab.java | 6 +++---
.../ui/views/root/top/menubar/menu/RunTopMenu.java | 2 +-
.../ui/views/root/top/menubar/menu/SettingTopMenu.java | 2 +-
42 files changed, 67 insertions(+), 67 deletions(-)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/ClipboardUtil.java (96%)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/EncodingDetector.java (98%)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/FileUtil.java (99%)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/JsonUtil.java (98%)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/LogUtil.java (95%)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/NotificationUtil.java (99%)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/PopUpUtil.java (99%)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/ResourceUtil.java (98%)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/TabUtil.java (99%)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/UiUtil.java (99%)
rename src/main/java/org/jcnc/jnotepad/app/{util => utils}/aReadme.md (100%)
diff --git a/src/main/java/org/jcnc/jnotepad/JnotepadApp.java b/src/main/java/org/jcnc/jnotepad/JnotepadApp.java
index 8d2abe2..170e258 100644
--- a/src/main/java/org/jcnc/jnotepad/JnotepadApp.java
+++ b/src/main/java/org/jcnc/jnotepad/JnotepadApp.java
@@ -3,7 +3,7 @@ package org.jcnc.jnotepad;
import javafx.application.Application;
import javafx.stage.Stage;
import org.jcnc.jnotepad.app.manager.ApplicationManager;
-import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/api/core/controller/config/BaseConfigController.java b/src/main/java/org/jcnc/jnotepad/api/core/controller/config/BaseConfigController.java
index 5d04c42..6fde0b8 100644
--- a/src/main/java/org/jcnc/jnotepad/api/core/controller/config/BaseConfigController.java
+++ b/src/main/java/org/jcnc/jnotepad/api/core/controller/config/BaseConfigController.java
@@ -1,9 +1,9 @@
package org.jcnc.jnotepad.api.core.controller.config;
import org.jcnc.jnotepad.api.core.controller.interfaces.ConfigController;
-import org.jcnc.jnotepad.app.util.JsonUtil;
-import org.jcnc.jnotepad.app.util.LogUtil;
-import org.jcnc.jnotepad.app.util.PopUpUtil;
+import org.jcnc.jnotepad.app.utils.JsonUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
+import org.jcnc.jnotepad.app.utils.PopUpUtil;
import org.jcnc.jnotepad.controller.exception.AppException;
import org.slf4j.Logger;
diff --git a/src/main/java/org/jcnc/jnotepad/api/core/views/top/menu/AbstractTopMenu.java b/src/main/java/org/jcnc/jnotepad/api/core/views/top/menu/AbstractTopMenu.java
index d2154bc..54d9e58 100644
--- a/src/main/java/org/jcnc/jnotepad/api/core/views/top/menu/AbstractTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/api/core/views/top/menu/AbstractTopMenu.java
@@ -8,7 +8,7 @@ import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import javafx.scene.control.RadioMenuItem;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
-import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
import org.jcnc.jnotepad.ui.views.root.top.menubar.TopMenuBar;
import org.slf4j.Logger;
diff --git a/src/main/java/org/jcnc/jnotepad/app/common/manager/ThreadPoolManager.java b/src/main/java/org/jcnc/jnotepad/app/common/manager/ThreadPoolManager.java
index fcf5bbd..faf8055 100644
--- a/src/main/java/org/jcnc/jnotepad/app/common/manager/ThreadPoolManager.java
+++ b/src/main/java/org/jcnc/jnotepad/app/common/manager/ThreadPoolManager.java
@@ -1,6 +1,6 @@
package org.jcnc.jnotepad.app.common.manager;
-import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
import org.slf4j.Logger;
import java.util.concurrent.*;
diff --git a/src/main/java/org/jcnc/jnotepad/app/manager/ApplicationManager.java b/src/main/java/org/jcnc/jnotepad/app/manager/ApplicationManager.java
index d0aba5a..3d7467d 100644
--- a/src/main/java/org/jcnc/jnotepad/app/manager/ApplicationManager.java
+++ b/src/main/java/org/jcnc/jnotepad/app/manager/ApplicationManager.java
@@ -13,9 +13,9 @@ import org.jcnc.jnotepad.app.common.constants.TextConstants;
import org.jcnc.jnotepad.app.common.manager.ThreadPoolManager;
import org.jcnc.jnotepad.app.config.AppConfig;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
-import org.jcnc.jnotepad.app.util.FileUtil;
-import org.jcnc.jnotepad.app.util.LogUtil;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.FileUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import org.jcnc.jnotepad.controller.ResourceController;
import org.jcnc.jnotepad.controller.cache.CacheController;
import org.jcnc.jnotepad.controller.config.AppConfigController;
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/ClipboardUtil.java b/src/main/java/org/jcnc/jnotepad/app/utils/ClipboardUtil.java
similarity index 96%
rename from src/main/java/org/jcnc/jnotepad/app/util/ClipboardUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/utils/ClipboardUtil.java
index dd42114..100153a 100644
--- a/src/main/java/org/jcnc/jnotepad/app/util/ClipboardUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/utils/ClipboardUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.app.util;
+package org.jcnc.jnotepad.app.utils;
import javafx.scene.input.Clipboard;
import javafx.scene.input.ClipboardContent;
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/EncodingDetector.java b/src/main/java/org/jcnc/jnotepad/app/utils/EncodingDetector.java
similarity index 98%
rename from src/main/java/org/jcnc/jnotepad/app/util/EncodingDetector.java
rename to src/main/java/org/jcnc/jnotepad/app/utils/EncodingDetector.java
index 620fbfa..550a9a1 100644
--- a/src/main/java/org/jcnc/jnotepad/app/util/EncodingDetector.java
+++ b/src/main/java/org/jcnc/jnotepad/app/utils/EncodingDetector.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.app.util;
+package org.jcnc.jnotepad.app.utils;
import com.ibm.icu.text.CharsetDetector;
import com.ibm.icu.text.CharsetMatch;
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/FileUtil.java b/src/main/java/org/jcnc/jnotepad/app/utils/FileUtil.java
similarity index 99%
rename from src/main/java/org/jcnc/jnotepad/app/util/FileUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/utils/FileUtil.java
index 8f6b6ad..9b1fe76 100644
--- a/src/main/java/org/jcnc/jnotepad/app/util/FileUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/utils/FileUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.app.util;
+package org.jcnc.jnotepad.app.utils;
import javafx.scene.Node;
import org.jcnc.jnotepad.controller.event.handler.menuitem.OpenFile;
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/JsonUtil.java b/src/main/java/org/jcnc/jnotepad/app/utils/JsonUtil.java
similarity index 98%
rename from src/main/java/org/jcnc/jnotepad/app/util/JsonUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/utils/JsonUtil.java
index 9ec43db..057073c 100644
--- a/src/main/java/org/jcnc/jnotepad/app/util/JsonUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/utils/JsonUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.app.util;
+package org.jcnc.jnotepad.app.utils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/LogUtil.java b/src/main/java/org/jcnc/jnotepad/app/utils/LogUtil.java
similarity index 95%
rename from src/main/java/org/jcnc/jnotepad/app/util/LogUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/utils/LogUtil.java
index 04e8ce6..918ed02 100644
--- a/src/main/java/org/jcnc/jnotepad/app/util/LogUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/utils/LogUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.app.util;
+package org.jcnc.jnotepad.app.utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/NotificationUtil.java b/src/main/java/org/jcnc/jnotepad/app/utils/NotificationUtil.java
similarity index 99%
rename from src/main/java/org/jcnc/jnotepad/app/util/NotificationUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/utils/NotificationUtil.java
index 2528eb4..14c0a59 100644
--- a/src/main/java/org/jcnc/jnotepad/app/util/NotificationUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/utils/NotificationUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.app.util;
+package org.jcnc.jnotepad.app.utils;
import atlantafx.base.controls.Notification;
import atlantafx.base.theme.Styles;
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/PopUpUtil.java b/src/main/java/org/jcnc/jnotepad/app/utils/PopUpUtil.java
similarity index 99%
rename from src/main/java/org/jcnc/jnotepad/app/util/PopUpUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/utils/PopUpUtil.java
index a1a58e8..c7794c2 100644
--- a/src/main/java/org/jcnc/jnotepad/app/util/PopUpUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/utils/PopUpUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.app.util;
+package org.jcnc.jnotepad.app.utils;
import org.jcnc.jnotepad.model.enums.DialogType;
import org.jcnc.jnotepad.ui.component.stage.dialog.AppDialogBuilder;
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/ResourceUtil.java b/src/main/java/org/jcnc/jnotepad/app/utils/ResourceUtil.java
similarity index 98%
rename from src/main/java/org/jcnc/jnotepad/app/util/ResourceUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/utils/ResourceUtil.java
index d0da3d5..1ab1b34 100644
--- a/src/main/java/org/jcnc/jnotepad/app/util/ResourceUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/utils/ResourceUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.app.util;
+package org.jcnc.jnotepad.app.utils;
import org.jcnc.jnotepad.JnotepadApp;
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/TabUtil.java b/src/main/java/org/jcnc/jnotepad/app/utils/TabUtil.java
similarity index 99%
rename from src/main/java/org/jcnc/jnotepad/app/util/TabUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/utils/TabUtil.java
index 627a8d8..d5307e0 100644
--- a/src/main/java/org/jcnc/jnotepad/app/util/TabUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/utils/TabUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.app.util;
+package org.jcnc.jnotepad.app.utils;
import javafx.scene.control.Tab;
import javafx.scene.control.TextField;
@@ -29,7 +29,7 @@ import java.nio.charset.Charset;
import java.util.Comparator;
import java.util.List;
-import static org.jcnc.jnotepad.app.util.FileUtil.getFileText;
+import static org.jcnc.jnotepad.app.utils.FileUtil.getFileText;
import static org.jcnc.jnotepad.controller.config.UserConfigController.CONFIG_NAME;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/UiUtil.java b/src/main/java/org/jcnc/jnotepad/app/utils/UiUtil.java
similarity index 99%
rename from src/main/java/org/jcnc/jnotepad/app/util/UiUtil.java
rename to src/main/java/org/jcnc/jnotepad/app/utils/UiUtil.java
index 8411829..9e8764e 100644
--- a/src/main/java/org/jcnc/jnotepad/app/util/UiUtil.java
+++ b/src/main/java/org/jcnc/jnotepad/app/utils/UiUtil.java
@@ -1,4 +1,4 @@
-package org.jcnc.jnotepad.app.util;
+package org.jcnc.jnotepad.app.utils;
import atlantafx.base.theme.Styles;
import javafx.scene.Node;
diff --git a/src/main/java/org/jcnc/jnotepad/app/util/aReadme.md b/src/main/java/org/jcnc/jnotepad/app/utils/aReadme.md
similarity index 100%
rename from src/main/java/org/jcnc/jnotepad/app/util/aReadme.md
rename to src/main/java/org/jcnc/jnotepad/app/utils/aReadme.md
diff --git a/src/main/java/org/jcnc/jnotepad/controller/cache/CacheController.java b/src/main/java/org/jcnc/jnotepad/controller/cache/CacheController.java
index 77fbd42..830356b 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/cache/CacheController.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/cache/CacheController.java
@@ -2,8 +2,8 @@ package org.jcnc.jnotepad.controller.cache;
import com.fasterxml.jackson.core.type.TypeReference;
import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
-import org.jcnc.jnotepad.app.util.JsonUtil;
-import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.utils.JsonUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
import org.jcnc.jnotepad.controller.config.AppConfigController;
import org.jcnc.jnotepad.model.entity.Cache;
import org.slf4j.Logger;
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/NewFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/NewFile.java
index 27722cd..b1760a4 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/NewFile.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/NewFile.java
@@ -3,7 +3,7 @@ package org.jcnc.jnotepad.controller.event.handler.menuitem;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
-import static org.jcnc.jnotepad.app.util.TabUtil.addNewFileTab;
+import static org.jcnc.jnotepad.app.utils.TabUtil.addNewFileTab;
/**
* 新建文件事件的事件处理程序。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenConfig.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenConfig.java
index 0f7a95a..e8b9168 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenConfig.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenConfig.java
@@ -1,12 +1,12 @@
package org.jcnc.jnotepad.controller.event.handler.menuitem;
import javafx.event.ActionEvent;
-import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
import org.jcnc.jnotepad.controller.config.UserConfigController;
import java.io.File;
-import static org.jcnc.jnotepad.app.util.TabUtil.openFileToTab;
+import static org.jcnc.jnotepad.app.utils.TabUtil.openFileToTab;
/**
* 打开配置文件事件处理程序。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenFile.java
index 2fdcbc0..be3e5df 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenFile.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/OpenFile.java
@@ -6,14 +6,14 @@ import javafx.stage.FileChooser;
import org.jcnc.jnotepad.app.common.constants.TextConstants;
import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import org.jcnc.jnotepad.model.entity.Cache;
import org.jcnc.jnotepad.model.enums.CacheExpirationTime;
import org.jcnc.jnotepad.ui.component.stage.dialog.factory.impl.BasicFileChooserFactory;
import java.io.File;
-import static org.jcnc.jnotepad.app.util.TabUtil.openFileToTab;
+import static org.jcnc.jnotepad.app.utils.TabUtil.openFileToTab;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/RenameFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/RenameFile.java
index 7fdde7c..b76f4d9 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/RenameFile.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/RenameFile.java
@@ -4,7 +4,7 @@ import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
-import static org.jcnc.jnotepad.app.util.TabUtil.rename;
+import static org.jcnc.jnotepad.app.utils.TabUtil.rename;
/**
* 重命名文件事件处理器。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveAsFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveAsFile.java
index a0a7bc9..4b84566 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveAsFile.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveAsFile.java
@@ -1,10 +1,10 @@
package org.jcnc.jnotepad.controller.event.handler.menuitem;
import javafx.event.ActionEvent;
-import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
-import static org.jcnc.jnotepad.app.util.TabUtil.saveAsFile;
+import static org.jcnc.jnotepad.app.utils.TabUtil.saveAsFile;
/**
* 保存文件事件处理器。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveFile.java
index 7e186d9..d685a45 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveFile.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuitem/SaveFile.java
@@ -4,7 +4,7 @@ import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
-import static org.jcnc.jnotepad.app.util.TabUtil.saveFile;
+import static org.jcnc.jnotepad.app.utils.TabUtil.saveFile;
/**
* 保存文件事件处理程序。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/OpenDirectory.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/OpenDirectory.java
index f863134..05be499 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/OpenDirectory.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/toolbar/OpenDirectory.java
@@ -6,8 +6,8 @@ import javafx.event.EventHandler;
import org.jcnc.jnotepad.app.common.constants.TextConstants;
import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
-import org.jcnc.jnotepad.app.util.FileUtil;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.FileUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import org.jcnc.jnotepad.model.entity.Cache;
import org.jcnc.jnotepad.model.entity.DirFileModel;
import org.jcnc.jnotepad.model.enums.CacheExpirationTime;
diff --git a/src/main/java/org/jcnc/jnotepad/controller/manager/Controller.java b/src/main/java/org/jcnc/jnotepad/controller/manager/Controller.java
index 648bfc1..4c79cd6 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/manager/Controller.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/manager/Controller.java
@@ -8,8 +8,8 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
-import static org.jcnc.jnotepad.app.util.TabUtil.addNewFileTab;
-import static org.jcnc.jnotepad.app.util.TabUtil.openFileToTab;
+import static org.jcnc.jnotepad.app.utils.TabUtil.addNewFileTab;
+import static org.jcnc.jnotepad.app.utils.TabUtil.openFileToTab;
/**
* 控制器类,实现 ControllerAble 接口,用于管理文本编辑器的各种操作和事件处理。
diff --git a/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginLoader.java b/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginLoader.java
index 23927dc..82ce17a 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginLoader.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginLoader.java
@@ -1,8 +1,8 @@
package org.jcnc.jnotepad.controller.plugin;
import org.jcnc.jnotepad.app.common.manager.ThreadPoolManager;
-import org.jcnc.jnotepad.app.util.JsonUtil;
-import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.utils.JsonUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
import org.jcnc.jnotepad.controller.config.PluginConfigController;
import org.jcnc.jnotepad.controller.exception.AppException;
import org.jcnc.jnotepad.controller.plugin.interfaces.Plugin;
diff --git a/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginManagerInterface.java b/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginManagerInterface.java
index 7a376b6..8fec9fc 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginManagerInterface.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/plugin/PluginManagerInterface.java
@@ -6,9 +6,9 @@ import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
-import org.jcnc.jnotepad.app.util.LogUtil;
-import org.jcnc.jnotepad.app.util.PopUpUtil;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
+import org.jcnc.jnotepad.app.utils.PopUpUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import org.jcnc.jnotepad.controller.plugin.manager.PluginManager;
import org.jcnc.jnotepad.ui.component.stage.dialog.factory.impl.BasicFileChooserFactory;
import org.slf4j.Logger;
diff --git a/src/main/java/org/jcnc/jnotepad/controller/plugin/manager/PluginManager.java b/src/main/java/org/jcnc/jnotepad/controller/plugin/manager/PluginManager.java
index 4bb8935..9714f36 100644
--- a/src/main/java/org/jcnc/jnotepad/controller/plugin/manager/PluginManager.java
+++ b/src/main/java/org/jcnc/jnotepad/controller/plugin/manager/PluginManager.java
@@ -2,8 +2,8 @@ package org.jcnc.jnotepad.controller.plugin.manager;
import org.jcnc.jnotepad.app.common.manager.ThreadPoolManager;
import org.jcnc.jnotepad.app.manager.ApplicationManager;
-import org.jcnc.jnotepad.app.util.LogUtil;
-import org.jcnc.jnotepad.app.util.PopUpUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
+import org.jcnc.jnotepad.app.utils.PopUpUtil;
import org.jcnc.jnotepad.controller.config.PluginConfigController;
import org.jcnc.jnotepad.model.entity.PluginDescriptor;
import org.slf4j.Logger;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/CmdTerminalBox.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/CmdTerminalBox.java
index a03da92..97ed871 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/CmdTerminalBox.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/CmdTerminalBox.java
@@ -10,7 +10,7 @@ import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.util.Duration;
import org.fxmisc.richtext.StyleClassedTextArea;
-import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
import java.io.*;
import java.nio.charset.Charset;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/AppDialogBuilder.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/AppDialogBuilder.java
index 8e31859..b4011eb 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/AppDialogBuilder.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/dialog/AppDialogBuilder.java
@@ -5,7 +5,7 @@ import javafx.geometry.Pos;
import javafx.scene.image.Image;
import javafx.stage.Modality;
import javafx.stage.Stage;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import org.jcnc.jnotepad.model.enums.DialogType;
import org.jcnc.jnotepad.ui.component.stage.dialog.interfaces.DialogButtonAction;
import org.kordamp.ikonli.javafx.FontIcon;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/SetStage.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/SetStage.java
index 6136f49..6be26fc 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/SetStage.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/setting/SetStage.java
@@ -21,8 +21,8 @@ import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
import org.jcnc.jnotepad.app.config.AppConfig;
import org.jcnc.jnotepad.app.i18n.UiResourceBundle;
import org.jcnc.jnotepad.app.manager.ApplicationManager;
-import org.jcnc.jnotepad.app.util.PopUpUtil;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.PopUpUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import org.jcnc.jnotepad.controller.config.AppConfigController;
import org.jcnc.jnotepad.controller.event.handler.toolbar.OpenDirectory;
import org.jcnc.jnotepad.controller.plugin.PluginManagerInterface;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/DeveloperDebugPaneStage.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/DeveloperDebugPaneStage.java
index 972048d..a9bcba6 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/DeveloperDebugPaneStage.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/DeveloperDebugPaneStage.java
@@ -10,9 +10,9 @@ import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import org.jcnc.jnotepad.api.core.component.stage.AbstractPaneStage;
import org.jcnc.jnotepad.app.manager.ApplicationManager;
-import org.jcnc.jnotepad.app.util.LogUtil;
-import org.jcnc.jnotepad.app.util.PopUpUtil;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
+import org.jcnc.jnotepad.app.utils.PopUpUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import org.jcnc.jnotepad.ui.component.stage.topmenu.builder.StageButtonBuilder;
import org.slf4j.Logger;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/HelpPaneStage.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/HelpPaneStage.java
index cb41527..14b0dc6 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/HelpPaneStage.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/help/HelpPaneStage.java
@@ -16,10 +16,10 @@ import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;
import org.jcnc.jnotepad.api.core.component.stage.AbstractPaneStage;
-import org.jcnc.jnotepad.app.util.ClipboardUtil;
-import org.jcnc.jnotepad.app.util.LogUtil;
-import org.jcnc.jnotepad.app.util.NotificationUtil;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.ClipboardUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
+import org.jcnc.jnotepad.app.utils.NotificationUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import static org.jcnc.jnotepad.app.common.constants.AppConstants.*;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/plugin/PluginManagementPane.java b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/plugin/PluginManagementPane.java
index 26c6571..7717116 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/plugin/PluginManagementPane.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/component/stage/topmenu/plugin/PluginManagementPane.java
@@ -26,9 +26,9 @@ import javafx.stage.Stage;
import org.commonmark.parser.Parser;
import org.commonmark.renderer.html.HtmlRenderer;
import org.jcnc.jnotepad.api.core.component.stage.AbstractPaneStage;
-import org.jcnc.jnotepad.app.util.LogUtil;
-import org.jcnc.jnotepad.app.util.PopUpUtil;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
+import org.jcnc.jnotepad.app.utils.PopUpUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import org.jcnc.jnotepad.controller.plugin.manager.PluginManager;
import org.jcnc.jnotepad.model.entity.PluginDescriptor;
import org.jcnc.jnotepad.ui.component.stage.setting.CustomSetButton;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/views/manager/CenterTabPaneManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/CenterTabPaneManager.java
index 9913f90..4d3cbc9 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/views/manager/CenterTabPaneManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/CenterTabPaneManager.java
@@ -5,8 +5,8 @@ import javafx.collections.ObservableList;
import javafx.scene.control.Tab;
import javafx.stage.Stage;
import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
-import org.jcnc.jnotepad.app.util.FileUtil;
-import org.jcnc.jnotepad.app.util.PopUpUtil;
+import org.jcnc.jnotepad.app.utils.FileUtil;
+import org.jcnc.jnotepad.app.utils.PopUpUtil;
import org.jcnc.jnotepad.controller.config.UserConfigController;
import org.jcnc.jnotepad.model.enums.CacheExpirationTime;
import org.jcnc.jnotepad.ui.component.module.TextCodeArea;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/views/manager/DirectorySidebarManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/DirectorySidebarManager.java
index 4aaaa4e..f774190 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/views/manager/DirectorySidebarManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/DirectorySidebarManager.java
@@ -5,7 +5,7 @@ import javafx.scene.control.SplitPane;
import javafx.scene.control.TreeItem;
import org.jcnc.jnotepad.app.common.constants.SplitPaneItemConstants;
import org.jcnc.jnotepad.app.common.manager.ApplicationCacheManager;
-import org.jcnc.jnotepad.app.util.FileUtil;
+import org.jcnc.jnotepad.app.utils.FileUtil;
import org.jcnc.jnotepad.controller.event.handler.toolbar.OpenDirectory;
import org.jcnc.jnotepad.model.entity.DirFileModel;
import org.jcnc.jnotepad.ui.views.root.center.main.MainBorderPane;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/views/manager/SidebarToolBarManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/SidebarToolBarManager.java
index ec4f214..ba25342 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/views/manager/SidebarToolBarManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/SidebarToolBarManager.java
@@ -3,7 +3,7 @@ package org.jcnc.jnotepad.ui.views.manager;
import javafx.scene.Node;
import org.jcnc.jnotepad.api.core.views.manager.AbstractManager;
import org.jcnc.jnotepad.api.core.views.manager.builder.SideBarButtonBuilder;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import org.jcnc.jnotepad.controller.event.handler.toolbar.DirTreeBtn;
import org.jcnc.jnotepad.controller.event.handler.toolbar.RunBtn;
import org.jcnc.jnotepad.controller.event.handler.toolbar.SetBtn;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/views/manager/TopMenuBarManager.java b/src/main/java/org/jcnc/jnotepad/ui/views/manager/TopMenuBarManager.java
index 89cd9bd..898e050 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/views/manager/TopMenuBarManager.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/manager/TopMenuBarManager.java
@@ -6,7 +6,7 @@ import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import javafx.scene.input.KeyCombination;
import org.jcnc.jnotepad.api.core.views.manager.AbstractManager;
-import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
import org.jcnc.jnotepad.controller.config.UserConfigController;
import org.jcnc.jnotepad.model.entity.ShortcutKey;
import org.jcnc.jnotepad.ui.views.root.top.menubar.TopMenuBar;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/directory/DirectorySidebarPane.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/directory/DirectorySidebarPane.java
index fbe31e1..f36bba4 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/directory/DirectorySidebarPane.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/directory/DirectorySidebarPane.java
@@ -7,7 +7,7 @@ import org.jcnc.jnotepad.model.entity.DirFileModel;
import java.io.File;
import java.util.Objects;
-import static org.jcnc.jnotepad.app.util.TabUtil.openFileToTab;
+import static org.jcnc.jnotepad.app.utils.TabUtil.openFileToTab;
/**
diff --git a/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/tab/CenterTab.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/tab/CenterTab.java
index 871edb8..6d1001f 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/tab/CenterTab.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/center/main/center/tab/CenterTab.java
@@ -4,9 +4,9 @@ import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.scene.control.Tab;
import org.fxmisc.flowless.VirtualizedScrollPane;
-import org.jcnc.jnotepad.app.util.FileUtil;
-import org.jcnc.jnotepad.app.util.LogUtil;
-import org.jcnc.jnotepad.app.util.TabUtil;
+import org.jcnc.jnotepad.app.utils.FileUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
+import org.jcnc.jnotepad.app.utils.TabUtil;
import org.jcnc.jnotepad.controller.config.UserConfigController;
import org.jcnc.jnotepad.ui.component.module.TextCodeArea;
import org.jcnc.jnotepad.ui.views.manager.BottomStatusBoxManager;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/RunTopMenu.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/RunTopMenu.java
index 9cf0f2d..fc69cf2 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/RunTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/RunTopMenu.java
@@ -5,7 +5,7 @@ import javafx.event.EventHandler;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import org.jcnc.jnotepad.api.core.views.top.menu.AbstractTopMenu;
-import org.jcnc.jnotepad.app.util.LogUtil;
+import org.jcnc.jnotepad.app.utils.LogUtil;
import org.jcnc.jnotepad.ui.component.module.vbox.BuildPanel;
import org.jcnc.jnotepad.ui.views.manager.BuildPanelManager;
import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
diff --git a/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/SettingTopMenu.java b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/SettingTopMenu.java
index e9e8e3d..c7d7e58 100644
--- a/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/SettingTopMenu.java
+++ b/src/main/java/org/jcnc/jnotepad/ui/views/root/top/menubar/menu/SettingTopMenu.java
@@ -4,7 +4,7 @@ import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import javafx.stage.Stage;
import org.jcnc.jnotepad.api.core.views.top.menu.AbstractTopMenu;
-import org.jcnc.jnotepad.app.util.UiUtil;
+import org.jcnc.jnotepad.app.utils.UiUtil;
import org.jcnc.jnotepad.controller.config.UserConfigController;
import org.jcnc.jnotepad.controller.event.handler.menuitem.OpenConfig;
import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager;
--
Gitee