!131 添加自动打开上次打开的文件夹逻辑

Merge pull request !131 from gewuyou/feature-I85CM5
This commit is contained in:
格物方能致知 2023-10-02 14:26:05 +00:00 committed by Gitee
commit 8a3404b5d7
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 9 additions and 5 deletions

View File

@ -26,10 +26,11 @@ public class OpenDirectory implements EventHandler<ActionEvent> {
private static final ApplicationCacheManager CACHE_MANAGER = ApplicationCacheManager.getInstance();
private static final DirectorySidebarManager DIRECTORY_SIDEBAR_MANAGER = DirectorySidebarManager.getInstance();
public static final String GROUP = "directory";
@Override
public void handle(ActionEvent actionEvent) {
// 获取缓存
Cache cache = CACHE_MANAGER.getCache("directory", "openDirectory");
Cache cache = CACHE_MANAGER.getCache(GROUP, "openDirectory");
// 显示文件选择对话框并获取选中的文件
File file = BasicDirectoryChooserFactory.getInstance().createDirectoryChooser(
@ -42,7 +43,7 @@ public class OpenDirectory implements EventHandler<ActionEvent> {
}
// 设置缓存
if (cache == null) {
CACHE_MANAGER.addCache(CACHE_MANAGER.createCache("directory", "openDirectory", file.getAbsolutePath(), CacheExpirationTime.NEVER_EXPIRES.getValue()));
CACHE_MANAGER.addCache(CACHE_MANAGER.createCache(GROUP, "openDirectory", file.getAbsolutePath(), CacheExpirationTime.NEVER_EXPIRES.getValue()));
} else {
cache.setCacheData(file.getParent());
CACHE_MANAGER.addCache(cache);
@ -55,7 +56,7 @@ public class OpenDirectory implements EventHandler<ActionEvent> {
// 将文件转为实体类
DirFileModel dirFileModel = FileUtil.getDirFileModel(file);
// 缓存已打开的文件夹
CACHE_MANAGER.addCache(CACHE_MANAGER.createCache("directory", "folderThatWasOpened", dirFileModel, CacheExpirationTime.NEVER_EXPIRES.getValue()));
CACHE_MANAGER.addCache(CACHE_MANAGER.createCache(GROUP, "folderThatWasOpened", file.getAbsolutePath(), CacheExpirationTime.NEVER_EXPIRES.getValue()));
// 打开侧边栏
DIRECTORY_SIDEBAR_MANAGER.controlShow(true);
// 设置文件树功能

View File

@ -2,10 +2,13 @@ package org.jcnc.jnotepad.views.manager;
import javafx.scene.control.TreeItem;
import org.jcnc.jnotepad.common.manager.ApplicationCacheManager;
import org.jcnc.jnotepad.common.util.FileUtil;
import org.jcnc.jnotepad.controller.event.handler.menubar.OpenDirectory;
import org.jcnc.jnotepad.model.entity.DirFileModel;
import org.jcnc.jnotepad.views.root.center.main.MainBorderPane;
import org.jcnc.jnotepad.views.root.center.main.center.directory.DirectorySidebarPane;
import java.io.File;
import java.util.List;
/**
@ -97,7 +100,7 @@ public class DirectorySidebarManager {
public void expandTheOpenFileTree() {
// 获取缓存
Object cacheData = CACHE_MANAGER.getCacheData("directory", "folderThatWasOpened");
Object cacheData = CACHE_MANAGER.getCacheData(OpenDirectory.GROUP, "folderThatWasOpened");
// 判空
if (cacheData == null) {
return;
@ -105,7 +108,7 @@ public class DirectorySidebarManager {
// 打开侧边栏
controlShow(true);
// 设置文件树功能
setTreeView((DirFileModel) cacheData);
setTreeView(FileUtil.getDirFileModel(new File((String) cacheData)));
}