From 14353f8a022402a6bcae2f986d91fffe3e0d9927 Mon Sep 17 00:00:00 2001 From: gewuyou <1063891901@qq.com> Date: Tue, 26 Sep 2023 23:09:09 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=20=E5=88=9B=E5=BB=BA=E5=8D=95=E4=BE=8B?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=AE=A1=E7=90=86=E7=B1=BB=EF=BC=8C=E5=B0=86?= =?UTF-8?q?=E5=8D=95=E4=BE=8B=E7=BB=84=E4=BB=B6=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E4=B8=8E=E5=8D=95=E4=BE=8B=E7=BB=84=E4=BB=B6=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/manager/ApplicationManager.java | 21 +++++---- .../views/manager/MainBorderPaneManager.java | 28 +++++++++++ .../views/manager/RootBorderPaneManager.java | 47 +++++++++++++++++++ .../RootRightSideBarVerticalBoxManager.java | 29 ++++++++++++ .../manager/RootTopBorderPaneManager.java | 33 +++++++++++++ .../jnotepad/views/root/RootBorderPane.java | 28 +---------- .../root/center/main/MainBorderPane.java | 8 +--- .../right/RootRightSideBarVerticalBox.java | 14 ++---- .../views/root/top/RootTopBorderPane.java | 13 +---- 9 files changed, 158 insertions(+), 63 deletions(-) create mode 100644 src/main/java/org/jcnc/jnotepad/views/manager/MainBorderPaneManager.java create mode 100644 src/main/java/org/jcnc/jnotepad/views/manager/RootBorderPaneManager.java create mode 100644 src/main/java/org/jcnc/jnotepad/views/manager/RootRightSideBarVerticalBoxManager.java create mode 100644 src/main/java/org/jcnc/jnotepad/views/manager/RootTopBorderPaneManager.java 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 52a64a4..a72533f 100644 --- a/src/main/java/org/jcnc/jnotepad/app/manager/ApplicationManager.java +++ b/src/main/java/org/jcnc/jnotepad/app/manager/ApplicationManager.java @@ -15,10 +15,8 @@ import org.jcnc.jnotepad.controller.ResourceController; import org.jcnc.jnotepad.controller.config.PluginConfigController; import org.jcnc.jnotepad.controller.manager.Controller; import org.jcnc.jnotepad.plugin.manager.PluginManager; -import org.jcnc.jnotepad.util.LogUtil; import org.jcnc.jnotepad.util.UiUtil; import org.jcnc.jnotepad.views.manager.*; -import org.slf4j.Logger; import java.util.List; import java.util.Objects; @@ -32,7 +30,6 @@ import java.util.concurrent.ExecutorService; * @author gewuyou */ public class ApplicationManager { - Logger logger = LogUtil.getLogger(this.getClass()); private static final ApplicationManager INSTANCE = new ApplicationManager(); /** * 线程池 @@ -72,8 +69,8 @@ public class ApplicationManager { BottomStatusBoxManager.getInstance().initStatusBox(); // 初始标签页布局组件 CenterTabPaneManager.getInstance().initCenterTabPane(); - // 初始化ui组件 - initUiComponents(); + // 初始化应用布局 + initAppLayout(); // 初始化primaryStage initPrimaryStage(); } @@ -152,17 +149,25 @@ public class ApplicationManager { } /** - * 加载ui组件 + * 加载程序布局 * * @apiNote * @since 2023/9/20 17:25 */ - public void initUiComponents() { - // 加载组件 + public void initAppLayout() { + // 加载根布局容器 RootManager rootManager = RootManager.getInstance(scene); rootManager.initScreen(scene); // 初始化底部根侧边栏垂直布局 RootBottomSideBarVerticalBoxManager.getInstance().initSidebarVerticalBox(); + // 初始化主界面边界布局 + MainBorderPaneManager.getInstance().initMainBorderPane(); + // 初始化右侧边栏垂直布局 + RootRightSideBarVerticalBoxManager.getInstance().initRootRightSideBarVerticalBox(); + // 初始化顶部菜单栏 + TopMenuBarManager.getInstance().initTopMenuBar(); + // 初始化根布局 + RootBorderPaneManager.getInstance().initRootBorderPane(); } public Pane getRoot() { diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/MainBorderPaneManager.java b/src/main/java/org/jcnc/jnotepad/views/manager/MainBorderPaneManager.java new file mode 100644 index 0000000..a527423 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/views/manager/MainBorderPaneManager.java @@ -0,0 +1,28 @@ +package org.jcnc.jnotepad.views.manager; + +import org.jcnc.jnotepad.views.root.center.main.MainBorderPane; +import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTabPane; + +/** + * 主界面边界布局 + * + * @author gewuyou + */ +public class MainBorderPaneManager { + private static final MainBorderPaneManager INSTANCE = new MainBorderPaneManager(); + + private static final MainBorderPane MAIN_BORDER_PANE = MainBorderPane.getInstance(); + + private MainBorderPaneManager() { + + } + + public static MainBorderPaneManager getInstance() { + return INSTANCE; + } + + public void initMainBorderPane() { + // 文本框 + MAIN_BORDER_PANE.setCenterComponent(CenterTabPane.getInstance()); + } +} diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/RootBorderPaneManager.java b/src/main/java/org/jcnc/jnotepad/views/manager/RootBorderPaneManager.java new file mode 100644 index 0000000..6e18f29 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/views/manager/RootBorderPaneManager.java @@ -0,0 +1,47 @@ +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.ToolHorizontalBox; +import org.jcnc.jnotepad.views.root.right.RootRightSideBarVerticalBox; +import org.jcnc.jnotepad.views.root.top.RootTopBorderPane; + +/** + * 应用程序的根布局管理类 + * + * @author gewuyou + */ +public class RootBorderPaneManager { + + private static final RootBorderPaneManager INSTANCE = new RootBorderPaneManager(); + + private final RootBorderPane rootBorderPane = RootBorderPane.getInstance(); + + private RootBorderPaneManager() { + + } + + public static RootBorderPaneManager getInstance() { + return INSTANCE; + } + + /** + * 初始化 RootBorderPane。 + * + *

设置主界面(MainBorderPane)、工具栏(ToolHBox)、侧边栏(RootRightSideBarVBox)、 + * 菜单栏(RootTopBorderPane)以及底部边栏(RootBottomSideBarVBox)等主要组件。

+ */ + public void initRootBorderPane() { + // 中间,用于显示主界面 + rootBorderPane.setCenterComponent(MainBorderPane.getInstance()); + // 主界面的左边,工具栏 + rootBorderPane.setLeftComponent(ToolHorizontalBox.getInstance()); + // 主界面的右边,侧边栏 + rootBorderPane.setRightComponent(RootRightSideBarVerticalBox.getInstance()); + // 主界面的上面,菜单栏 + rootBorderPane.setTopComponent(RootTopBorderPane.getInstance()); + // 主界面的下面,底部边栏 + rootBorderPane.setBottomComponent(RootBottomSideBarVerticalBox.getInstance()); + } +} diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/RootRightSideBarVerticalBoxManager.java b/src/main/java/org/jcnc/jnotepad/views/manager/RootRightSideBarVerticalBoxManager.java new file mode 100644 index 0000000..e06a904 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/views/manager/RootRightSideBarVerticalBoxManager.java @@ -0,0 +1,29 @@ +package org.jcnc.jnotepad.views.manager; + +import org.jcnc.jnotepad.views.root.right.RootRightSideBarVerticalBox; + +/** + * 右侧边栏的垂直布局容器管理类 + * + * @author gewuyou + */ +public class RootRightSideBarVerticalBoxManager { + private static final RootRightSideBarVerticalBoxManager INSTANCE = new RootRightSideBarVerticalBoxManager(); + + private final RootRightSideBarVerticalBox rootRightSideBarVerticalBox = RootRightSideBarVerticalBox.getInstance(); + + private RootRightSideBarVerticalBoxManager() { + } + + public static RootRightSideBarVerticalBoxManager getInstance() { + return INSTANCE; + } + + /** + * 初始化右侧边栏的垂直布局。 + */ + public void initRootRightSideBarVerticalBox() { + // 在此添加右侧边栏布局和内容的初始化代码 + } + +} diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/RootTopBorderPaneManager.java b/src/main/java/org/jcnc/jnotepad/views/manager/RootTopBorderPaneManager.java new file mode 100644 index 0000000..5eb6591 --- /dev/null +++ b/src/main/java/org/jcnc/jnotepad/views/manager/RootTopBorderPaneManager.java @@ -0,0 +1,33 @@ +package org.jcnc.jnotepad.views.manager; + +import org.jcnc.jnotepad.views.root.top.RootTopBorderPane; +import org.jcnc.jnotepad.views.root.top.menu.TopMenuBar; + +/** + * 顶部边界面板管理类 + * + * @author gewuyou + */ +public class RootTopBorderPaneManager { + private static final RootTopBorderPaneManager INSTANCE = new RootTopBorderPaneManager(); + + private final RootTopBorderPane rootTopBorderPane = RootTopBorderPane.getInstance(); + + private RootTopBorderPaneManager() { + + } + + public static RootTopBorderPaneManager getInstance() { + return INSTANCE; + } + + /** + * 初始化 RootTopBorderPane。 + * + *

在顶部区域添加了 TopMenuBar 的单例实例。

+ */ + public void initRootBorderPane() { + // 在顶部区域添加菜单栏 + rootTopBorderPane.setTopComponent(TopMenuBar.getInstance()); + } +} diff --git a/src/main/java/org/jcnc/jnotepad/views/root/RootBorderPane.java b/src/main/java/org/jcnc/jnotepad/views/root/RootBorderPane.java index bb190dc..34a9b76 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/RootBorderPane.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/RootBorderPane.java @@ -1,11 +1,6 @@ package org.jcnc.jnotepad.views.root; import org.jcnc.jnotepad.ui.module.AbstractBorderPane; -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.ToolHorizontalBox; -import org.jcnc.jnotepad.views.root.right.RootRightSideBarVerticalBox; -import org.jcnc.jnotepad.views.root.top.RootTopBorderPane; /** * RootBorderPane 表示 JNotepad 应用程序的根布局。 @@ -21,7 +16,7 @@ public class RootBorderPane extends AbstractBorderPane { private static final RootBorderPane INSTANCE = new RootBorderPane(); private RootBorderPane() { - initRootBorderPane(); + } /** @@ -32,25 +27,4 @@ public class RootBorderPane extends AbstractBorderPane { public static RootBorderPane getInstance() { return INSTANCE; } - - /** - * 初始化 RootBorderPane。 - * - *

设置主界面(MainBorderPane)、工具栏(ToolHBox)、侧边栏(RootRightSideBarVBox)、 - * 菜单栏(RootTopBorderPane)以及底部边栏(RootBottomSideBarVBox)等主要组件。

- */ - private void initRootBorderPane() { - // 中间,用于显示主界面 - setCenterComponent(MainBorderPane.getInstance()); - // 主界面的左边,工具栏 - setLeftComponent(ToolHorizontalBox.getInstance()); - // 主界面的右边,侧边栏 - setRightComponent(RootRightSideBarVerticalBox.getInstance()); - // 主界面的上面,菜单栏 - setTopComponent(RootTopBorderPane.getInstance()); - // 主界面的下面,底部边栏 - setBottomComponent(RootBottomSideBarVerticalBox.getInstance()); - } - - } diff --git a/src/main/java/org/jcnc/jnotepad/views/root/center/main/MainBorderPane.java b/src/main/java/org/jcnc/jnotepad/views/root/center/main/MainBorderPane.java index 95e9e27..936ce04 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/center/main/MainBorderPane.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/center/main/MainBorderPane.java @@ -1,7 +1,6 @@ package org.jcnc.jnotepad.views.root.center.main; import org.jcnc.jnotepad.ui.module.AbstractBorderPane; -import org.jcnc.jnotepad.views.root.center.main.center.tab.CenterTabPane; /** * 主界面边界布局 @@ -15,7 +14,7 @@ public class MainBorderPane extends AbstractBorderPane { private static final MainBorderPane INSTANCE = new MainBorderPane(); private MainBorderPane() { - initRootBorderPane(); + } /** @@ -27,9 +26,4 @@ public class MainBorderPane extends AbstractBorderPane { return INSTANCE; } - private void initRootBorderPane() { - // 文本框 - setCenterComponent(CenterTabPane.getInstance()); - } - } diff --git a/src/main/java/org/jcnc/jnotepad/views/root/right/RootRightSideBarVerticalBox.java b/src/main/java/org/jcnc/jnotepad/views/root/right/RootRightSideBarVerticalBox.java index f5236ed..9d69dbf 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/right/RootRightSideBarVerticalBox.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/right/RootRightSideBarVerticalBox.java @@ -12,27 +12,21 @@ import org.jcnc.jnotepad.ui.module.AbstractVerticalBox; public class RootRightSideBarVerticalBox extends AbstractVerticalBox { /** - * 唯一的 RootRightSideBarVerticalBox 实例,使用单例模式 + * 唯一的 RootRightSideBarVerticalBoxManager 实例,使用单例模式 */ private static final RootRightSideBarVerticalBox INSTANCE = new RootRightSideBarVerticalBox(); private RootRightSideBarVerticalBox() { - initSidebarVerticalBox(); + } /** - * 获取 RootRightSideBarVerticalBox 的唯一实例。 + * 获取 RootRightSideBarVerticalBoxManager 的唯一实例。 * - * @return RootRightSideBarVerticalBox 的实例 + * @return RootRightSideBarVerticalBoxManager 的实例 */ public static RootRightSideBarVerticalBox getInstance() { return INSTANCE; } - /** - * 初始化右侧边栏的垂直布局。 - */ - private void initSidebarVerticalBox() { - // 在此添加右侧边栏布局和内容的初始化代码 - } } diff --git a/src/main/java/org/jcnc/jnotepad/views/root/top/RootTopBorderPane.java b/src/main/java/org/jcnc/jnotepad/views/root/top/RootTopBorderPane.java index 064daa9..3972878 100644 --- a/src/main/java/org/jcnc/jnotepad/views/root/top/RootTopBorderPane.java +++ b/src/main/java/org/jcnc/jnotepad/views/root/top/RootTopBorderPane.java @@ -1,7 +1,6 @@ package org.jcnc.jnotepad.views.root.top; import org.jcnc.jnotepad.ui.module.AbstractBorderPane; -import org.jcnc.jnotepad.views.root.top.menu.TopMenuBar; /** * RootTopBorderPane 类表示 JNotepad 应用程序的顶部边界面板。 @@ -17,7 +16,7 @@ public class RootTopBorderPane extends AbstractBorderPane { private static final RootTopBorderPane INSTANCE = new RootTopBorderPane(); private RootTopBorderPane() { - initRootBorderPane(); + } /** @@ -29,13 +28,5 @@ public class RootTopBorderPane extends AbstractBorderPane { return INSTANCE; } - /** - * 初始化 RootTopBorderPane。 - * - *

在顶部区域添加了 TopMenuBar 的单例实例。

- */ - private void initRootBorderPane() { - // 在顶部区域添加菜单栏 - setTopComponent(TopMenuBar.getInstance()); - } + }