diff --git a/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java b/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java index 2403426e..2d5d1f93 100644 --- a/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java +++ b/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java @@ -71,16 +71,29 @@ public class LacertaLibraryImpl implements LacertaLibrary { return CompletableFuture.supplyAsync(() -> { LibraryItemPage libraryItemPage = new LibraryItemPage(); - FolderEntity folderEntity = database.folderDao().findById(pageId); - if (folderEntity == null) { - logger.warn("LacertaLibraryImpl", pageId + " is not found."); - return null; - } + List folderEntities; + List documentEntities; - List folderEntities = database.folderDao().findByParentId(pageId); - logger.debug("LacertaLibraryImpl", "folderEntities.size(): " + folderEntities.size()); - List documentEntities = database.documentDao().findByParentId(pageId); - logger.debug("LacertaLibraryImpl", "documentEntities.size(): " + documentEntities.size()); + if (pageId == null) { // When root folder + libraryItemPage.setPageTitle("ライブラリ"); + libraryItemPage.setPageId(null); + libraryItemPage.setParentId(null); + + folderEntities = database.folderDao().findRootFolders(); + documentEntities = database.documentDao().findRootDocuments(); + } else { + FolderEntity folderEntity = database.folderDao().findById(pageId); + if (folderEntity == null) { + logger.warn("LacertaLibraryImpl", pageId + " is not found."); + return null; + } + libraryItemPage.setPageTitle(folderEntity.name); + libraryItemPage.setPageId(folderEntity.id); + libraryItemPage.setParentId(folderEntity.parentId); + + folderEntities = database.folderDao().findByParentId(pageId); + documentEntities = database.documentDao().findByParentId(pageId); + } ArrayList listItems = new ArrayList<>(); for (FolderEntity childFolderEntity : folderEntities) { @@ -103,9 +116,6 @@ public class LacertaLibraryImpl implements LacertaLibrary { listItems.add(listItem); } - libraryItemPage.setPageTitle(folderEntity.name); - libraryItemPage.setPageId(folderEntity.id); - libraryItemPage.setParentId(folderEntity.parentId); libraryItemPage.setListItems(listItems); logger.debug("LacertaLibraryImpl", "libraryItemPage.getListItems().size(): " + libraryItemPage.getListItems().size());