From ee959c661ba4fbb3042d0c131c5da47a53d1236a Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Thu, 24 Jan 2019 20:51:53 +0000
Subject: [PATCH] autoChangeDirectoryToLeafItem works now also for empty leaf directories.

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java
index 07cc17b..aeeb75a 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java
@@ -3,6 +3,7 @@
 import de.micromata.borgbutler.json.borg.BorgFilesystemItem;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -142,11 +143,15 @@
             // Only one sub directory is displayed, so change directory automatically to this sub directory:
             FileSystemFilter filter = this.clone();
             filter.setCurrentDirectory(list.get(0).getPath());
-            for (BorgFilesystemItem item: origList) {
+            for (BorgFilesystemItem item : origList) {
                 filter.matches(item);
             }
-            return filter.reduce(origList);
-            // TODO: Doesn't work because origList doesn't contain all children recursively! Check, why?
+            List<BorgFilesystemItem> result =
+                    filter.reduce(origList);
+            if (CollectionUtils.isNotEmpty(result)) {
+                // Use only result, if childs in the current directory do exist.
+                return result;
+            }
         }
         return list;
     }

--
Gitblit v1.10.0