diff --git a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/OpenDirectory.java b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/OpenDirectory.java index 8e919ee..fb8c1f1 100644 --- a/src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/OpenDirectory.java +++ b/src/main/java/org/jcnc/jnotepad/controller/event/handler/menubar/OpenDirectory.java @@ -26,10 +26,11 @@ public class OpenDirectory implements EventHandler { 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 { } // 设置缓存 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 { // 将文件转为实体类 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); // 设置文件树功能 diff --git a/src/main/java/org/jcnc/jnotepad/views/manager/DirectorySidebarManager.java b/src/main/java/org/jcnc/jnotepad/views/manager/DirectorySidebarManager.java index 316eedf..3dc35b5 100644 --- a/src/main/java/org/jcnc/jnotepad/views/manager/DirectorySidebarManager.java +++ b/src/main/java/org/jcnc/jnotepad/views/manager/DirectorySidebarManager.java @@ -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))); }