From 6a37a9ae01fa6a071928d30e9c08055db891a127 Mon Sep 17 00:00:00 2001 From: johnniang Date: Thu, 11 Apr 2019 21:38:00 +0800 Subject: [PATCH] Refactor theme files comparision rule --- .../run/halo/app/model/support/ThemeFile.java | 16 +++++++++++++++- .../halo/app/service/impl/ThemeServiceImpl.java | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/run/halo/app/model/support/ThemeFile.java b/src/main/java/run/halo/app/model/support/ThemeFile.java index 987863462..36ab8e8ec 100644 --- a/src/main/java/run/halo/app/model/support/ThemeFile.java +++ b/src/main/java/run/halo/app/model/support/ThemeFile.java @@ -3,6 +3,7 @@ package run.halo.app.model.support; import lombok.Data; import lombok.ToString; +import java.util.Comparator; import java.util.List; /** @@ -13,7 +14,7 @@ import java.util.List; */ @Data @ToString -public class ThemeFile { +public class ThemeFile implements Comparator { private String name; @@ -24,4 +25,17 @@ public class ThemeFile { private Boolean editable; private List node; + + @Override + public int compare(ThemeFile leftFile, ThemeFile rightFile) { + if (leftFile.isFile && !rightFile.isFile) { + return 1; + } + + if (!leftFile.isFile && rightFile.isFile) { + return -1; + } + + return leftFile.getName().compareTo(rightFile.getName()); + } } diff --git a/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java b/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java index 5e9c7d780..406d9cf35 100644 --- a/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java @@ -343,7 +343,7 @@ public class ThemeServiceImpl implements ThemeService { }); // Sort with isFile param - themeFiles.sort(Comparator.comparing(ThemeFile::getIsFile)); + themeFiles.sort(new ThemeFile()); return themeFiles; } catch (IOException e) {