eros: server type: server count

This commit is contained in:
Bixilon 2021-07-28 21:54:45 +02:00
parent 22c46342a0
commit 5bd0c9b7c2
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
5 changed files with 30 additions and 23 deletions

View File

@ -34,10 +34,10 @@ class SimpleErosConfirmationDialog(
val onCancel: () -> Unit = {},
val onConfirm: () -> Unit,
) : JavaFXWindowController() {
@FXML lateinit var headerFX: TextFlow
@FXML lateinit var descriptionFX: TextFlow
@FXML lateinit var cancelButtonFX: Button
@FXML lateinit var confirmButtonFX: Button
@FXML private lateinit var headerFX: TextFlow
@FXML private lateinit var descriptionFX: TextFlow
@FXML private lateinit var cancelButtonFX: Button
@FXML private lateinit var confirmButtonFX: Button
fun show() {
Platform.runLater {

View File

@ -41,29 +41,29 @@ class UpdateServerDialog(
val onCancel: () -> Unit = {},
val onUpdate: (name: String, address: String, forcedVersion: Version?) -> Unit,
) : JavaFXWindowController() {
@FXML lateinit var descriptionFX: TextFlow
@FXML private lateinit var descriptionFX: TextFlow
@FXML lateinit var serverNameLabelFX: TextFlow
@FXML private lateinit var serverNameLabelFX: TextFlow
@FXML lateinit var serverNameFX: TextField
@FXML private lateinit var serverNameFX: TextField
@FXML lateinit var serverAddressLabelFX: TextFlow
@FXML private lateinit var serverAddressLabelFX: TextFlow
@FXML lateinit var serverAddressFX: TextField
@FXML private lateinit var serverAddressFX: TextField
@FXML lateinit var forcedVersionLabelFX: TextFlow
@FXML private lateinit var forcedVersionLabelFX: TextFlow
@FXML lateinit var forcedVersionFX: ComboBox<Version>
@FXML private lateinit var forcedVersionFX: ComboBox<Version>
@FXML lateinit var showReleasesFX: CheckBox
@FXML private lateinit var showReleasesFX: CheckBox
@FXML lateinit var showSnapshotsFX: CheckBox
@FXML private lateinit var showSnapshotsFX: CheckBox
@FXML lateinit var updateServerButtonFX: Button
@FXML private lateinit var updateServerButtonFX: Button
@FXML lateinit var cancelButtonFX: Button
@FXML private lateinit var cancelButtonFX: Button
fun show() {

View File

@ -58,7 +58,7 @@ class PlayMainController : EmbeddedJavaFXController<Pane>() {
if (this::currentController.isInitialized) {
currentController.terminate()
}
currentController = when (new) {
currentController = when (new!!) {
ServerTypes.CUSTOM -> JavaFXUtil.loadEmbeddedController<ServerListController>(ServerListController.LAYOUT).apply {
servers = Minosoft.config.config.server.entries.values
refreshList()

View File

@ -13,21 +13,28 @@
package de.bixilon.minosoft.gui.eros.main.play
import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.registries.registry.Translatable
import de.bixilon.minosoft.protocol.protocol.LANServerListener
import de.bixilon.minosoft.util.KUtil
import de.bixilon.minosoft.util.KUtil.asResourceLocation
import de.bixilon.minosoft.util.enum.ValuesEnum
import org.kordamp.ikonli.Ikon
import org.kordamp.ikonli.fontawesome5.FontAwesomeSolid
enum class ServerTypes(val icon: Ikon) : Translatable {
CUSTOM(FontAwesomeSolid.SERVER),
LAN(FontAwesomeSolid.NETWORK_WIRED),
enum class ServerTypes(
val icon: Ikon,
private val countGetter: () -> Int,
) : Translatable {
CUSTOM(FontAwesomeSolid.SERVER, { Minosoft.config.config.server.entries.size }),
LAN(FontAwesomeSolid.NETWORK_WIRED, { LANServerListener.SERVERS.size }),
;
override val translationKey: ResourceLocation = "minosoft:server_type.${name.lowercase()}".asResourceLocation()
val count: Int
get() = countGetter()
companion object : ValuesEnum<ServerTypes> {
override val VALUES: Array<ServerTypes> = values()

View File

@ -24,11 +24,11 @@ import javafx.scene.text.TextFlow
import org.kordamp.ikonli.javafx.FontIcon
class ServerTypeCardController : AbstractCard<ServerTypes>() {
@FXML lateinit var iconFX: FontIcon
@FXML private lateinit var iconFX: FontIcon
@FXML lateinit var headerFX: TextFlow
@FXML private lateinit var headerFX: TextFlow
@FXML lateinit var textFX: TextFlow
@FXML private lateinit var textFX: TextFlow
override fun updateItem(item: ServerTypes?, empty: Boolean) {
super.updateItem(item, empty)
@ -40,7 +40,7 @@ class ServerTypeCardController : AbstractCard<ServerTypes>() {
iconFX.iconCode = item.icon
headerFX.text = Minosoft.LANGUAGE_MANAGER.translate(item)
textFX.text = "? servers"
textFX.text = "${item.count} servers" // ToDo: Update on the fly
}