diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 40812fd36a3eea808bf1dac13689259c1c729b2e..2c2066c42e92725ae68a565dc16ec7e784ea2436 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 d2ccd29022d5af17e79b537f97ad2cb49df499ad..170e258f78865585c818375637ca049a6384154d 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.utils.LogUtil; /** diff --git a/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractMenuBuilder.java b/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractMenuBuilder.java new file mode 100644 index 0000000000000000000000000000000000000000..6d6d8f595f47fa4b821b12c2abf4a6bb502f952f --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractMenuBuilder.java @@ -0,0 +1,138 @@ +package org.jcnc.jnotepad.api.core.component.stage; + +import javafx.collections.ObservableList; +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.scene.control.*; + +/** + * 抽象菜单建造者类 + * + *

+ * 该抽象类用于构建菜单,包括菜单项、单选菜单项、复选菜单项、分割线等。 + * 子类应继承此类以实现具体的菜单构建逻辑。 + *

+ * + * @param 建造者类型 + * @param 构建结果类型 + * + * @author gewuyou + */ +public abstract class AbstractMenuBuilder { + /** + * 获取子类的建造者实例 + * + * @return 建造者实例 + */ + protected abstract B getBuilder(); + + /** + * 获取菜单的菜单项列表 + * + * @return 菜单项列表 + */ + protected abstract ObservableList getItems(); + + /** + * 添加菜单项 + * + * @param label 菜单项名称 + * @param eventHandler 事件处理器 + * @return 当前建造者实例 + */ + public B addMenuItem(String label, EventHandler eventHandler) { + MenuItem menuItem = new MenuItem(label); + menuItem.setOnAction(eventHandler); + getItems().add(menuItem); + return getBuilder(); + } + + /** + * 添加菜单项 + * + * @param label 菜单项名称 + * @param eventHandler 事件处理器 + * @param disable 是否禁用 + * @return 当前建造者实例 + */ + public B addMenuItem(String label, EventHandler eventHandler, boolean disable) { + if (!disable) { + return getBuilder(); + } + MenuItem menuItem = new MenuItem(label); + menuItem.setOnAction(eventHandler); + getItems().add(menuItem); + return getBuilder(); + } + + /** + * 添加单选菜单项 + * + * @param label 菜单项名称 + * @param eventHandler 事件处理器 + * @return 当前建造者实例 + */ + public B addRadioMenuItem(String label, EventHandler eventHandler) { + RadioMenuItem menuItem = new RadioMenuItem(label); + menuItem.setOnAction(eventHandler); + getItems().add(menuItem); + return getBuilder(); + } + + /** + * 添加复选菜单项 + * + * @param label 菜单项名称 + * @param eventHandler 事件处理器 + * @return 当前建造者实例 + */ + public B addCheckMenuItem(String label, EventHandler eventHandler) { + CheckMenuItem menuItem = new CheckMenuItem(label); + menuItem.setOnAction(eventHandler); + getItems().add(menuItem); + return getBuilder(); + } + + /** + * 添加菜单 + * + * @param menu 菜单 + * @return 当前建造者实例 + */ + public B addMenu(Menu menu) { + getItems().add(menu); + return getBuilder(); + } + + /** + * 添加菜单 + * + * @param menu 菜单 + * @param disable 是否禁用 + * @return 当前建造者实例 + */ + public B addMenu(Menu menu, boolean disable) { + if (!disable) { + return getBuilder(); + } + getItems().add(menu); + return getBuilder(); + } + + /** + * 添加分割线 + * + * @return 当前建造者实例 + */ + public B addSeparatorMenuItem() { + getItems().add(new SeparatorMenuItem()); + return getBuilder(); + } + + /** + * 构建菜单 + * + * @return 构建的菜单 + */ + public abstract T build(); +} diff --git a/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractPaneStage.java b/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractPaneStage.java index 107083a5fbeb60bc69ca805aba8caf4271845cfe..bdebeacf357e0390e22f09edce264c96499841d8 100644 --- a/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractPaneStage.java +++ b/src/main/java/org/jcnc/jnotepad/api/core/component/stage/AbstractPaneStage.java @@ -7,7 +7,10 @@ import javafx.stage.Modality; import javafx.stage.Stage; /** - * 抽象窗格舞台 + * 抽象窗格舞台。 + *

+ * 该类是一个抽象的窗格舞台,用于创建自定义的JavaFX窗口。 + *

* * @author gewuyou */ @@ -15,40 +18,46 @@ public abstract class AbstractPaneStage extends BorderPane { private final Stage stage = new Stage(); /** - * 获取舞台图标 + * 获取舞台图标。 * * @return 舞台图标 */ protected abstract Image getStageIcon(); /** - * 获取舞台标题 + * 获取舞台标题。 * * @return 舞台标题 */ protected abstract String getStageTitle(); /** - * 获取自定义舞台 + * 获取自定义舞台场景。 * - * @return 舞台 + * @return 舞台场景 */ protected abstract Scene getCustomizationScene(); /** - * 初始化方法 + * 初始化方法。 + *

+ * 在此方法中,您可以进行与窗口相关的初始化操作。 + *

*/ protected abstract void initialize(); /** - * 自定义启动方法 + * 自定义启动方法。 * * @param stage 自定义舞台 */ public abstract void run(Stage stage); /** - * 启动方法 + * 启动方法。 + *

+ * 该方法设置窗口的图标、标题、场景,并将窗口设置为模态对话框,然后显示窗口。 + *

*/ public void run() { stage.getIcons().add(getStageIcon()); 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 5c20c9b817acb345f3bb92203f0185ea791158ef..6fde0b8ae0c6ce6d7c8757826a4b39bec0c73167 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.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.jcnc.jnotepad.util.JsonUtil; -import org.jcnc.jnotepad.util.LogUtil; -import org.jcnc.jnotepad.util.PopUpUtil; import org.slf4j.Logger; import java.io.BufferedWriter; @@ -16,8 +16,13 @@ import java.nio.file.Path; import java.nio.file.Paths; /** - * 基本配置文件控制器抽象类 + * 抽象基本配置文件控制器类。 + *

+ * 该类是基本配置文件控制器的抽象实现,提供了加载、持久化配置文件以及其他相关方法。 + *

* + * @param 配置文件类型 + * * @author gewuyou */ public abstract class BaseConfigController implements ConfigController { @@ -27,48 +32,47 @@ public abstract class BaseConfigController implements ConfigController { protected static final String SYSTEM_CONFIG_DIR = "system"; protected T config; - Logger logger = LogUtil.getLogger(this.getClass()); + private final Logger logger = LogUtil.getLogger(getClass()); /** - * 获取配置文件Class类 + * 获取配置文件Class类。 * * @return 配置文件Class类 */ protected abstract Class getConfigClass(); /** - * 获取配置文件名称 + * 获取配置文件名称。 * * @return 配置文件名称 */ protected abstract String getConfigName(); /** - * 获取配置文件文件夹路径 + * 获取配置文件文件夹路径。 * * @return 配置文件夹路径 */ protected abstract String getConfigDir(); /** - * 获取配置文件类 + * 获取配置文件对象。 * - * @return 获取配置文件类 + * @return 配置文件对象 */ public T getConfig() { return config; } - /** - * 加载配置文件内容 + * 加载配置文件内容。 */ @Override public void loadConfig() { createConfigIfNotExists(); // 存在则加载 try { - logger.info("正在加载配置文件:{}...", getConfigClass()); + logger.info("正在加载配置文件: {}...", getConfigClass()); String configContent = Files.readString(getConfigPath()); config = JsonUtil.OBJECT_MAPPER.readValue(configContent, getConfigClass()); } catch (IOException e) { @@ -79,7 +83,7 @@ public abstract class BaseConfigController implements ConfigController { } /** - * 配置文件持久化 + * 配置文件持久化。 */ @Override public void writeConfig() { @@ -88,7 +92,7 @@ public abstract class BaseConfigController implements ConfigController { } /** - * 配置文件持久化 + * 配置文件持久化。 * * @param config 配置文件对象 */ @@ -106,7 +110,7 @@ public abstract class BaseConfigController implements ConfigController { } /** - * 如果配置文件不存在则创建 + * 如果配置文件不存在则创建。 */ @Override public void createConfigIfNotExists() { @@ -122,7 +126,7 @@ public abstract class BaseConfigController implements ConfigController { } /** - * 获取配置文件路径 + * 获取配置文件路径。 * * @return 配置文件路径 */ diff --git a/src/main/java/org/jcnc/jnotepad/api/core/controller/interfaces/ConfigController.java b/src/main/java/org/jcnc/jnotepad/api/core/controller/interfaces/ConfigController.java index e4b110a8b3d59b4c3e0f8286ce30873531a3af9a..6b17cc2fae43b341b33d1296e421e31616d382b9 100644 --- a/src/main/java/org/jcnc/jnotepad/api/core/controller/interfaces/ConfigController.java +++ b/src/main/java/org/jcnc/jnotepad/api/core/controller/interfaces/ConfigController.java @@ -4,22 +4,35 @@ import java.nio.file.Path; /** * 配置文件控制器接口 + *

+ * 该接口定义了配置文件相关的操作,包括加载、持久化、创建和获取配置文件路径等。 + *

* + * @param 配置文件类型 * @author gewuyou */ public interface ConfigController { /** * 加载配置文件内容 + *

+ * 从配置文件中加载配置信息。 + *

*/ void loadConfig(); /** * 配置文件持久化 + *

+ * 将配置信息持久化到配置文件中。 + *

*/ void writeConfig(); /** * 配置文件持久化 + *

+ * 将指定的配置对象持久化到配置文件中。 + *

* * @param config 配置文件对象 */ @@ -27,19 +40,28 @@ public interface ConfigController { /** * 如果配置文件不存在则创建 + *

+ * 在需要的情况下创建配置文件,如果配置文件已存在,则不执行任何操作。 + *

*/ void createConfigIfNotExists(); /** * 创建配置文件实体 + *

+ * 生成默认的配置文件实体对象,用于后续的序列化操作。 + *

* * @return 默认的配置文件实体 - * @apiNote 返回默认的配置文件实体用于序列化json + * @apiNote 返回默认的配置文件实体用于序列化 JSON 数据。 */ T generateDefaultConfig(); /** * 获取配置文件路径 + *

+ * 返回配置文件的路径。 + *

* * @return 配置文件路径 */ diff --git a/src/main/java/org/jcnc/jnotepad/api/core/manager/AbstractCacheManager.java b/src/main/java/org/jcnc/jnotepad/api/core/manager/AbstractCacheManager.java index 0bdfc32502a5e5543ad344e753371d7406a943cb..3a83765700326aa4086c14c59d4fff1587d50e21 100644 --- a/src/main/java/org/jcnc/jnotepad/api/core/manager/AbstractCacheManager.java +++ b/src/main/java/org/jcnc/jnotepad/api/core/manager/AbstractCacheManager.java @@ -7,6 +7,10 @@ import java.util.Map; /** * 抽象缓存管理类 * + *

+ * 该类是缓存管理的抽象基类,用于管理不同类型的缓存。 + *

+ * * @author gewuyou */ public abstract class AbstractCacheManager { @@ -41,7 +45,6 @@ public abstract class AbstractCacheManager { * * @return 缓存集合 */ - public Map getCaches() { return caches; } @@ -112,5 +115,4 @@ public abstract class AbstractCacheManager { } return cache.getCacheData(); } - } diff --git a/src/main/java/org/jcnc/jnotepad/api/core/views/menu/builder/ContextMenuBuilder.java b/src/main/java/org/jcnc/jnotepad/api/core/views/menu/builder/ContextMenuBuilder.java index fb08b392f613f66039ac59f1601243c07ab40779..49473143046d9ef528b7df55979bab988fd6afbd 100644 --- a/src/main/java/org/jcnc/jnotepad/api/core/views/menu/builder/ContextMenuBuilder.java +++ b/src/main/java/org/jcnc/jnotepad/api/core/views/menu/builder/ContextMenuBuilder.java @@ -7,20 +7,27 @@ import javafx.scene.control.MenuItem; /** * 上下文菜单建造者类 * + *

+ * 此类用于构建上下文菜单对象,可以添加菜单项、单选菜单项、复选菜单项以及分割线等。 + *

+ * * @author gewuyou + * */ public class ContextMenuBuilder extends AbstractMenuBuilder { private final ContextMenu contextMenu; + /** + * 构造上下文菜单建造者 + */ public ContextMenuBuilder() { contextMenu = new ContextMenu(); } - /** - * Builds and returns the ContextMenu object. + * 构建并返回上下文菜单对象。 * - * @return the built ContextMenu object + * @return 构建的上下文菜单对象 */ @Override public ContextMenu build() { @@ -28,9 +35,9 @@ public class ContextMenuBuilder extends AbstractMenuBuilder getItems() { 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 40ee03818e2ada13a25772f6c155398f3eb30697..789c6a7aacd2676202292939e5130ce917ff39b5 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 getItems() { @@ -37,9 +47,9 @@ public class MenuBuilder extends AbstractMenuBuilder { } /** - * Build menu + * 构建菜单 * - * @return menu + * @return 构建的菜单对象 */ @Override public Menu build() { 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 294de085709cb57d213ee1b008a1023cbc46a26e..7e61c8a983c4284476ff372299fc288066e82e30 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,12 +3,17 @@ 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; /** - * 子功能栏抽象类(用于构建一个基本的子功能栏) + * 子功能栏抽象类 + * + *

+ * 此抽象类用于构建一个基本的子功能栏,包括功能按钮的初始化和添加到功能栏中。 + *

* * @author gewuyou + * */ public abstract class AbstractFunctionChildrenBox { protected final FunctionBox functionBox; @@ -19,11 +24,17 @@ public abstract class AbstractFunctionChildrenBox { protected Menu menu = new Menu(); + /** + * 构造子功能栏抽象类 + */ protected AbstractFunctionChildrenBox() { functionBox = FunctionBox.getInstance(); menuBar = FunctionBox.getMenuBar(); } + /** + * 初始化子功能栏,包括将功能按钮添加到菜单栏中 + */ public void initialize() { menu.setGraphic(label); menuBar.getMenus().add(menu); 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 94925af7ebe5f1214f86710824b6e5f283da7b76..54d9e585a074ec091aa9e852d4783fe93be979a8 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,14 +8,18 @@ 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.utils.LogUtil; +import org.jcnc.jnotepad.ui.views.root.top.menubar.TopMenuBar; import org.slf4j.Logger; import java.util.Map; /** - * 抽象顶部菜单 + * 抽象顶部菜单类 + * + *

+ * 此抽象类用于创建顶部菜单,包括菜单项的注册和初始化。 + *

* * @author gewuyou */ @@ -56,7 +60,7 @@ public abstract class AbstractTopMenu { * @param menuItem 菜单项 * @param menuItemName 菜单项名称 * @param userData 用户数据,用来存放必要的数据,比如按钮菜单项名称 - * @param eventHandler 事件 + * @param eventHandler 事件处理器 */ public void registerMenuItem(MenuItem menuItem, String menuItemName, Object userData, EventHandler eventHandler) { getMenuItems().put(menuItemName, menuItem); @@ -70,9 +74,8 @@ public abstract class AbstractTopMenu { * @param checkMenuItem 检查菜单项 * @param menuItemName 菜单项名称 * @param userData 用户数据,用来存放必要的数据,比如按钮菜单项名称 - * @param listener 监听事件 + * @param listener 监听器 */ - public void registerMenuItem(CheckMenuItem checkMenuItem, String menuItemName, Object userData, ChangeListener listener) { getMenuItems().put(menuItemName, checkMenuItem); checkMenuItem.setUserData(userData); @@ -85,9 +88,8 @@ public abstract class AbstractTopMenu { * @param radioMenuItem 单选菜单项 * @param menuItemName 菜单项名称 * @param userData 用户数据,用来存放必要的数据 - * @param eventHandler 操作事件 + * @param eventHandler 事件处理器 */ - public void registerRadioMenuItem(Map radioMenuItems, RadioMenuItem radioMenuItem, String menuItemName, Object userData, EventHandler eventHandler) { radioMenuItems.put(menuItemName, radioMenuItem); radioMenuItem.setUserData(userData); @@ -101,7 +103,7 @@ public abstract class AbstractTopMenu { registerTopMenu(); logger.info("初始化菜单!"); Menu menu = getMenu(); - // 文件菜单 + // 菜单名称国际化 UiResourceBundle.bindStringProperty(menu.textProperty(), getMenuName()); // 初始化菜单项 initMenuItems(getMenuItems(), menu); @@ -113,7 +115,6 @@ public abstract class AbstractTopMenu { * @param menuItems 菜单项集合 * @param menu 菜单 */ - private void initMenuItems(Map menuItems, Menu menu) { logger.info("初始化菜单项!"); var itemMap = topMenuBar.getAllItemMap(); 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 0000000000000000000000000000000000000000..f8c0fd85bff4309098d793cabb90e3dc5f8585f3 --- /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 0000000000000000000000000000000000000000..e1291f82b2436765774f5693335fb4acc0ee2a43 --- /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/common/constants/AppConstants.java b/src/main/java/org/jcnc/jnotepad/app/common/constants/AppConstants.java similarity index 72% 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 64197199e39ee93bb9ff3af03f4b0872427e632b..ebc7d3257a80670fa0ac0e5fd0761430742bbc04 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; @@ -7,7 +7,15 @@ import java.util.regex.Pattern; /** * 应用常量类,用于存放应用程序中的常量值。 * - * @author 许轲 + *

+ * 该类包含了应用程序的一些常用常量,如版本号、作者、软件名称、初始宽度和高度、Logo地址等。 + *

+ * + *

+ * 还包括了与标签页相关的正则表达式模式,以及默认的属性和程序文件目录等常量。 + *

+ * + * @author luke */ public class AppConstants { /** @@ -37,6 +45,10 @@ public class AppConstants { /** * 默认标签页的正则 + * + *

+ * 用于匹配默认标签页名称的正则表达式,格式为"New File"后跟数字。 + *

*/ public static final Pattern TABNAME_PATTERN = Pattern.compile("^" + Pattern.quote(UiResourceBundle.getContent(TextConstants.NEW_FILE)) + "\\d+$"); @@ -49,11 +61,9 @@ public class AppConstants { */ public static final String PROGRAM_FILE_DIRECTORY = ".jnotepad"; - /** * 私有构造函数,防止该类被实例化。 */ private AppConstants() { } - } 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 47% 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 abb36efb75c9ee2bb50becd939d8fa2e7b24f6d1..44c5ccf2ed8e194e55ce08ad4bdbf4b0cd5283fd 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,25 +1,32 @@ -package org.jcnc.jnotepad.common.constants; +package org.jcnc.jnotepad.app.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; } 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 50% 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 8be04c00b670fd51742b7018c989f102c1aca656..a881d26a9afcf3f783dd92df4b4ab2acfd1d8c06 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,55 +1,171 @@ -package org.jcnc.jnotepad.common.constants; - +package org.jcnc.jnotepad.app.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"; 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 56% 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 12c46ea337721af6afacfd9ffd1b7243d0d156c9..7a88c5ad9d10e6386a40ac2d0a226b8cd31474bb 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,10 +1,13 @@ -package org.jcnc.jnotepad.common.manager; +package org.jcnc.jnotepad.app.common.manager; import org.jcnc.jnotepad.api.core.manager.AbstractCacheManager; /** - * 应用程序缓存管理类 - * + * 应用程序缓存管理类。 + *

+ * 该类用于管理应用程序中的缓存数据。 + *

+ * * @author gewuyou */ public class ApplicationCacheManager extends AbstractCacheManager { @@ -15,10 +18,20 @@ public class ApplicationCacheManager extends AbstractCacheManager { } + /** + * 获取 ApplicationCacheManager 的实例。 + * + * @return ApplicationCacheManager 实例 + */ public static ApplicationCacheManager getInstance() { return INSTANCE; } + /** + * 获取全局命名空间。 + * + * @return 全局命名空间字符串 + */ @Override public String getGlobalNamespace() { return "jcnc"; 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 86% 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 709e7c8e7a5461d3c8c45e85b545548c2405e17b..faf80556db1adc6bb0b2ef248cab04c10605f774 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,15 +1,16 @@ -package org.jcnc.jnotepad.common.manager; +package org.jcnc.jnotepad.app.common.manager; -import org.jcnc.jnotepad.util.LogUtil; +import org.jcnc.jnotepad.app.utils.LogUtil; import org.slf4j.Logger; 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() { 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 c2488af767ce2ece5fce75275b1e036eb65b3e65..c12acc96ad1eaac062375cd22348be1e10986e90 100644 --- a/src/main/java/org/jcnc/jnotepad/app/config/AppConfig.java +++ b/src/main/java/org/jcnc/jnotepad/app/config/AppConfig.java @@ -8,13 +8,18 @@ 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; /** * 应用程序配置文件 * + *

+ * 此类用于存储应用程序的配置信息,包括程序根路径、排除的文件夹和文件等。 + *

+ * * @author gewuyou + * */ public class AppConfig { /** @@ -37,6 +42,9 @@ public class AppConfig { @JsonIgnore private String lastRootPath; + /** + * 构造应用程序配置对象 + */ public AppConfig() { ignoreFolder = Set.of( new File(Paths.get(System.getProperty(DEFAULT_PROPERTY), PROGRAM_FILE_DIRECTORY, "system").toString()), @@ -45,26 +53,56 @@ public class AppConfig { ignoreFile = Collections.emptySet(); } + /** + * 获取程序根路径 + * + * @return 程序根路径 + */ public String getRootPath() { return Optional.ofNullable(rootPath).orElse(System.getProperty(DEFAULT_PROPERTY)); } + /** + * 设置程序根路径 + * + * @param rootPath 程序根路径 + */ public void setRootPath(String rootPath) { this.rootPath = rootPath; } + /** + * 获取上次的程序根路径 + * + * @return 上次的程序根路径 + */ public String getLastRootPath() { return lastRootPath; } + /** + * 设置上次的程序根路径 + * + * @param lastRootPath 上次的程序根路径 + */ public void setLastRootPath(String lastRootPath) { this.lastRootPath = lastRootPath; } + /** + * 获取排除的文件夹集合 + * + * @return 排除的文件夹集合 + */ public Set getIgnoreFolder() { return ignoreFolder; } + /** + * 获取排除的文件集合 + * + * @return 排除的文件集合 + */ public Set getIgnoreFile() { return ignoreFile; } 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 2b05c81c66bef1b4c5afffd1be24094cf59b9f8f..2b110b287b76ceb910e4de235f0d6b460a89475a 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; } 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 c828a335ead170a0391b73765287cc028fa37ac9..8a0564810d361a0eb72fb6e66a119e2317cdc66e 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; } 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 bf6245bd3798acd09b88965d8fe75f2a06e9c93a..fbda96f7c215dfcdf5357c8b32c03c1c1d7343b6 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) { 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 c3238b14256c9cb6c64f21bc373bcf2d3d2b25c6..3d7467d13166c6964e9aaf259ad09f3c9ddf2fe1 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.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; 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,13 +34,19 @@ 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; /** - * 应用程序管理类
- * 此类负责管理应用程序的生命周期等操作 + * 应用程序管理类 + * + *

+ * 此类负责管理应用程序的生命周期和操作。它包括初始化应用程序、执行默认操作、加载缓存、加载资源、迁移程序根文件夹、停止前操作等功能。 + *

+ * + *

+ * 该类是一个单例类,通过getInstance方法获取实例。 + *

* * @author gewuyou */ @@ -55,22 +61,27 @@ public class ApplicationManager { private Stage primaryStage; private Application application; - private ApplicationManager() { } + /** + * 获取ApplicationManager的单例实例 + * + * @return ApplicationManager的单例实例 + */ public static ApplicationManager getInstance() { return INSTANCE; } /** - * 初始化程序(Initializes the application) + * 初始化应用程序 * - * @apiNote - * @since 2023/9/20 17:26 + *

+ * 此方法用于初始化应用程序的各个组件,包括设置应用程序主题、初始化UI组件、初始化插件、初始化顶部菜单栏、初始化侧边工具栏、初始化下方状态栏、初始化标签页布局等。 + *

*/ public void initializeApp() { - // 设置应用程序主题 SetTheApplicationTheme + // 设置应用程序主题 Application.setUserAgentStylesheet(new PrimerLight().getUserAgentStylesheet()); // 初始化scene initScene(); @@ -92,6 +103,10 @@ public class ApplicationManager { /** * 执行默认操作 + * + *

+ * 此方法用于执行应用程序的默认操作,例如根据参数打开关联文件并创建文本区域,加载已打开的文件夹等。 + *

*/ public void executeDefaultAction() { // 使用加载关联文件并创建文本区域 @@ -124,6 +139,10 @@ public class ApplicationManager { /** * 加载缓存 + * + *

+ * 此方法用于加载应用程序的缓存。 + *

*/ public void loadAppCache() { // 加载缓存 @@ -132,6 +151,10 @@ public class ApplicationManager { /** * 加载资源 + * + *

+ * 此方法用于加载应用程序的资源,包括加载资源文件和绑定快捷键。 + *

*/ public void loadAppResources() { // 加载资源 @@ -142,6 +165,10 @@ public class ApplicationManager { /** * 迁移程序根文件夹 + * + *

+ * 此方法用于迁移应用程序的根文件夹,将根文件夹从之前的位置迁移到新的位置。 + *

*/ public void migrateFileRootFolder() { AppConfig config = AppConfigController.getInstance().getConfig(); @@ -174,7 +201,9 @@ public class ApplicationManager { /** * 停止前操作 * - * @apiNote 在停止程序之前会执行此操作 + *

+ * 在停止应用程序之前,执行一系列操作,包括刷新插件配置、销毁插件、保存已打开的文件标签页、将缓存写入本地、迁移程序根文件夹、关闭线程池等。 + *

*/ public void operationBeforeStopping() { PluginConfigController pluginConfigController = PluginConfigController.getInstance(); @@ -195,7 +224,7 @@ public class ApplicationManager { } /** - * 获取当前窗口。 + * 获取当前窗口 * * @return 当前窗口 */ @@ -206,8 +235,7 @@ public class ApplicationManager { /** * 获取当前窗口的场景 * - * @return javafx.scene.Scene - * @since 2023/9/20 18:21 + * @return 当前窗口的场景 */ public Scene getScene() { return scene; @@ -220,8 +248,9 @@ public class ApplicationManager { /** * 加载程序布局 * - * @apiNote - * @since 2023/9/20 17:25 + *

+ * 此方法用于加载应用程序的布局,包括根布局容器、底部根侧边栏垂直布局、主界面边界布局、顶部边界面板、右侧边栏垂直布局、根布局等组件。 + *

*/ public void initAppLayout() { // 加载根布局容器 @@ -237,9 +266,15 @@ public class ApplicationManager { RootRightSideBarVerticalBoxManager.getInstance().initRootRightSideBarVerticalBox(); // 初始化根布局 RootBorderPaneManager.getInstance().initRootBorderPane(); - } + /** + * 重启应用程序 + * + *

+ * 此方法用于重启当前的Java应用程序。 + *

+ */ public void restart() { try { // 获取当前Java应用程序的命令 @@ -250,14 +285,12 @@ public class ApplicationManager { ProcessBuilder builder = new ProcessBuilder(javaCommand, "-cp", System.getProperty("java.class.path"), mainClass); builder.start(); // 关闭当前应用程序 - // fixme 使用这个System.exit(0);,在开发环境,点击重启程序,停止前操作不生效 stop(); } catch (IOException e) { LogUtil.getLogger("正在重启当前应用程序".getClass()); } } - public Pane getRoot() { return root; } @@ -282,6 +315,13 @@ public class ApplicationManager { this.primaryStage = primaryStage; } + /** + * 停止应用程序 + * + *

+ * 此方法用于停止应用程序。 + *

+ */ public void stop() { Platform.exit(); } diff --git a/src/main/java/org/jcnc/jnotepad/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/util/ClipboardUtil.java rename to src/main/java/org/jcnc/jnotepad/app/utils/ClipboardUtil.java index 4e95321814086639a3debd6a7d1fa5901abb27cd..100153a2721bae1b8a030604a9d8d06a7b018100 100644 --- a/src/main/java/org/jcnc/jnotepad/util/ClipboardUtil.java +++ b/src/main/java/org/jcnc/jnotepad/app/utils/ClipboardUtil.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.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/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/util/EncodingDetector.java rename to src/main/java/org/jcnc/jnotepad/app/utils/EncodingDetector.java index 9511288ca533f296b083d17c5a620a1abe97a766..550a9a1b960445e052cddd16d89958e08bd2ee0e 100644 --- a/src/main/java/org/jcnc/jnotepad/util/EncodingDetector.java +++ b/src/main/java/org/jcnc/jnotepad/app/utils/EncodingDetector.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.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/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/util/FileUtil.java rename to src/main/java/org/jcnc/jnotepad/app/utils/FileUtil.java index f17542fb08fb6c6971bd47089f0e16497c5742a8..9b1fe76f1c3ecb0fe1125f7a60eb8100269ebf96 100644 --- a/src/main/java/org/jcnc/jnotepad/util/FileUtil.java +++ b/src/main/java/org/jcnc/jnotepad/app/utils/FileUtil.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.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/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/util/JsonUtil.java rename to src/main/java/org/jcnc/jnotepad/app/utils/JsonUtil.java index 7960f5ecb051c7c47dfbce96a41c1939f4da3a78..057073c20b9b23afd3d758c2ec700b26e8e435be 100644 --- a/src/main/java/org/jcnc/jnotepad/util/JsonUtil.java +++ b/src/main/java/org/jcnc/jnotepad/app/utils/JsonUtil.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.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/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/util/LogUtil.java rename to src/main/java/org/jcnc/jnotepad/app/utils/LogUtil.java index 34eb0d49253f7465f9551d7c6ea43b6ceb2d8597..918ed0238d5acafa26419571eb78f2632ccc7d87 100644 --- a/src/main/java/org/jcnc/jnotepad/util/LogUtil.java +++ b/src/main/java/org/jcnc/jnotepad/app/utils/LogUtil.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.util; +package org.jcnc.jnotepad.app.utils; 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/utils/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/utils/NotificationUtil.java index 3c5bf4f7be58177a0eaafea38ab2132dbb7e781d..14c0a59bd2ec4fec1a8ab5ebe9943e18577a7bf1 100644 --- a/src/main/java/org/jcnc/jnotepad/util/NotificationUtil.java +++ b/src/main/java/org/jcnc/jnotepad/app/utils/NotificationUtil.java @@ -1,9 +1,9 @@ -package org.jcnc.jnotepad.util; +package org.jcnc.jnotepad.app.utils; 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/utils/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/utils/PopUpUtil.java index d205ea8530610836ba70a1698d7aa6006b6c3274..c7794c204ffff59d414395904415291c2f7e1272 100644 --- a/src/main/java/org/jcnc/jnotepad/util/PopUpUtil.java +++ b/src/main/java/org/jcnc/jnotepad/app/utils/PopUpUtil.java @@ -1,8 +1,8 @@ -package org.jcnc.jnotepad.util; +package org.jcnc.jnotepad.app.utils; -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/utils/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/utils/ResourceUtil.java index ee7f7c0c3a858d361b18b53ee67a7f476cfa5ca1..1ab1b34ba7144b2f7e24c71059c8e04a689e8187 100644 --- a/src/main/java/org/jcnc/jnotepad/util/ResourceUtil.java +++ b/src/main/java/org/jcnc/jnotepad/app/utils/ResourceUtil.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.util; +package org.jcnc.jnotepad.app.utils; 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/utils/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/utils/TabUtil.java index b083441456c7f684336822f66909c10ca9030df1..d5307e03ed7c154e7fc129a3f17e28c277933177 100644 --- a/src/main/java/org/jcnc/jnotepad/util/TabUtil.java +++ b/src/main/java/org/jcnc/jnotepad/app/utils/TabUtil.java @@ -1,4 +1,4 @@ -package org.jcnc.jnotepad.util; +package org.jcnc.jnotepad.app.utils; 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.utils.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/utils/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/utils/UiUtil.java index 7cfe1c027adf6cc725d59316776b33589d0fb6c1..9e8764edd94f4eb8a93c47eae483ecba4d5532a0 100644 --- a/src/main/java/org/jcnc/jnotepad/util/UiUtil.java +++ b/src/main/java/org/jcnc/jnotepad/app/utils/UiUtil.java @@ -1,12 +1,12 @@ -package org.jcnc.jnotepad.util; +package org.jcnc.jnotepad.app.utils; 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/app/utils/aReadme.md b/src/main/java/org/jcnc/jnotepad/app/utils/aReadme.md new file mode 100644 index 0000000000000000000000000000000000000000..6a5900e36dc0ff82465e7dd6609348fb4d82f4e3 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/app/utils/aReadme.md @@ -0,0 +1 @@ +util 存放通用的实用工具代码。 diff --git a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/DebugBox.java b/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/DebugBox.java deleted file mode 100644 index f6d59e5459013e65f363a61780398abc08b80940..0000000000000000000000000000000000000000 --- a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/DebugBox.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.jcnc.jnotepad.component.module.vbox.components; - -import org.jcnc.jnotepad.component.module.TextCodeArea; - -/** - * Debug终端界面。 - * - * - * @author cccqyu - */ -public class DebugBox extends TextCodeArea { - public DebugBox() { - super(); - this.setEditable(false); - } - - public void setText(String text) { - this.appendText(text); - } -} 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 deleted file mode 100644 index a35cea1f4f733128f817b213c8416ab171e02f10..0000000000000000000000000000000000000000 --- a/src/main/java/org/jcnc/jnotepad/component/module/vbox/components/RunBox.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.jcnc.jnotepad.component.module.vbox.components; - -import org.jcnc.jnotepad.component.module.TextCodeArea; - -/** - * Run终端界面。 - * - * - * @author cccqyu - */ -public class RunBox extends TextCodeArea { - - - public RunBox() { - super(); - this.setEditable(false); - } - - public void setText(String text) { - this.appendText(text); - } - -} diff --git a/src/main/java/org/jcnc/jnotepad/controller/ResourceController.java b/src/main/java/org/jcnc/jnotepad/controller/ResourceController.java index 8ac779487b57a901663d108796da1f0de3f7d37e..a545c264942237d1735e8081d8bca5bf977b1123 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/aReadme.md b/src/main/java/org/jcnc/jnotepad/controller/aReadme.md new file mode 100644 index 0000000000000000000000000000000000000000..c72140731737835b4cde18f57c096d1001939120 --- /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/cache/CacheController.java b/src/main/java/org/jcnc/jnotepad/controller/cache/CacheController.java index 28cd7d037f9999d4c802ac49a7fdd0044d78d97a..830356baf173d2b3ee571f58f72ec82a622f217f 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.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.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 293432f52d1cab941cd6249d061c326fe5d21b3b..fb40bcb7d00c6b55797a9b02e179cfb1f9cc3f23 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 f65146de58a0d3b8091b90bcdae6970e4a4af8f2..bce610f72972d38dc43f89e425209699bef5167e 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 3bbb9bdf87b68aa8c7e4ea5c5c708cc3e92a5629..2d2b4bff4cb3a6503b83762963be86683e85ac57 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 6c9b0b43b828509b181400adea161b0c281a14d0..b1760a400e2dc414403d53cd5274353757fc93f4 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.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 b73c3f757e3e81127e9ae66781eede05ddd04637..e8b916876d4361ce49c90a4541f3668bce6f945c 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.utils.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.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 580ffcea3eb0772577f8b7c23c5f684103b8c9da..be3e5dfe41d37c755858f0f1871a50d6cbc5e49b 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.utils.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.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 a636d6497b500dae2631d368b7138ecc7e2fc557..b76f4d90df1eef11bed621f682d151269d6c312c 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.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 eb754d2301d39d57dcb2b6ecdc2e94d7ee618a8f..4b845668c9600784010224ad0766ddc67c2464ef 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.utils.LogUtil; +import org.jcnc.jnotepad.ui.views.manager.CenterTabPaneManager; -import static org.jcnc.jnotepad.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 a57f382064c5577181c6586f789a1f971288d5f6..d685a45647cc626a87346b518b728c7f66606549 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.utils.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 27066f3bae35947f30966edbbfaa246c84c71bef..b994a428f34ee4f840cc4c5cac3d2ed5ef3a4424 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 977131fe8845549949c1844f7b58e43d974db887..05be499a0bb3059eca69c598358279ca7dba29d3 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.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; -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 2548596cdd9e35175d590bf15d867b3dc2f6d0df..0150bc374d62400a4339e873a872c723e997a550 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 f5e60f5e5ce9cfe3fea9621789b1648895c963a4..a92166ff57d903556bf4d8d75eac96f4284e3199 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 715cd9e21c3756938b972608f97bee801374e82e..343c117d8c70c261ffdbb32e26bcbd03602fd478 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 3be9d5ac369a89a02399e34edc1ab30071278a28..4c79cd6401f74a762ed0c6108c71e3f069c82f31 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.utils.TabUtil.addNewFileTab; +import static org.jcnc.jnotepad.app.utils.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 865d271878058b5a3b37b508d9c335caa0a94d00..82ce17a68628cc08ce6f67a1e17a405302ae2305 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.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; +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 8011ca741643b5a7c4d42fab7432e0d1f2c82cfe..8fec9fc131e92500c2fe29320ae38867fac957d7 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.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; import java.io.File; 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 0000000000000000000000000000000000000000..e89957c39853e27060f46d437c202c20a0399116 --- /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/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 daab29f807bef4f35bb33997c532920f99d6fc36..c06e46a2e9adf8b01be349deaf270f0418aeed4b 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 70e3a5168f1dc6618e7a5598c200701ce70aca21..9714f36d713d0195b221c6b3feac5f7d8fc3d9cc 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.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.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/aReadme.md b/src/main/java/org/jcnc/jnotepad/model/aReadme.md new file mode 100644 index 0000000000000000000000000000000000000000..3bb67d3d5587153daba15629eea49762cd7d6e1b --- /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/model/entity/PluginDescriptor.java b/src/main/java/org/jcnc/jnotepad/model/entity/PluginDescriptor.java index b7e4f71d29b6bbd3fb9b1d929a28d1e9959dc074..c339d888a0cae50fda59ddbac0899ead76b712d8 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/ui/component/aReadme.md b/src/main/java/org/jcnc/jnotepad/ui/component/aReadme.md new file mode 100644 index 0000000000000000000000000000000000000000..dee97fc1ec7f1ee0bb7e7dcf72920ef0b2b5b0ab --- /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/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 3a36ae3f2318c96cb1a6204311ed1136aba18f75..c5ac2f47eea1ba4ca39484e8caae74cf0e3761f1 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 47% 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 8526fb45aabb7b9bf391be0412ef8018819743a7..934c3a654702c20fc6f82cc307dfff43ee6586ea 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,38 +1,63 @@ -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; /** - * 抽象边界面板类 + * 抽象边界面板类。 * - *

这个抽象类继承自JavaFX的BorderPane类,实现了BorderPaneAble接口,用于管理UI组件的布局。

+ *

这个抽象类继承自 JavaFX 的 BorderPane 类,实现了 BorderPaneAble 接口,用于管理 UI 组件的布局。

* * @author luke */ public abstract class AbstractBorderPane extends BorderPane implements BorderPaneAble { + /** + * 设置顶部组件。 + * + * @param node 顶部组件 + */ @Override public void setTopComponent(Node node) { setTop(node); } + /** + * 设置底部组件。 + * + * @param node 底部组件 + */ @Override public void setBottomComponent(Node node) { setBottom(node); } + /** + * 设置左侧组件。 + * + * @param node 左侧组件 + */ @Override public void setLeftComponent(Node node) { setLeft(node); } + /** + * 设置右侧组件。 + * + * @param node 右侧组件 + */ @Override public void setRightComponent(Node node) { setRight(node); } + /** + * 设置中心组件。 + * + * @param node 中心组件 + */ @Override public void setCenterComponent(Node node) { setCenter(node); 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 39% 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 8c724bbfa0f5871e62e0336a4194b79e3f0e2e38..93b7e056d0f792739f4803b62b80e132df64ac37 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,33 +1,53 @@ -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; /** - * 抽象水平盒子类 + * 抽象水平盒子类。 * - *

这个抽象类继承自JavaFX的HBox类,实现了HBoxAble接口,用于管理水平排列的UI组件。

+ *

这个抽象类继承自 JavaFX 的 HBox 类,实现了 HorizontalBoxAble 接口,用于管理水平排列的 UI 组件。

+ * + *

请注意,这个类只是一个抽象类,用于提供基本的水平盒子布局功能。您可以继承此类并添加自己的 UI 组件以构建更复杂的界面。

* * @author luke */ public abstract class AbstractHorizontalBox extends HBox implements HorizontalBoxAble { private final HBox hBox; + /** + * 创建一个新的 AbstractHorizontalBox 实例。 + */ public AbstractHorizontalBox() { hBox = new HBox(); } + /** + * 向水平盒子添加一个节点。 + * + * @param node 要添加的节点 + */ @Override public void addChild(Node node) { hBox.getChildren().add(node); } + /** + * 向水平盒子添加多个节点。 + * + * @param nodes 要添加的节点数组 + */ @Override public void addChild(Node... nodes) { hBox.getChildren().addAll(nodes); } + /** + * 获取水平盒子的实例。 + * + * @return 水平盒子实例 + */ @Override public HBox getHorizontalBox() { return hBox; 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 39% 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 c5c5973e544bb5417392971d5d6d57b3e612fa8d..a460894171cb411121e3c9424c3225623aa52ccb 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,34 +1,53 @@ -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; /** - * 抽象垂直盒子类 + * 抽象垂直盒子类。 * - *

这个抽象类继承自JavaFX的VBox类,实现了VBoxAble接口,用于管理垂直排列的UI组件。

+ *

这个抽象类继承自 JavaFX 的 VBox 类,实现了 VerticalBoxAble 接口,用于管理垂直排列的 UI 组件。

+ * + *

请注意,这个类只是一个抽象类,用于提供基本的垂直盒子布局功能。您可以继承此类并添加自己的 UI 组件以构建更复杂的界面。

* * @author luke */ public abstract class AbstractVerticalBox extends VBox implements VerticalBoxAble { - private final VBox vBox; + /** + * 创建一个新的 AbstractVerticalBox 实例。 + */ public AbstractVerticalBox() { vBox = new VBox(); } + /** + * 向垂直盒子添加一个节点。 + * + * @param node 要添加的节点 + */ @Override public void addChild(Node node) { vBox.getChildren().add(node); } + /** + * 向垂直盒子添加多个节点。 + * + * @param nodes 要添加的节点数组 + */ @Override public void addChild(Node... nodes) { vBox.getChildren().addAll(nodes); } + /** + * 获取垂直盒子的实例。 + * + * @return 垂直盒子实例 + */ @Override public VBox getVerticalBox() { return vBox; 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 84% 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 6b65b4b1d674260d32c131e60eba2900fe98da5c..534da1f57fdcce55a5eaa75d1133d0c4c53721b0 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; @@ -14,11 +14,18 @@ import javafx.util.Duration; * 自定义标题栏组件,用于自定义窗口标题栏的显示和交互。 * 该类提供了窗口图标、标题文本以及最小化、最大化和关闭按钮的功能。 * - * @author 许轲 + *

这个类允许用户创建自定义的窗口标题栏,包括图标、标题文本和按钮来最小化、最大化和关闭窗口。

+ * + *

通过使用 {@link #getInstance()} 方法获取单例实例,然后将其添加到窗口的顶部,即可创建自定义标题栏。

+ * + * @author luke */ public class CustomTitleBarBox extends HBox { private static CustomTitleBarBox instance; + /** + * 创建一个新的 CustomTitleBarBox 实例。 + */ public CustomTitleBarBox() { // 设置样式和布局 this.setAlignment(Pos.CENTER); @@ -65,9 +72,9 @@ public class CustomTitleBarBox extends HBox { } /** - * 获取标题栏的单例实例 + * 获取标题栏的单例实例。 * - * @return CustomTitleBar的单例实例 + * @return CustomTitleBarBox 的单例实例 */ public static CustomTitleBarBox getInstance() { if (instance == null) { @@ -77,9 +84,9 @@ public class CustomTitleBarBox extends HBox { } /** - * 使窗口可拖动 + * 使窗口可拖动。 * - * @param stage 要拖动的窗口的Stage对象 + * @param stage 要拖动的窗口的 Stage 对象 */ public void makeDraggable(Stage stage) { // 创建一个平移动画,设置持续时间和目标位置 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 82% 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 f4d6b7f2efd745bb04347d819a331f50b33fb271..1c9946f20236c24db9affcdd112f5d46adaf2c9b 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,12 +1,14 @@ -package org.jcnc.jnotepad.component.module.interfaces; +package org.jcnc.jnotepad.ui.component.module.interfaces; import javafx.scene.Node; /** - * 可设置BorderPane子组件的接口 + * 可设置BorderPane子组件的接口。 * *

该接口定义了设置BorderPane的各个子组件(上、下、左、右、中)的方法。

* + *

实现此接口的类可以设置BorderPane布局的各个子组件,以定制UI布局。

+ * * @author luke */ public interface BorderPaneAble { 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 57% 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 eaaf6c22e9104edd02e353dd0faaea6ba6474450..a8054c5d417a3213b58e038c3566d3a61f468d9c 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,11 +1,14 @@ -package org.jcnc.jnotepad.component.module.interfaces; +package org.jcnc.jnotepad.ui.component.module.interfaces; /** - * 控制器接口类 + * 控制器接口类。 * - *

该接口定义了控制器的方法,用于打开关联文件并创建TextArea。

+ *

该接口定义了控制器的方法,用于打开关联文件并创建 TextArea。

* - * @author 许轲 + *

实现此接口的类可以通过调用方法来打开关联文件并创建 TextArea,以执行与文件操作相关的控制逻辑。

+ * + * @param 原始参数的类型 + * @author luke */ public interface ControllerAble { 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 62% 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 318472394c3708282d9a23b274663f4cfe717152..cc2f4415d0808abe685395b723cf22dede031dbb 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,12 +1,14 @@ -package org.jcnc.jnotepad.component.module.interfaces; +package org.jcnc.jnotepad.ui.component.module.interfaces; import javafx.scene.Node; import javafx.scene.layout.HBox; /** - * 可添加子节点的水平布局接口 + * 可添加子节点的水平布局接口。 * - *

该接口定义了添加子节点和获取水平布局的方法。

+ *

该接口定义了向水平布局添加子节点和获取水平布局的方法。

+ * + *

实现此接口的类可以使用方法将一个或多个子节点添加到水平布局中,以自定义水平布局的UI组件。

* * @author luke */ 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 61% 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 87b5f10ab6cc94cf799257d6996f43ba215d5015..1808bb7ff300b83f499c43b88f0ab23a19bb8c27 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,12 +1,14 @@ -package org.jcnc.jnotepad.component.module.interfaces; +package org.jcnc.jnotepad.ui.component.module.interfaces; import javafx.scene.Node; import javafx.scene.layout.VBox; /** - * 可添加子节点的垂直布局接口 + * 可添加子节点的垂直布局接口。 * - *

该接口定义了添加子节点和获取垂直布局的方法。

+ *

该接口定义了向垂直布局添加子节点和获取垂直布局的方法。

+ * + *

实现此接口的类可以使用方法将一个或多个子节点添加到垂直布局中,以自定义垂直布局的UI组件。

* * @author luke */ 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 41% 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 955e4c631c05ea34b104dd956036cc8176cebb21..19eb2aea15cf2a722d74811ecd0f58a69790ab68 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,21 +1,33 @@ -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; /** - * 底部Run,Debug,Cmd面板 + * 底部运行、调试和命令终端面板。 * + *

这个类实现了一个包含运行信息、调试信息和命令终端的底部面板。它是TabPane的子类,用于将这三个组件以选项卡的形式显示在底部面板上。

* + *

可以通过调用getInstance方法获取单例实例。

+ * + * @see CmdTerminalBox + * @see RunBox + * @see DebugBox + * @see TabPane * @author cccqyu */ public class BuildPanel extends TabPane { private static BuildPanel instance = null; + /** + * 获取BuildPanel的单例实例。 + * + * @return BuildPanel的单例实例 + */ public static BuildPanel getInstance() { if (instance == null) { @@ -33,26 +45,41 @@ public class BuildPanel extends TabPane { runBox = new RunBox(); debugBox = new DebugBox(); - Tab runTab = new Tab("运行",runBox); + Tab runTab = new Tab("运行", runBox); runTab.setClosable(false); - Tab buildTab = new Tab("构建", debugBox); + Tab buildTab = new Tab("调试", debugBox); buildTab.setClosable(false); - Tab cmdTab = new Tab("终端",cmdTerminalBox); + Tab cmdTab = new Tab("命令终端", cmdTerminalBox); cmdTab.setClosable(false); - this.getTabs().addAll(runTab,buildTab,cmdTab); + this.getTabs().addAll(runTab, buildTab, cmdTab); } + /** + * 获取命令终端组件。 + * + * @return CmdTerminalBox对象 + */ public CmdTerminalBox getCmdTerminalBox() { return cmdTerminalBox; } + /** + * 获取运行信息组件。 + * + * @return RunBox对象 + */ public RunBox getRunBox() { return runBox; } - public DebugBox getBuildBox() { + /** + * 获取调试信息组件。 + * + * @return DebugBox对象 + */ + public DebugBox getDebugBox() { return debugBox; } } 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 90% 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 3d7951adff16651e0765c118fe03ba00bf5fd18c..97ed871ef8855648670b397927ff26721f54bd0a 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.utils.LogUtil; import java.io.*; import java.nio.charset.Charset; @@ -18,6 +18,12 @@ import java.nio.charset.Charset; /** * 命令行终端界面。 * + *

这个类实现了一个简单的命令行终端界面,用于显示命令输出并接受用户输入的命令。

+ * + *

通过调用构造函数来创建CmdTerminal对象。它包括了一个用于显示命令输出的文本区域和一个用于输入命令的文本框。

+ * + *

这个终端界面支持基本的命令执行,并将命令输出显示在文本区域中。

+ * * @author luke */ public class CmdTerminalBox extends VBox { @@ -64,7 +70,6 @@ public class CmdTerminalBox extends VBox { // 获取当前工作目录的文件夹路径 currentDirectory = System.getProperty("user.dir"); - // 创建并启动cmd进程,使用GBK字符编码 try { cmdProcess = new ProcessBuilder("cmd.exe") @@ -77,11 +82,9 @@ public class CmdTerminalBox extends VBox { LogUtil.getLogger(this.getClass()).info("已调用, {}", cmdProcess); } - // 延迟执行打印当前文件夹路径的语句 Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(0.5), event -> { appendTextToCmdOutput(currentDirectory + ">" + "\n"); - })); timeline.setCycleCount(1); timeline.play(); diff --git a/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/DebugBox.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/DebugBox.java new file mode 100644 index 0000000000000000000000000000000000000000..9be0a3f3c57672b28265436ce30757b8d8e945b6 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/DebugBox.java @@ -0,0 +1,31 @@ +package org.jcnc.jnotepad.ui.component.module.vbox.components; + +import org.jcnc.jnotepad.ui.component.module.TextCodeArea; + +/** + * 调试信息显示界面。 + * + *

这个类实现了一个用于显示调试信息的界面,它是TextCodeArea的子类,并在构造函数中将其设置为不可编辑状态。

+ * + *

调试信息可以通过调用setText方法将文本添加到界面中。

+ * + * @author cccqyu + */ +public class DebugBox extends TextCodeArea { + /** + * 创建DebugBox对象的构造函数。 + */ + public DebugBox() { + super(); + this.setEditable(false); + } + + /** + * 设置调试信息的文本内容。 + * + * @param text 要显示的调试信息文本 + */ + public void setText(String text) { + this.appendText(text); + } +} diff --git a/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/RunBox.java b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/RunBox.java new file mode 100644 index 0000000000000000000000000000000000000000..01fe3adc329c781d30b917ca8b4d4f3dd856f8d8 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/ui/component/module/vbox/components/RunBox.java @@ -0,0 +1,31 @@ +package org.jcnc.jnotepad.ui.component.module.vbox.components; + +import org.jcnc.jnotepad.ui.component.module.TextCodeArea; + +/** + * 运行信息显示界面。 + * + *

这个类实现了一个用于显示运行信息的界面,它是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); + } +} 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 ec4644059e7ba520c95e5158aca0396fbf27726d..b4011eb1f6b7338b4d86872ec39647519463ebdc 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.utils.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 b5cb9f3769de7fb30d6c3c5c24881cfcc8c24b35..b0ef87b73aad3046f5b7454f612f87128823e521 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 104f4b208c0aea7ede52bb9a649ddb86527c1f09..0958a10f15f02484208cecb8f94b74bee6488e05 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 954c7973a80db747f58b1a48f5ceaed7997bce0a..77f815f9adc67c18ecc7fa226bb330149d4aefbf 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 9e07fc12bbdab69f14abeeb107be0ced16b916be..7870fcf8c30fb4cc430d1218b869f76670f99aa9 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 c84b86f4941460529b1b904c8487e93b0ba9ca7e..c8152d3c70a5b63a88fa42ed0217de1ac308e249 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 f4bb4e44af44eb876f39263ef1845bd3190b6635..8a27e431b65d7b05e750b4a19ba75d4500d2f915 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 8432ca74fd10998996a933a9a9c20e48a8deafb1..b349004a2fb1200c413c115d09e0aa138ee66263 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 990c8499c5ddb907f7997314ccc3b73660d7b9fc..123464b3d9b727ea4a6fcd4b08fce0931311fd99 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 b6aa98bd57cfd49d9a40bd09e49562292c7f3048..6be26fcfc5d4530391010c067052ad45a429b03b 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.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; 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 22e022b0b6ee8e8c500129ee7b3108dc14268029..01b7ec7590f4a637cdc8fd3545e120952bd14e10 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 7735781b90b30cdf44b62bc00dbd7626cbab1ac1..a9bcba6e1732fe113d7449999d4fee47885d4212 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.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/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 7ac86add93c912a729ae5afa12172531946a90db..14b0dc69fcad326361fdbe84ea0f8ba108a6bd69 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.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.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 42a6e360f3a7a8b286f3ebb6171e5e0800995eab..4018f0a5d96c8adda1b91b425a1ae7d2bd382f87 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 fa39582fb8bdae9734215d2a11f26bebd482ef5e..7717116ada1b1d9b53b9c02eeae1eb74ea3acbeb 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.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.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/ui/views/aReadme.md b/src/main/java/org/jcnc/jnotepad/ui/views/aReadme.md new file mode 100644 index 0000000000000000000000000000000000000000..3c76b3bd226669051cd94140bd0bc747f2537d9f --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/ui/views/aReadme.md @@ -0,0 +1 @@ +view 存放与视图相关的代码。 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 4874082cf8e1d1bc54fa7d6326efd30f60983f4a..afb5bed2141d3a7907a4039fca7019bc660c37bc 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 199fb7344f8a8e18855209f4a725a4499297942d..4ba4cb20a3615b689f9c4283021385996e1b922f 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 d7e65849281d920b3ee24760cef40ba6b3fbd352..4d3cbc9ff9c2099db40ecef60399c3c7dcd793f6 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.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.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 bc2b104ef6bd286c6799c0a7dd0b6a93aa733dd7..f774190f0e117f35b176b0b4032bff6d25d5ae1e 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.utils.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 77% 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 79aa88ca0061886b9cc6124ae5f2c36731e77548..aff2c0148bfb553dc79152995f0b17bf91fea2ca 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; /** * 主界面边界布局 @@ -52,7 +52,7 @@ public class MainBorderPaneManager { BuildPanel buildPanel = BuildPanel.getInstance(); rootSplitPane.getItems().add(SplitPaneItemConstants.ROOT_SPLIT_PANE_TOP_SPLIT_PANE, topSplitPane); - rootSplitPane.getItems().add(SplitPaneItemConstants.ROOT_SPLIT_PANE_CMDBox, buildPanel); + rootSplitPane.getItems().add(SplitPaneItemConstants.TOP_SPLIT_PANE_CENTER_TAB_PANE, buildPanel); // 将总分割面板设置在布局中部 MAIN_BORDER_PANE.setCenterComponent(rootSplitPane); 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 005e4a2787b93545cba26d0409f9338b7406f758..82fa0c725e932e414063480262cbebf3bf3ab86b 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 107b4ab261442b216883471394c4b70e52d02fb0..0120c8da09be67dacb17acb5f0906fe1374f6d25 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 fc6b5bc526061f9718d5bb3f9a2617241c2b716a..5e0fb3786567b98607898a2caf662b6b9a63494f 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 e06a904a4f9b1581087817124f686d34b59ef618..a7cbe4badc2062cf0c8af559bbb805880e2e0801 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 0d8308c64c9cb74eb0a2009b1326291fbad77d60..f0921fe2b6213b0c945784ae3a4b717256e1d65e 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 cad62de1759e564db865465aabaf2e2b3b6fa09d..ba25342288f30bd2f9c11ec208ee8b2a3972b6b4 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.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; -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 03edb9f04729a69ffe91a94e145cd885725f4fbc..898e050b3f76032aec23dba869c5bc46bbfc69d9 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.utils.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 88b50b42ee2870fe517df5875f6c46e86105e43b..1fcc2ed94efbf000147c779cb65fa61f5873bb25 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 ade00955b82ceb72c31309dbe46e5d279ae52fda..1b785bb303eef6ce78b125c102bff30163526cbd 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 0fcd58e26789414c3933ffa4145f4f6a90c599bc..5d9826af60ea30e8786df240e862e0c7923c3ab6 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 d95e7c61fd8d8923ff7a97a291aebf41c5ec770b..6f1133a5265c45fea019d3eaec654acde9d37f5d 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 5bbef69ef986e793ca176287a65f4c757d63e602..88eb532c3f51876c167104a7c3d10a1b3dc25f27 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 02563bceab231252ba0d2c8440aef1b1d49fad11..f36bba42de13defcc8a9aaa22d290e08bcf74a6c 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.utils.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 f365523c4d62fbe7ccdc1ff262238c136f746fc9..6d1001f09c648d2e9a6df0fa83cb9bd04ff7892b 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.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.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 b242380a709a6d391a2d6d6a6b14ab701ce72507..c1909d3bf0a998f510ab6ee26a82c0460cff0cb1 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 a406e4a04df14b8a74e44beb9084f286e9a0fb61..268e441be5f16c2e26651bd59e2d49ad382d20cd 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 4b16b08b0af78a9e3af719a37c80eb724ffb2eed..69a189b64c819d216cb21e785ca6458e3d5598bb 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 6de4e90357becfd4e276cdbfb01723a9f38bb3c7..aed21d16d6da107b38a89118afa7e1ab3c2bf106 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 7cd3d7a72ac46f4a32275cdebd9129366b691ebc..2abc29d18cb6e5f42e8e0dbd8de95128ef259ac9 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 7d82c07bd5854f4d78696a4d22d4918b996f61d2..ca594df162ea2f124f05a53ac137ae0e875fb3c3 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 ceac3731e3967b1a612f6c84d21da956259df40a..0d290db952b7808af8ccb8d3a87986121f794e0d 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 7626a34100eb88714d720ea15b6e518bc865b10e..035f12907f7e81a2ecdfc544fe00f39683349d1f 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 98e0b6025ca3bd580d0af2a04d6003a98931989a..3fa2d47bd32bbf028cec6372a4f1fc825b4d2538 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 10ac5727c81a783935174356c4c0358a18e6fcb0..f3291bcd74b6ae6356d1469c7b0bb07842017ec2 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 88% 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 91d891c28c87b6af964c2e8d89767e409b5ef8ca..fc69cf2e048b77363ea026ca290b150de6561aec 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.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; +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; /** * 运行菜单 @@ -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(), "待开发"); }); 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 e4d262d0d2f6f4ead2d99d654fb0b472d497018c..c7d7e5809ef36ce382b26465d75950831af41869 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.utils.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.*; /** * 设置菜单