From 6a7545312a83454d1007aab27250dc5984f9f42d Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Tue, 18 Dec 2018 08:27:11 +0000
Subject: [PATCH] Sort order of files: case insensitive and dot files will shown after normal files and directories.
---
borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java | 11 ++++++++++-
borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java | 17 +++++++++++++++++
2 files changed, 27 insertions(+), 1 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 9917008..aa14643 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
@@ -94,6 +94,8 @@
* After processing a list by using {@link #matches(BorgFilesystemItem)} you should call finally this method with
* your result list to reduce the files and directories for mode {@link Mode#TREE}. For the mode {@link Mode#FLAT}
* nothing is done.
+ * <br>
+ * Reorders the list (.files will be displayed after normal files).
*
* @param list
* @return The original list for mode {@link Mode#FLAT} or the reduced list for the tree view.
@@ -115,6 +117,21 @@
list.add(topItem);
}
}
+ list2 = list;
+ // Re-ordering (show dot files at last)
+ list = new ArrayList<>();
+ // First add normal files:
+ for (BorgFilesystemItem item : list2) {
+ if (!item.getDisplayPath().startsWith(".")) {
+ list.add(item);
+ }
+ }
+ // Now add dot files:
+ for (BorgFilesystemItem item : list2) {
+ if (item.getDisplayPath().startsWith(".")) {
+ list.add(item);
+ }
+ }
}
return list;
}
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java
index f2c48a6..a08110e 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java
@@ -56,6 +56,15 @@
@Override
public int compareTo(BorgFilesystemItem o) {
- return StringUtils.compare(this.path, o.path);
+ if (path == o.path) {
+ return 0;
+ }
+ if (path == null) {
+ return -1;
+ }
+ if (o.path == null) {
+ return 1;
+ }
+ return path.compareToIgnoreCase(o.path);
}
}
--
Gitblit v1.10.0