修复:关闭最后一个标签页时下方数据不刷新的问题。
This commit is contained in:
parent
013c47d81e
commit
08005c73c5
@ -109,5 +109,13 @@ public interface ControllerInterface {
|
||||
*/
|
||||
void initTabPane();
|
||||
|
||||
void updateUIWithNewTextArea(LineNumberTextArea textArea);
|
||||
/**
|
||||
* 更新UI和标签页
|
||||
*
|
||||
* @param textArea 文本域
|
||||
* @apiNote
|
||||
* @since 2023/8/20 12:40
|
||||
*/
|
||||
|
||||
void updateUiWithNewTextArea(LineNumberTextArea textArea);
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ public class LunchApp extends Application {
|
||||
threadPool.execute(() -> {
|
||||
LineNumberTextArea textArea = controller.openAssociatedFileAndCreateTextArea(rawParameters);
|
||||
if (!Objects.isNull(textArea)) {
|
||||
Platform.runLater(() -> controller.updateUIWithNewTextArea(textArea));
|
||||
Platform.runLater(() -> controller.updateUiWithNewTextArea(textArea));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -16,18 +16,20 @@ import org.jcnc.jnotepad.ui.LineNumberTextArea;
|
||||
import org.jcnc.jnotepad.view.manager.ViewManager;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 控制器类,实现ControllerInterface接口,用于管理文本编辑器的各种操作和事件处理。
|
||||
* 包括打开关联文件、创建文本区域、处理行分隔、新建文件、打开文件、自动保存等功能。
|
||||
*
|
||||
* @author 许轲
|
||||
*/
|
||||
public class Controller implements ControllerInterface {
|
||||
|
||||
private static final Controller INSTANCE = new Controller();
|
||||
|
||||
private Controller() {
|
||||
|
||||
}
|
||||
|
||||
public static Controller getInstance() {
|
||||
@ -228,12 +230,15 @@ public class Controller implements ControllerInterface {
|
||||
@Override
|
||||
public void initTabPane() {
|
||||
Controller controller = new Controller();
|
||||
|
||||
ViewManager.tabPane.getSelectionModel().selectedItemProperty().addListener((observable, oldTab, newTab) -> {
|
||||
LineNumberTextArea textArea;
|
||||
if (newTab != null) {
|
||||
// 获取新选定的标签页并关联的文本区域
|
||||
LineNumberTextArea textArea = (LineNumberTextArea) newTab.getContent();
|
||||
|
||||
textArea = (LineNumberTextArea) newTab.getContent();
|
||||
} else {
|
||||
// 刷新状态
|
||||
textArea = openAssociatedFileAndCreateTextArea(new ArrayList<>());
|
||||
}
|
||||
// 更新状态标签
|
||||
controller.updateStatusLabel(textArea);
|
||||
|
||||
@ -242,12 +247,18 @@ public class Controller implements ControllerInterface {
|
||||
|
||||
// 更新编码标签
|
||||
controller.upDateEncodingLabel(textArea.getMainTextArea().getText());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新UI和标签页
|
||||
*
|
||||
* @param textArea 文本域
|
||||
* @apiNote
|
||||
* @since 2023/8/20 12:40
|
||||
*/
|
||||
@Override
|
||||
public void updateUIWithNewTextArea(LineNumberTextArea textArea) {
|
||||
public void updateUiWithNewTextArea(LineNumberTextArea textArea) {
|
||||
Tab tab = new Tab("新建文件 " + (++ViewManager.tabIndex));
|
||||
tab.setContent(textArea);
|
||||
ViewManager.tabPane.getTabs().add(tab);
|
||||
@ -255,6 +266,7 @@ public class Controller implements ControllerInterface {
|
||||
updateStatusLabel(textArea);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 配置文本区域。
|
||||
*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user