From 0a4c656b0a965ef4e9e6e597e4ced27e39a63be9 Mon Sep 17 00:00:00 2001 From: Patrick Hoefer Date: Thu, 17 Dec 2020 20:57:19 +0100 Subject: [PATCH] feat(view): add view manager --- .../xetra11/ck3workbench/app/ViewManager.kt | 18 ++++++++++++++++++ .../ck3workbench/app/ui/WorkbenchPanel.kt | 9 +++++++-- .../character/view/CharacterModuleView.kt | 4 ---- .../character/view/DynastieModuleView.kt | 16 ++++++++++++++++ src/main/kotlin/main.kt | 8 +++++++- 5 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 src/main/kotlin/com/github/xetra11/ck3workbench/app/ViewManager.kt create mode 100644 src/main/kotlin/com/github/xetra11/ck3workbench/module/character/view/DynastieModuleView.kt diff --git a/src/main/kotlin/com/github/xetra11/ck3workbench/app/ViewManager.kt b/src/main/kotlin/com/github/xetra11/ck3workbench/app/ViewManager.kt new file mode 100644 index 0000000..fef097e --- /dev/null +++ b/src/main/kotlin/com/github/xetra11/ck3workbench/app/ViewManager.kt @@ -0,0 +1,18 @@ +package com.github.xetra11.ck3workbench.app + +import androidx.compose.foundation.layout.BoxScope +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf +import com.github.xetra11.ck3workbench.module.character.view.CharacterModuleView +import kotlin.reflect.KFunction0 + +object ViewManager { + val currentView = mutableStateOf(View.CHARACTER_VIEW) + + enum class View { + CHARACTER_VIEW, + OTHER_VIEW + } + +} diff --git a/src/main/kotlin/com/github/xetra11/ck3workbench/app/ui/WorkbenchPanel.kt b/src/main/kotlin/com/github/xetra11/ck3workbench/app/ui/WorkbenchPanel.kt index d8df055..48b7727 100644 --- a/src/main/kotlin/com/github/xetra11/ck3workbench/app/ui/WorkbenchPanel.kt +++ b/src/main/kotlin/com/github/xetra11/ck3workbench/app/ui/WorkbenchPanel.kt @@ -16,6 +16,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.imageResource import androidx.compose.ui.unit.dp import com.github.xetra11.ck3workbench.app.NotificationsService +import com.github.xetra11.ck3workbench.app.ViewManager @Composable fun WorkbenchPanel() { @@ -27,7 +28,9 @@ fun WorkbenchPanel() { Column(Modifier.fillMaxHeight(0.8F), verticalArrangement = Arrangement.SpaceBetween) { Box( boxModifier.clickable( - onClick = { NotificationsService.notify("CLICK") } + onClick = { + ViewManager.currentView.value = ViewManager.View.CHARACTER_VIEW + } ), contentAlignment = Alignment.Companion.Center, ) { @@ -36,7 +39,9 @@ fun WorkbenchPanel() { } Box(boxModifier .clickable( - onClick = { NotificationsService.notify("CLICK 2") } + onClick = { + ViewManager.currentView.value = ViewManager.View.OTHER_VIEW + } ) ) { Image(squareImage) diff --git a/src/main/kotlin/com/github/xetra11/ck3workbench/module/character/view/CharacterModuleView.kt b/src/main/kotlin/com/github/xetra11/ck3workbench/module/character/view/CharacterModuleView.kt index 1e6694f..f4ea032 100644 --- a/src/main/kotlin/com/github/xetra11/ck3workbench/module/character/view/CharacterModuleView.kt +++ b/src/main/kotlin/com/github/xetra11/ck3workbench/module/character/view/CharacterModuleView.kt @@ -14,7 +14,3 @@ fun CharacterModuleView() { CharacterList(characterState) } } - -private fun LOG(): Logger { - return LoggerFactory.getLogger("CharacterImportWindow") -} diff --git a/src/main/kotlin/com/github/xetra11/ck3workbench/module/character/view/DynastieModuleView.kt b/src/main/kotlin/com/github/xetra11/ck3workbench/module/character/view/DynastieModuleView.kt new file mode 100644 index 0000000..7306018 --- /dev/null +++ b/src/main/kotlin/com/github/xetra11/ck3workbench/module/character/view/DynastieModuleView.kt @@ -0,0 +1,16 @@ +package com.github.xetra11.ck3workbench.module.character.view + +import androidx.compose.foundation.layout.Row +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import com.github.xetra11.ck3workbench.app.StateManager +import com.github.xetra11.ck3workbench.module.character.ui.CharacterList +import org.slf4j.Logger +import org.slf4j.LoggerFactory + +@Composable +fun DynastieModuleView() { + Row { + Text("Dyntasty stuff") + } +} diff --git a/src/main/kotlin/main.kt b/src/main/kotlin/main.kt index f5dd047..6a930d5 100644 --- a/src/main/kotlin/main.kt +++ b/src/main/kotlin/main.kt @@ -15,10 +15,12 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Menu import androidx.compose.ui.window.MenuBar import androidx.compose.ui.window.MenuItem +import com.github.xetra11.ck3workbench.app.ViewManager import com.github.xetra11.ck3workbench.app.ui.MainUiComponents import com.github.xetra11.ck3workbench.module.character.importer.CharacterScriptImporter import com.github.xetra11.ck3workbench.module.character.ui.NotificationPanel import com.github.xetra11.ck3workbench.module.character.view.CharacterModuleView +import com.github.xetra11.ck3workbench.module.character.view.DynastieModuleView import org.slf4j.Logger import org.slf4j.LoggerFactory import java.awt.FileDialog @@ -62,7 +64,11 @@ fun main() = invokeLater { ) { Column(Modifier.fillMaxSize()) { MainUiComponents.MainLayoutRow { - CharacterModuleView() + //CharacterModuleView() + when(ViewManager.currentView.value) { + ViewManager.View.CHARACTER_VIEW -> CharacterModuleView() + ViewManager.View.OTHER_VIEW -> DynastieModuleView() + } } MainUiComponents.NotificationPanelRow { NotificationPanel()