[Editor] Create scaffolding for query result table view

This commit is contained in:
2021-03-25 12:10:53 +01:00
parent 802ccadcca
commit 39efbe6faa
7 changed files with 67 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
package com.bartlomiejpluta.base.editor.database.model
class Query {
}

View File

@@ -1,6 +1,7 @@
package com.bartlomiejpluta.base.editor.database.view.list
import com.bartlomiejpluta.base.editor.database.component.SQLElementCell
import com.bartlomiejpluta.base.editor.database.model.Query
import com.bartlomiejpluta.base.editor.database.model.SQLDatabase
import com.bartlomiejpluta.base.editor.database.model.SQLElement
import com.bartlomiejpluta.base.editor.database.model.SQLTable
@@ -104,6 +105,8 @@ class TablesListView : View() {
println()
}
mainController.openQuery(Query())
}
refresh()

View File

@@ -0,0 +1,14 @@
package com.bartlomiejpluta.base.editor.database.view.query
import com.bartlomiejpluta.base.editor.main.component.EditorFragment
import javafx.scene.input.KeyEvent
class QueryResultFragment : EditorFragment() {
private val editorView = find<QueryResultView>()
override val root = editorView.root
override fun handleShortcut(event: KeyEvent) {
}
}

View File

@@ -0,0 +1,13 @@
package com.bartlomiejpluta.base.editor.database.view.query
import tornadofx.View
import tornadofx.borderpane
import tornadofx.toolbar
class QueryResultView : View() {
override val root = borderpane {
top = toolbar {
}
}
}

View File

@@ -0,0 +1,7 @@
package com.bartlomiejpluta.base.editor.database.viewmodel
import com.bartlomiejpluta.base.editor.database.model.Query
import tornadofx.ItemViewModel
class QueryVM(query: Query) : ItemViewModel<Query>(query) {
}

View File

@@ -9,6 +9,8 @@ import com.bartlomiejpluta.base.editor.code.model.Code
import com.bartlomiejpluta.base.editor.code.model.CodeScope
import com.bartlomiejpluta.base.editor.code.viewmodel.CodeVM
import com.bartlomiejpluta.base.editor.command.context.UndoableScope
import com.bartlomiejpluta.base.editor.database.model.Query
import com.bartlomiejpluta.base.editor.database.viewmodel.QueryVM
import com.bartlomiejpluta.base.editor.entityset.view.importing.ImportEntitySetFragment
import com.bartlomiejpluta.base.editor.entityset.viewmodel.EntitySetAssetDataVM
import com.bartlomiejpluta.base.editor.event.SelectMainViewTabEvent
@@ -118,6 +120,16 @@ class MainController : Controller() {
}
}
fun openQuery(query: Query) {
openItem<Query, Scope>({ false }, {}) {
val vm = QueryVM(query)
val scope = Scope()
setInScope(vm, scope)
scope to query
}
}
private inline fun <reified T, S : Scope> openItem(
findItem: (item: T) -> Boolean,
updateExistingScope: (S) -> Unit = {},

View File

@@ -6,7 +6,10 @@ import com.bartlomiejpluta.base.editor.code.view.build.BuildLogsView
import com.bartlomiejpluta.base.editor.code.view.editor.CodeEditorFragment
import com.bartlomiejpluta.base.editor.code.view.list.ScriptFilesView
import com.bartlomiejpluta.base.editor.code.viewmodel.CodeVM
import com.bartlomiejpluta.base.editor.database.model.Query
import com.bartlomiejpluta.base.editor.database.view.list.TablesListView
import com.bartlomiejpluta.base.editor.database.view.query.QueryResultFragment
import com.bartlomiejpluta.base.editor.database.viewmodel.QueryVM
import com.bartlomiejpluta.base.editor.event.AppendBuildLogsEvent
import com.bartlomiejpluta.base.editor.event.AppendProcessLogsEvent
import com.bartlomiejpluta.base.editor.event.SelectMainViewTabEvent
@@ -175,6 +178,17 @@ class MainView : View("BASE Game Editor") {
}
}
is Query -> {
val vm = QueryVM(item)
setInScope(vm, scope)
EditorTab(find<QueryResultFragment>(scope), FontIcon("fa-table")).apply {
text = "SQL Query"
setOnClosed { mainController.openItems.remove(scope) }
}
}
else -> throw IllegalStateException("Unsupported tab item")
}