From 0d191ef1046eeaa7b1d17914f519bf48b456ee48 Mon Sep 17 00:00:00 2001 From: gewuyou <1063891901@qq.com> Date: Tue, 10 Oct 2023 20:45:23 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E5=B0=9D=E8=AF=95=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=96=87=E4=BB=B6=E5=9B=BE=E6=A0=87=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jnotepad/model/entity/DirFileModel.java | 17 +++++++++++++++-- .../views/manager/DirectorySidebarManager.java | 15 ++++++++++++++- 2 files changed, 29 insertions(+), 3 deletions(-) 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 4cdfa91..49a6084 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 ac8473b..bc2b104 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); } -- Gitee