diff --git a/src/main/java/org/jcnc/jnotepad/model/entity/DirFileModel.java b/src/main/java/org/jcnc/jnotepad/model/entity/DirFileModel.java index 4cdfa91df1c531f2e652959f4eb1fae496a32a6a..49a6084edaa5978cdca14c10cb338a7726249bf8 100644 --- a/src/main/java/org/jcnc/jnotepad/model/entity/DirFileModel.java +++ b/src/main/java/org/jcnc/jnotepad/model/entity/DirFileModel.java @@ -13,13 +13,26 @@ import java.util.List; * @author cccqyu */ public class DirFileModel { + /** + * 路径 + */ private String path; + /** + * 文件名 + */ private String name; + /** + * 未选中时的图标 + */ private Node iconIsNotSelected; - + /** + * 选中时的图标 + */ private Node iconIsSelected; - + /** + * 子文件 + */ private List childFile; public DirFileModel(String path, String name, List childFile, Node iconIsNotSelected, Node iconIsSelected) { 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 ac8473bc5c20947a153ee868727be6d3dcf79227..bc2b104ef6bd286c6799c0a7dd0b6a93aa733dd7 100644 --- a/src/main/java/org/jcnc/jnotepad/views/manager/DirectorySidebarManager.java +++ b/src/main/java/org/jcnc/jnotepad/views/manager/DirectorySidebarManager.java @@ -112,6 +112,16 @@ public class DirectorySidebarManager { expandFolder(dirFileModel, rootItem); } + /** + * Check if the given `DirFileModel` represents a directory. + * + * @param childFile the `DirFileModel` to check + * @return `true` if the `childFile` represents a directory, `false` otherwise + */ + private static boolean isDirectoryByDirFileModel(DirFileModel childFile) { + return new File(childFile.getPath()).isDirectory(); + } + /** * 递归展开 dirFileModel * @@ -123,7 +133,10 @@ public class DirectorySidebarManager { if (childFileList != null) { for (DirFileModel childFile : childFileList) { TreeItem childItem = new TreeItem<>(childFile, childFile.getIconIsNotSelected()); - childItem.expandedProperty().addListener(getTreeItemListener(childItem)); + // 只有文件夹树才添加监听事件 + if (isDirectoryByDirFileModel(childFile)) { + childItem.expandedProperty().addListener(getTreeItemListener(childItem)); + } item.getChildren().add(childItem); expandFolder(childFile, childItem); }