From 29c3a59b3497742abdf17baaa8baddae258f6d53 Mon Sep 17 00:00:00 2001 From: gewuyou <1063891901@qq.com> Date: Sat, 2 Sep 2023 00:06:59 +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=E7=A7=BB=E9=99=A4Ui=E5=8D=95=E4=BE=8B?= =?UTF-8?q?=E4=BA=8EUi=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/module-info.java | 5 - src/main/java/org/jcnc/jnotepad/LunchApp.java | 9 +- .../config/AppConfigController.java | 1 + .../event/handler/menuBar/NewFile.java | 9 +- .../event/handler/menuBar/OpenFile.java | 4 +- .../event/handler/menuBar/RenameFile.java | 5 +- .../event/handler/menuBar/SaveFile.java | 8 +- .../controller/event/handler/tool/SetBtn.java | 4 +- .../jcnc/jnotepad/root/RootBorderPane.java | 9 +- .../root/bottom/RootBottomSideBarVBox.java | 8 +- .../root/center/main/MainBorderPane.java | 8 +- .../center/main/center/tab/JNotepadTab.java | 1 + .../main/center/tab/JNotepadTabPane.java | 9 +- .../root/right/RootRightSideBarVBox.java | 8 +- .../jnotepad/root/top/RootTopBorderPane.java | 8 +- .../org/jcnc/jnotepad/tool/SingletonUtil.java | 2 +- .../java/org/jcnc/jnotepad/tool/UiUtil.java | 97 +------------------ .../factory/impl/TextFileChooserFactory.java | 4 +- .../ui/module/LineNumberTextArea.java | 11 ++- 19 files changed, 62 insertions(+), 148 deletions(-) diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 3843aa4..dbfe06e 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -23,11 +23,6 @@ module org.jcnc.jnotepad { exports org.jcnc.jnotepad.controller.event.handler.menuBar; exports org.jcnc.jnotepad.tool; exports org.jcnc.jnotepad.Interface; - exports org.jcnc.jnotepad.ui.module; - exports org.jcnc.jnotepad.ui.setStage; - exports org.jcnc.jnotepad.root.center.main.center.tab; - exports org.jcnc.jnotepad.root.top.menu; - exports org.jcnc.jnotepad.view.manager; opens org.jcnc.jnotepad.app.config; exports org.jcnc.jnotepad.root.center.main.bottom.status; diff --git a/src/main/java/org/jcnc/jnotepad/LunchApp.java b/src/main/java/org/jcnc/jnotepad/LunchApp.java index 393ae10..179db04 100644 --- a/src/main/java/org/jcnc/jnotepad/LunchApp.java +++ b/src/main/java/org/jcnc/jnotepad/LunchApp.java @@ -27,10 +27,6 @@ import java.util.concurrent.ExecutorService; * @author 许轲 */ public class LunchApp extends Application { - /** - * 线程池 - */ - private final ExecutorService threadPool = ThreadPoolManager.getThreadPool(); private static final Pane ROOT = new Pane(); private static final Scene SCENE; @@ -40,6 +36,10 @@ public class LunchApp extends Application { SCENE = new Scene(ROOT, width, length); } + /** + * 线程池 + */ + private final ExecutorService threadPool = ThreadPoolManager.getThreadPool(); public static void main(String[] args) { launch(args); @@ -48,6 +48,7 @@ public class LunchApp extends Application { public static Window getWindow() { return SCENE.getWindow(); } + @Override public void start(Stage primaryStage) { Application.setUserAgentStylesheet(new PrimerLight().getUserAgentStylesheet()); 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 b9e11bc..ef0148e 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java +++ b/src/main/java/org/jcnc/jnotepad/controller/config/AppConfigController.java @@ -30,6 +30,7 @@ public class AppConfigController { private static final AppConfigController INSTANCE = new AppConfigController(); private AppConfig appConfig; private String dir; + private AppConfigController() { setDir(Paths.get(System.getProperty("user.home"), ".jnotepad").toString()); loadConfig(); diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/NewFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/NewFile.java index a81cbc5..26c2a83 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/NewFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/NewFile.java @@ -4,8 +4,9 @@ import javafx.event.ActionEvent; import javafx.event.EventHandler; import org.jcnc.jnotepad.app.i18n.UiResourceBundle; import org.jcnc.jnotepad.constants.TextConstants; +import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox; import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; -import org.jcnc.jnotepad.tool.UiUtil; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; import org.jcnc.jnotepad.ui.module.LineNumberTextArea; import org.jcnc.jnotepad.view.manager.ViewManager; @@ -33,7 +34,7 @@ public class NewFile implements EventHandler { // 创建一个新的文本编辑区 LineNumberTextArea textArea = new LineNumberTextArea(); // TODO: refactor:统一TextArea新建、绑定监听器入口 - ViewManager viewManager = UiUtil.getViewManager(); + ViewManager viewManager = ViewManager.getInstance(); // 创建标签页 JNotepadTab jNotepadTab = new JNotepadTab( UiResourceBundle.getContent(TextConstants.NEW_FILE) @@ -42,8 +43,8 @@ public class NewFile implements EventHandler { // 设置当前标签页与本地文件无关联 jNotepadTab.setRelevance(false); // 将Tab页添加到TabPane中 - UiUtil.getJnotepadTabPane().addNewTab(jNotepadTab); + JNotepadTabPane.getInstance().addNewTab(jNotepadTab); // 更新编码信息 - UiUtil.getStatusBox().updateEncodingLabel(); + JNotepadStatusBox.getInstance().updateEncodingLabel(); } } \ No newline at end of file diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/OpenFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/OpenFile.java index d69b0be..f73dc37 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/OpenFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/OpenFile.java @@ -84,7 +84,7 @@ public class OpenFile implements EventHandler { */ public void openFile(File file) { // 获取标签页集合 - JNotepadTabPane jnotepadTabPane = UiUtil.getJnotepadTabPane(); + JNotepadTabPane jnotepadTabPane = JNotepadTabPane.getInstance(); // 遍历标签页,查找匹配的标签页 for (Tab tab : jnotepadTabPane.getTabs()) { // 获取绑定的文件 @@ -124,7 +124,7 @@ public class OpenFile implements EventHandler { // 设置当前标签页关联本地文件 tab.setRelevance(true); tab.setUserData(file); - UiUtil.getJnotepadTabPane().addNewTab(tab); + JNotepadTabPane.getInstance().addNewTab(tab); }); } catch (IOException ignored) { LogUtil.getLogger(this.getClass()).info("已忽视IO异常!"); diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/RenameFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/RenameFile.java index c152b44..247e7a6 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/RenameFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/RenameFile.java @@ -8,6 +8,7 @@ import javafx.stage.FileChooser; import org.jcnc.jnotepad.app.i18n.UiResourceBundle; import org.jcnc.jnotepad.constants.TextConstants; import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; import org.jcnc.jnotepad.tool.LogUtil; import org.jcnc.jnotepad.tool.UiUtil; import org.jcnc.jnotepad.ui.dialog.factory.impl.TextFileChooserFactory; @@ -26,7 +27,7 @@ public class RenameFile implements EventHandler { @Override public void handle(ActionEvent actionEvent) { // 获取当前标签页 - JNotepadTab jnotepadtab = UiUtil.getJnotepadtab(); + JNotepadTab jnotepadtab = JNotepadTabPane.getInstance().getSelected(); if (jnotepadtab == null || jnotepadtab.getText().isEmpty()) { return; } @@ -90,7 +91,7 @@ public class RenameFile implements EventHandler { // 获取原始文件对象 File file = (File) jnotepadtab.getUserData(); // 获取应用窗口并绑定 - File newFile = TextFileChooserFactory.getInstance() + File newFile = TextFileChooserFactory.getInstance() .createFileChooser( UiResourceBundle.getContent(TextConstants.RENAME), jnotepadtab.getText(), diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/SaveFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/SaveFile.java index 5eff265..d21d170 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/SaveFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menuBar/SaveFile.java @@ -7,6 +7,8 @@ import org.jcnc.jnotepad.app.i18n.UiResourceBundle; import org.jcnc.jnotepad.constants.TextConstants; import org.jcnc.jnotepad.controller.i18n.LocalizationController; import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; +import org.jcnc.jnotepad.root.top.menu.JNotepadMenuBar; import org.jcnc.jnotepad.tool.LogUtil; import org.jcnc.jnotepad.tool.SingletonUtil; import org.jcnc.jnotepad.tool.UiUtil; @@ -34,7 +36,7 @@ public class SaveFile implements EventHandler { @Override public void handle(ActionEvent actionEvent) { // 获取当前tab页 - JNotepadTab selectedTab = UiUtil.getJnotepadtab(); + JNotepadTab selectedTab = JNotepadTabPane.getInstance().getSelected(); if (selectedTab == null) { return; } @@ -50,7 +52,7 @@ public class SaveFile implements EventHandler { if (CONFIG_NAME.equals(selectedTab.getText())) { // 重新加载语言包和快捷键 SingletonUtil.getAppConfigController().loadConfig(); - UiUtil.getMenuBar().initShortcutKeys(); + JNotepadMenuBar.getInstance().initShortcutKeys(); LocalizationController.initLocal(); logger.info("已刷新语言包!"); logger.info("已刷新快捷键!"); @@ -66,7 +68,7 @@ public class SaveFile implements EventHandler { * @see LogUtil */ protected void saveTab(Class currentClass) { - JNotepadTab selectedTab = UiUtil.getJnotepadtab(); + JNotepadTab selectedTab = JNotepadTabPane.getInstance().getSelected(); if (selectedTab == null) { return; } diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/tool/SetBtn.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/tool/SetBtn.java index f46891b..4d36719 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/tool/SetBtn.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/tool/SetBtn.java @@ -2,7 +2,7 @@ package org.jcnc.jnotepad.controller.event.handler.tool; import javafx.event.ActionEvent; import javafx.event.EventHandler; -import org.jcnc.jnotepad.tool.UiUtil; +import org.jcnc.jnotepad.ui.setStage.SetStage; /** @@ -21,7 +21,7 @@ public class SetBtn implements EventHandler { */ @Override public void handle(ActionEvent event) { - UiUtil.getSetStage().openSetStage(); + SetStage.getInstance().openSetStage(); } diff --git a/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java b/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java index 62ea0ee..1cb4fb9 100644 --- a/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java +++ b/src/main/java/org/jcnc/jnotepad/root/RootBorderPane.java @@ -9,6 +9,7 @@ import org.jcnc.jnotepad.ui.module.AbstractBorderPane; /** * 根舞台下的Root主布局 + * * @author 许轲 */ public class RootBorderPane extends AbstractBorderPane { @@ -19,6 +20,10 @@ public class RootBorderPane extends AbstractBorderPane { initRootBorderPane(); } + public static RootBorderPane getInstance() { + return INSTANCE; + } + private void initRootBorderPane() { //中间,用于显示Main主布局 setCenterComponent(MainBorderPane.getInstance()); @@ -31,10 +36,6 @@ public class RootBorderPane extends AbstractBorderPane { //主布局的下面 setBottomComponent(RootBottomSideBarVBox.getInstance()); } - - public static RootBorderPane getInstance() { - return INSTANCE; - } } diff --git a/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java b/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java index 8a02199..bb57713 100644 --- a/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/bottom/RootBottomSideBarVBox.java @@ -11,11 +11,11 @@ public class RootBottomSideBarVBox extends AbstractVBox { initSidebarVBox(); } - private void initSidebarVBox() { - getChildren().addAll(JNotepadStatusBox.getInstance()); - } - public static RootBottomSideBarVBox getInstance() { return INSTANCE; } + + private void initSidebarVBox() { + getChildren().addAll(JNotepadStatusBox.getInstance()); + } } diff --git a/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java b/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java index 8d679a7..8525402 100644 --- a/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/MainBorderPane.java @@ -16,15 +16,15 @@ public class MainBorderPane extends AbstractBorderPane { initRootBorderPane(); } + public static MainBorderPane getInstance() { + return INSTANCE; + } + private void initRootBorderPane() { //文本框 setCenterComponent(JNotepadTabPane.getInstance()); } - - public static MainBorderPane getInstance() { - return INSTANCE; - } } diff --git a/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTab.java b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTab.java index 00e7c0f..2d3007e 100644 --- a/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTab.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTab.java @@ -80,6 +80,7 @@ public class JNotepadTab extends Tab { /** * 保存为指定文件 + * * @param file 新文件 */ public void save(File file) { diff --git a/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTabPane.java b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTabPane.java index df2e03e..ff8f613 100644 --- a/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTabPane.java +++ b/src/main/java/org/jcnc/jnotepad/root/center/main/center/tab/JNotepadTabPane.java @@ -1,8 +1,9 @@ package org.jcnc.jnotepad.root.center.main.center.tab; import javafx.scene.control.TabPane; +import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox; +import org.jcnc.jnotepad.root.top.menu.JNotepadMenuBar; import org.jcnc.jnotepad.tool.SingletonUtil; -import org.jcnc.jnotepad.tool.UiUtil; /** * 标签页布局组件封装。 @@ -30,10 +31,10 @@ public class JNotepadTabPane extends TabPane { (ov, from, to) -> { if (to != null) { // 更新菜单栏中与tab相关设置 - UiUtil.getMenuBar().updateMenuStatusBySelectedTab(); + JNotepadMenuBar.getInstance().updateMenuStatusBySelectedTab(); } // 更新状态标签 - UiUtil.getStatusBox().updateWhenTabSelected(); + JNotepadStatusBox.getInstance().updateWhenTabSelected(); } ); } @@ -71,6 +72,6 @@ public class JNotepadTabPane extends TabPane { public void fireTabSelected() { JNotepadTab selectedTab = getSelected(); selectedTab.setAutoLine(SingletonUtil.getAppConfigController().getAutoLineConfig()); - UiUtil.getStatusBox().updateWhenTabSelected(); + JNotepadStatusBox.getInstance().updateWhenTabSelected(); } } diff --git a/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java b/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java index 72426fc..d4e34c1 100644 --- a/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java +++ b/src/main/java/org/jcnc/jnotepad/root/right/RootRightSideBarVBox.java @@ -10,11 +10,11 @@ public class RootRightSideBarVBox extends AbstractVBox { initSidebarVBox(); } - private void initSidebarVBox() { - - } - public static RootRightSideBarVBox getInstance() { return INSTANCE; } + + private void initSidebarVBox() { + + } } diff --git a/src/main/java/org/jcnc/jnotepad/root/top/RootTopBorderPane.java b/src/main/java/org/jcnc/jnotepad/root/top/RootTopBorderPane.java index 9ef19dd..7e8bd80 100644 --- a/src/main/java/org/jcnc/jnotepad/root/top/RootTopBorderPane.java +++ b/src/main/java/org/jcnc/jnotepad/root/top/RootTopBorderPane.java @@ -17,14 +17,14 @@ public class RootTopBorderPane extends AbstractBorderPane { initRootBorderPane(); } + public static RootTopBorderPane getInstance() { + return INSTANCE; + } + private void initRootBorderPane() { //文本框上面 setTopComponent(JNotepadMenuBar.getInstance()); } - - public static RootTopBorderPane getInstance() { - return INSTANCE; - } } diff --git a/src/main/java/org/jcnc/jnotepad/tool/SingletonUtil.java b/src/main/java/org/jcnc/jnotepad/tool/SingletonUtil.java index 22e1a7d..ee986bb 100644 --- a/src/main/java/org/jcnc/jnotepad/tool/SingletonUtil.java +++ b/src/main/java/org/jcnc/jnotepad/tool/SingletonUtil.java @@ -52,7 +52,7 @@ public class SingletonUtil { } /** - * 获取UI资源绑定组件I + * 获取UI资源绑定组件 * * @return org.jcnc.jnotepad.app.i18n.UiResourceBundle * @since 2023/8/30 12:45 diff --git a/src/main/java/org/jcnc/jnotepad/tool/UiUtil.java b/src/main/java/org/jcnc/jnotepad/tool/UiUtil.java index b114473..bd4caef 100644 --- a/src/main/java/org/jcnc/jnotepad/tool/UiUtil.java +++ b/src/main/java/org/jcnc/jnotepad/tool/UiUtil.java @@ -2,61 +2,25 @@ package org.jcnc.jnotepad.tool; import javafx.scene.image.Image; import javafx.stage.Window; +import org.jcnc.jnotepad.LunchApp; import org.jcnc.jnotepad.constants.AppConstants; -import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox; -import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; -import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; -import org.jcnc.jnotepad.root.top.menu.JNotepadMenuBar; -import org.jcnc.jnotepad.ui.setStage.SetStage; -import org.jcnc.jnotepad.view.manager.ViewManager; import java.util.Objects; /** - * UI工具
- * 封装了项目所有的UI组件,以减少组件单例模式造成代码的复杂性 + * UI工具 * * @author gewuyou */ public class UiUtil { - /** - * 标签页布局组件 - */ - private static final JNotepadTabPane TAB_PANE = JNotepadTabPane.getInstance(); - /** - * 视图管理组件 - */ - private static final ViewManager VIEW_MANAGER = ViewManager.getInstance(); - /** - * 状态栏组件 - */ - private static final JNotepadStatusBox STATUS_BOX = JNotepadStatusBox.getInstance(); - /** - * 菜单栏组件 - */ - private static final JNotepadMenuBar MENU_BAR = JNotepadMenuBar.getInstance(); /** * 应用程序图标 */ private static final Image ICON = new Image(Objects.requireNonNull(UiUtil.class.getResource(AppConstants.APP_ICON)).toString()); - /** - * 设置窗口 - */ - private static final SetStage SET_STAGE = SetStage.getInstance(); private UiUtil() { } - /** - * 获取设置窗口 - * - * @return org.jcnc.jnotepad.ui.setStage.SetStage - * @since 2023/8/30 12:39 - */ - public static SetStage getSetStage() { - return SET_STAGE; - } - /** * 获取应用程序图标 * @@ -67,30 +31,6 @@ public class UiUtil { return ICON; } - /** - * 获取标签页布局组件 - * - * @return org.jcnc.jnotepad.ui.root.center.tab.JNotepadTabPane - * @apiNote JNotepadTabPane.getInstance() - * @see JNotepadTabPane - */ - - public static JNotepadTabPane getJnotepadTabPane() { - return TAB_PANE; - } - - /** - * 获取标签页组件 - * - * @return org.jcnc.jnotepad.ui.root.center.tab.JNotepadTab - * @apiNote JNotepadTabPane.getInstance().getSelected()
获取当前选中的标签页 - * @see JNotepadTabPane - */ - - public static JNotepadTab getJnotepadtab() { - return TAB_PANE.getSelected(); - } - /** * 获取应用窗口 * @@ -99,37 +39,6 @@ public class UiUtil { * @since 2023/8/29 14:12 */ public static Window getAppWindow() { - return TAB_PANE.getSelected().getTabPane().getScene().getWindow(); - } - - /** - * 获取视图管理组件 - * - * @return org.jcnc.jnotepad.view.manager.ViewManager - * @apiNote ViewManager.getInstance() - * @since 2023/8/29 14:13 - */ - public static ViewManager getViewManager() { - return VIEW_MANAGER; - } - - /** - * 获取状态栏组件 - * - * @return org.jcnc.jnotepad.ui.root.bottom.status.JNotepadStatusBox - * @since 2023/8/29 14:14 - */ - public static JNotepadStatusBox getStatusBox() { - return STATUS_BOX; - } - - /** - * 获取菜单栏组件 - * - * @return org.jcnc.jnotepad.ui.root.top.menu.JNotepadMenuBar - * @since 2023/8/29 14:15 - */ - public static JNotepadMenuBar getMenuBar() { - return MENU_BAR; + return LunchApp.getWindow(); } } diff --git a/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/impl/TextFileChooserFactory.java b/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/impl/TextFileChooserFactory.java index c072569..dbe126f 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/impl/TextFileChooserFactory.java +++ b/src/main/java/org/jcnc/jnotepad/ui/dialog/factory/impl/TextFileChooserFactory.java @@ -13,12 +13,12 @@ import java.io.File; */ public class TextFileChooserFactory implements FileChooserFactory { + private static final TextFileChooserFactory INSTANCE = new TextFileChooserFactory(); + private TextFileChooserFactory() { } - private static final TextFileChooserFactory INSTANCE = new TextFileChooserFactory(); - public static TextFileChooserFactory getInstance() { return INSTANCE; } diff --git a/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java b/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java index cfe2d63..fbb47a0 100644 --- a/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java +++ b/src/main/java/org/jcnc/jnotepad/ui/module/LineNumberTextArea.java @@ -3,10 +3,11 @@ package org.jcnc.jnotepad.ui.module; import javafx.beans.property.StringProperty; import javafx.scene.control.TextArea; import javafx.scene.layout.BorderPane; +import org.jcnc.jnotepad.root.center.main.bottom.status.JNotepadStatusBox; import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTab; +import org.jcnc.jnotepad.root.center.main.center.tab.JNotepadTabPane; import org.jcnc.jnotepad.tool.LogUtil; import org.jcnc.jnotepad.tool.SingletonUtil; -import org.jcnc.jnotepad.tool.UiUtil; import org.slf4j.Logger; import java.io.BufferedWriter; @@ -19,9 +20,9 @@ import java.io.IOException; */ public class LineNumberTextArea extends BorderPane { - private static final Logger logger=LogUtil.getLogger(LineNumberTextArea.class); static final int[] SIZE_TABLE = {9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Integer.MAX_VALUE}; + private static final Logger logger = LogUtil.getLogger(LineNumberTextArea.class); private static final int MIN_LINE_NUMBER_WIDTH = 30; private final TextArea mainTextArea; private final TextArea lineNumberArea; @@ -59,12 +60,12 @@ public class LineNumberTextArea extends BorderPane { lineNumberArea.textProperty().addListener((observable, oldValue, newValue) -> updateLineNumberWidth()); - this.mainTextArea.caretPositionProperty().addListener((caretObservable, oldPosition, newPosition) -> UiUtil.getStatusBox().updateWordCountStatusLabel()); + this.mainTextArea.caretPositionProperty().addListener((caretObservable, oldPosition, newPosition) -> JNotepadStatusBox.getInstance().updateWordCountStatusLabel()); this.textProperty().addListener((observable, oldValue, newValue) -> { // 更新行号 updateLineNumberArea(); // 更新状态栏 - UiUtil.getStatusBox().updateWordCountStatusLabel(); + JNotepadStatusBox.getInstance().updateWordCountStatusLabel(); // 自动保存 save(); }); @@ -74,7 +75,7 @@ public class LineNumberTextArea extends BorderPane { * 以原文件编码格式写回文件 */ public void save() { - JNotepadTab tab = UiUtil.getJnotepadtab(); + JNotepadTab tab = JNotepadTabPane.getInstance().getSelected(); if (tab == null) { return; }