From d48c1b2bf2d0e11c12fceac438bba6b8f9b5935c Mon Sep 17 00:00:00 2001 From: Marvin Elsen Date: Thu, 3 Oct 2024 16:26:01 +0200 Subject: [PATCH] Split up services into their own files --- .../kotlin/com/marvinelsen/willow/Model.kt | 6 +-- .../marvinelsen/willow/WillowApplication.kt | 6 +-- .../ui/services/FindCharacterService.kt | 20 +++++++++ .../willow/ui/services/FindWordsService.kt | 20 +++++++++ .../willow/ui/services/SearchService.kt | 22 ++++++++++ .../marvinelsen/willow/ui/util/Services.kt | 42 ------------------- 6 files changed, 68 insertions(+), 48 deletions(-) create mode 100644 src/main/kotlin/com/marvinelsen/willow/ui/services/FindCharacterService.kt create mode 100644 src/main/kotlin/com/marvinelsen/willow/ui/services/FindWordsService.kt create mode 100644 src/main/kotlin/com/marvinelsen/willow/ui/services/SearchService.kt delete mode 100644 src/main/kotlin/com/marvinelsen/willow/ui/util/Services.kt diff --git a/src/main/kotlin/com/marvinelsen/willow/Model.kt b/src/main/kotlin/com/marvinelsen/willow/Model.kt index 7748fba..bcc195f 100644 --- a/src/main/kotlin/com/marvinelsen/willow/Model.kt +++ b/src/main/kotlin/com/marvinelsen/willow/Model.kt @@ -2,10 +2,10 @@ package com.marvinelsen.willow import com.marvinelsen.willow.domain.SearchMode import com.marvinelsen.willow.ui.DictionaryEntryFx +import com.marvinelsen.willow.ui.services.FindCharacterService +import com.marvinelsen.willow.ui.services.FindWordsService +import com.marvinelsen.willow.ui.services.SearchService import com.marvinelsen.willow.ui.util.ClipboardHelper -import com.marvinelsen.willow.ui.util.FindCharacterService -import com.marvinelsen.willow.ui.util.FindWordsService -import com.marvinelsen.willow.ui.util.SearchService import javafx.beans.property.ObjectProperty import javafx.beans.property.ReadOnlyBooleanProperty import javafx.beans.property.ReadOnlyObjectProperty diff --git a/src/main/kotlin/com/marvinelsen/willow/WillowApplication.kt b/src/main/kotlin/com/marvinelsen/willow/WillowApplication.kt index 54f9a29..323ce96 100644 --- a/src/main/kotlin/com/marvinelsen/willow/WillowApplication.kt +++ b/src/main/kotlin/com/marvinelsen/willow/WillowApplication.kt @@ -7,9 +7,9 @@ import com.marvinelsen.willow.ui.controllers.MainController import com.marvinelsen.willow.ui.controllers.MenuController import com.marvinelsen.willow.ui.controllers.SearchController import com.marvinelsen.willow.ui.controllers.SearchResultsController -import com.marvinelsen.willow.ui.util.FindCharacterService -import com.marvinelsen.willow.ui.util.FindWordsService -import com.marvinelsen.willow.ui.util.SearchService +import com.marvinelsen.willow.ui.services.FindCharacterService +import com.marvinelsen.willow.ui.services.FindWordsService +import com.marvinelsen.willow.ui.services.SearchService import javafx.application.Application import javafx.fxml.FXMLLoader import javafx.scene.Scene diff --git a/src/main/kotlin/com/marvinelsen/willow/ui/services/FindCharacterService.kt b/src/main/kotlin/com/marvinelsen/willow/ui/services/FindCharacterService.kt new file mode 100644 index 0000000..7e4770a --- /dev/null +++ b/src/main/kotlin/com/marvinelsen/willow/ui/services/FindCharacterService.kt @@ -0,0 +1,20 @@ +package com.marvinelsen.willow.ui.services + +import com.marvinelsen.willow.domain.Dictionary +import com.marvinelsen.willow.ui.DictionaryEntryFx +import com.marvinelsen.willow.ui.toDomain +import com.marvinelsen.willow.ui.toFx +import com.marvinelsen.willow.ui.util.task +import javafx.collections.FXCollections +import javafx.collections.ObservableList +import javafx.concurrent.Service + +class FindCharacterService(private val dictionary: Dictionary) : Service>() { + lateinit var entry: DictionaryEntryFx + + override fun createTask() = task { + if (!this::entry.isInitialized) error("Entry is not initialized") + + FXCollections.observableList(dictionary.findCharacters(entry.toDomain()).map { it.toFx() }) + } +} diff --git a/src/main/kotlin/com/marvinelsen/willow/ui/services/FindWordsService.kt b/src/main/kotlin/com/marvinelsen/willow/ui/services/FindWordsService.kt new file mode 100644 index 0000000..7ea6a08 --- /dev/null +++ b/src/main/kotlin/com/marvinelsen/willow/ui/services/FindWordsService.kt @@ -0,0 +1,20 @@ +package com.marvinelsen.willow.ui.services + +import com.marvinelsen.willow.domain.Dictionary +import com.marvinelsen.willow.ui.DictionaryEntryFx +import com.marvinelsen.willow.ui.toDomain +import com.marvinelsen.willow.ui.toFx +import com.marvinelsen.willow.ui.util.task +import javafx.collections.FXCollections +import javafx.collections.ObservableList +import javafx.concurrent.Service + +class FindWordsService(private val dictionary: Dictionary) : Service>() { + lateinit var entry: DictionaryEntryFx + + override fun createTask() = task { + if (!this::entry.isInitialized) error("Entry is not initialized") + + FXCollections.observableList(dictionary.findWordsContaining(entry.toDomain()).map { it.toFx() }) + } +} diff --git a/src/main/kotlin/com/marvinelsen/willow/ui/services/SearchService.kt b/src/main/kotlin/com/marvinelsen/willow/ui/services/SearchService.kt new file mode 100644 index 0000000..dbc3166 --- /dev/null +++ b/src/main/kotlin/com/marvinelsen/willow/ui/services/SearchService.kt @@ -0,0 +1,22 @@ +package com.marvinelsen.willow.ui.services + +import com.marvinelsen.willow.domain.Dictionary +import com.marvinelsen.willow.domain.SearchMode +import com.marvinelsen.willow.ui.DictionaryEntryFx +import com.marvinelsen.willow.ui.toFx +import com.marvinelsen.willow.ui.util.task +import javafx.collections.FXCollections +import javafx.collections.ObservableList +import javafx.concurrent.Service + +class SearchService(private val dictionary: Dictionary) : Service>() { + lateinit var searchQuery: String + lateinit var searchMode: SearchMode + + override fun createTask() = task { + if (!this::searchQuery.isInitialized) error("Search query is not initialized") + if (!this::searchMode.isInitialized) error("Search mode is not initialized") + + FXCollections.observableList(dictionary.search(searchQuery, searchMode).map { it.toFx() }) + } +} diff --git a/src/main/kotlin/com/marvinelsen/willow/ui/util/Services.kt b/src/main/kotlin/com/marvinelsen/willow/ui/util/Services.kt deleted file mode 100644 index 18df8ba..0000000 --- a/src/main/kotlin/com/marvinelsen/willow/ui/util/Services.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.marvinelsen.willow.ui.util - -import com.marvinelsen.willow.domain.Dictionary -import com.marvinelsen.willow.domain.SearchMode -import com.marvinelsen.willow.ui.DictionaryEntryFx -import com.marvinelsen.willow.ui.toDomain -import com.marvinelsen.willow.ui.toFx -import javafx.collections.FXCollections -import javafx.collections.ObservableList -import javafx.concurrent.Service - -class SearchService(private val dictionary: Dictionary) : Service>() { - lateinit var searchQuery: String - lateinit var searchMode: SearchMode - - override fun createTask() = task { - if (!this::searchQuery.isInitialized) error("Search query is not initialized") - if (!this::searchMode.isInitialized) error("Search mode is not initialized") - - FXCollections.observableList(dictionary.search(searchQuery, searchMode).map { it.toFx() }) - } -} - -class FindWordsService(private val dictionary: Dictionary) : Service>() { - lateinit var entry: DictionaryEntryFx - - override fun createTask() = task { - if (!this::entry.isInitialized) error("Entry is not initialized") - - FXCollections.observableList(dictionary.findWordsContaining(entry.toDomain()).map { it.toFx() }) - } -} - -class FindCharacterService(private val dictionary: Dictionary) : Service>() { - lateinit var entry: DictionaryEntryFx - - override fun createTask() = task { - if (!this::entry.isInitialized) error("Entry is not initialized") - - FXCollections.observableList(dictionary.findCharacters(entry.toDomain()).map { it.toFx() }) - } -}