From b2676f861fc15862cbecdffab149fbb20696b64c Mon Sep 17 00:00:00 2001 From: songdragon Date: Sat, 19 Aug 2023 11:11:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20Controller=E4=BD=BF=E7=94=A8sig?= =?UTF-8?q?leton=EF=BC=8C=E9=81=BF=E5=85=8D=E5=A4=9A=E6=AC=A1=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/jcnc/jnotepad/LunchApp.java | 2 +- .../jnotepad/controller/event/handler/NewFile.java | 2 +- .../jnotepad/controller/event/handler/OpenFile.java | 2 +- .../jcnc/jnotepad/controller/manager/Controller.java | 12 +++++++++++- src/main/java/org/jcnc/jnotepad/view/init/View.java | 10 +++++----- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/jcnc/jnotepad/LunchApp.java b/src/main/java/org/jcnc/jnotepad/LunchApp.java index 9b8bcd0..451118c 100644 --- a/src/main/java/org/jcnc/jnotepad/LunchApp.java +++ b/src/main/java/org/jcnc/jnotepad/LunchApp.java @@ -23,7 +23,7 @@ public class LunchApp extends Application { private static final ExecutorService threadPool = Executors.newCachedThreadPool(); public static boolean isRelevance = true; - Controller controller = new Controller(); + Controller controller = Controller.getInstance(); View view; diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java index ae1f986..40a7215 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java @@ -23,7 +23,7 @@ public class NewFile implements EventHandler { @Override public void handle(ActionEvent event) { // 获取控制器 - Controller controller = new Controller(); + Controller controller = Controller.getInstance(); // 创建一个新的文本编辑区 TextArea textArea = new TextArea(); diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/OpenFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/OpenFile.java index 26aa1b2..3e06a29 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/OpenFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/OpenFile.java @@ -25,7 +25,7 @@ public class OpenFile implements EventHandler { @Override public void handle(ActionEvent event) { // 获取控制器 - Controller controller = new Controller(); + Controller controller = Controller.getInstance(); // 创建文件选择器 FileChooser fileChooser = new FileChooser(); // 显示文件选择对话框,并获取选中的文件 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 210b955..af6b089 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/manager/Controller.java +++ b/src/main/java/org/jcnc/jnotepad/controller/manager/Controller.java @@ -26,6 +26,16 @@ import java.util.List; */ public class Controller implements ControllerInterface { + private static final Controller INSTANCE = new Controller(); + + private Controller() { + + } + + public static Controller getInstance() { + return INSTANCE; + } + /** * 打开关联文件并创建文本区域。 * @@ -271,7 +281,7 @@ public class Controller implements ControllerInterface { TextArea textArea = new TextArea(); textArea.setStyle( "-fx-border-color:white;" + - "-fx-background-color:white" + "-fx-background-color:white" ); return textArea; } diff --git a/src/main/java/org/jcnc/jnotepad/view/init/View.java b/src/main/java/org/jcnc/jnotepad/view/init/View.java index 57438b4..037b2dd 100644 --- a/src/main/java/org/jcnc/jnotepad/view/init/View.java +++ b/src/main/java/org/jcnc/jnotepad/view/init/View.java @@ -21,17 +21,17 @@ public class View { public void initItem() { // 初始化菜单项的事件处理器 - EventHandler newFileEventHandler = new Controller().getNewFileEventHandler(new TextArea()); + EventHandler newFileEventHandler = Controller.getInstance().getNewFileEventHandler(new TextArea()); newItem.setOnAction(newFileEventHandler); - EventHandler openFileEventHandler = new Controller().getOpenFileEventHandler(); + EventHandler openFileEventHandler = Controller.getInstance().getOpenFileEventHandler(); openItem.setOnAction(openFileEventHandler); - EventHandler saveAsFileEventHandler = new Controller().getSaveAsFileEventHandler(); + EventHandler saveAsFileEventHandler = Controller.getInstance().getSaveAsFileEventHandler(); saveAsItem.setOnAction(saveAsFileEventHandler); - lineFeedItem.setOnAction(new Controller().getLineFeedEventHandler(new TextArea())); + lineFeedItem.setOnAction(Controller.getInstance().getLineFeedEventHandler(new TextArea())); } public void initTabPane() { - new Controller().initTabPane(); + Controller.getInstance().initTabPane(); } // 初始化快捷键 -- Gitee From 12b59555b624f4221d5aedb626a69ea86849ecfa Mon Sep 17 00:00:00 2001 From: songdragon Date: Sat, 19 Aug 2023 11:15:21 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20#I7UE5B=20=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E6=96=87=E4=BB=B6=E5=90=8E=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jcnc/jnotepad/controller/event/handler/NewFile.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java index 40a7215..c23c3ae 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/NewFile.java @@ -31,6 +31,9 @@ public class NewFile implements EventHandler { "-fx-border-color:white;" + "-fx-background-color:white" ); + //TODO: refactor:统一TextArea新建、绑定监听器入口 + // 增加autoSave监听器绑定 + controller.autoSave(textArea); // 创建一个新的Tab页 Tab tab = new Tab("新建文本 " + ++ViewManager.tabIndex); tab.setContent(textArea); -- Gitee