🚩 添加自动打开上次打开的文件夹逻辑
This commit is contained in:
parent
566e08eb11
commit
ab947ce163
@ -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);
|
||||
// 设置文件树功能
|
||||
|
||||
@ -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)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user