diff --git a/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/controller/MiraiGraphicalUIController.kt b/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/controller/MiraiGraphicalUIController.kt index 676fc8b5a..4a6d607df 100644 --- a/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/controller/MiraiGraphicalUIController.kt +++ b/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/controller/MiraiGraphicalUIController.kt @@ -13,10 +13,7 @@ import net.mamoe.mirai.console.graphical.model.VerificationCodeModel import net.mamoe.mirai.console.graphical.view.VerificationCodeFragment import net.mamoe.mirai.console.utils.MiraiConsoleUI import net.mamoe.mirai.utils.LoginSolver -import tornadofx.Controller -import tornadofx.Scope -import tornadofx.find -import tornadofx.observableListOf +import tornadofx.* class MiraiGraphicalUIController : Controller(), MiraiConsoleUI { @@ -79,10 +76,9 @@ class MiraiGraphicalUIController : Controller(), MiraiConsoleUI { override fun createLoginSolver(): LoginSolver = loginSolver - private fun getPluginsFromConsole(): ObservableList { - // TODO - return observableListOf() - } + private fun getPluginsFromConsole(): ObservableList = + MiraiConsole.pluginManager.getAllPluginDescriptions().map(::PluginModel).toObservable() + } class GraphicalLoginSolver : LoginSolver() { diff --git a/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/PluginModel.kt b/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/PluginModel.kt index 21a59e66b..e1323901f 100644 --- a/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/PluginModel.kt +++ b/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/PluginModel.kt @@ -3,16 +3,17 @@ package net.mamoe.mirai.console.graphical.model import com.jfoenix.controls.datamodels.treetable.RecursiveTreeObject import javafx.beans.property.SimpleBooleanProperty import javafx.beans.property.SimpleStringProperty +import net.mamoe.mirai.console.plugins.PluginDescription import tornadofx.getValue import tornadofx.setValue -class PluginModel : RecursiveTreeObject() { - - val nameProperty = SimpleStringProperty(this, "nameProperty") - val name by nameProperty - - val descriptionProperty = SimpleStringProperty(this, "descriptionProperty") - val description by descriptionProperty +class PluginModel( + val name: String, + val version: String, + val author: String, + val description: String +) : RecursiveTreeObject() { + constructor(plugin: PluginDescription):this(plugin.name, plugin.version, plugin.author, plugin.info) val enabledProperty = SimpleBooleanProperty(this, "enabledProperty") var enabled by enabledProperty diff --git a/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PluginsView.kt b/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PluginsView.kt index 5b3e4d163..7351b2480 100644 --- a/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PluginsView.kt +++ b/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PluginsView.kt @@ -13,10 +13,21 @@ class PluginsView : View() { override val root = jfxTreeTableView(plugins) { columns.addAll( - JFXTreeTableColumn("插件名").apply { }, - JFXTreeTableColumn("版本").apply { }, - JFXTreeTableColumn("作者").apply { }, - JFXTreeTableColumn("介绍").apply { } + JFXTreeTableColumn("插件名").apply { + prefWidthProperty().bind(this@jfxTreeTableView.widthProperty().multiply(0.1)) + }, + JFXTreeTableColumn("版本").apply { + prefWidthProperty().bind(this@jfxTreeTableView.widthProperty().multiply(0.1)) + }, + JFXTreeTableColumn("作者").apply { + prefWidthProperty().bind(this@jfxTreeTableView.widthProperty().multiply(0.1)) + }, + JFXTreeTableColumn("介绍").apply { + prefWidthProperty().bind(this@jfxTreeTableView.widthProperty().multiply(0.6)) + }, + JFXTreeTableColumn("操作").apply { + prefWidthProperty().bind(this@jfxTreeTableView.widthProperty().multiply(0.08)) + } ) } } \ No newline at end of file