Replace buttonBar

This commit is contained in:
ryoii 2020-03-23 18:43:32 +08:00
parent 3fff04760d
commit bf9b06e60d
3 changed files with 41 additions and 22 deletions

View File

@ -0,0 +1,13 @@
package net.mamoe.mirai.console.graphical.util
import javafx.event.EventTarget
import javafx.geometry.Pos
import javafx.scene.layout.HBox
import tornadofx.addClass
import tornadofx.hbox
fun EventTarget.myButtonBar(alignment: Pos = Pos.BASELINE_LEFT, op: HBox.() -> Unit = {}) = hbox {
addClass("my-button-bar")
this.alignment = alignment
op()
}

View File

@ -2,6 +2,7 @@ package net.mamoe.mirai.console.graphical.view
import com.jfoenix.controls.JFXListCell import com.jfoenix.controls.JFXListCell
import javafx.collections.ObservableList import javafx.collections.ObservableList
import javafx.geometry.Pos
import javafx.scene.control.Tab import javafx.scene.control.Tab
import javafx.scene.control.TabPane import javafx.scene.control.TabPane
import javafx.scene.image.Image import javafx.scene.image.Image
@ -10,8 +11,10 @@ import javafx.stage.FileChooser
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import net.mamoe.mirai.console.graphical.controller.MiraiGraphicalUIController import net.mamoe.mirai.console.graphical.controller.MiraiGraphicalUIController
import net.mamoe.mirai.console.graphical.model.BotModel import net.mamoe.mirai.console.graphical.model.BotModel
import net.mamoe.mirai.console.graphical.util.jfxButton
import net.mamoe.mirai.console.graphical.util.jfxListView import net.mamoe.mirai.console.graphical.util.jfxListView
import net.mamoe.mirai.console.graphical.util.jfxTabPane import net.mamoe.mirai.console.graphical.util.jfxTabPane
import net.mamoe.mirai.console.graphical.util.myButtonBar
import tornadofx.* import tornadofx.*
class PrimaryView : View() { class PrimaryView : View() {
@ -104,13 +107,14 @@ private fun TabPane.logTab(
this.isClosable = closeable this.isClosable = closeable
vbox { vbox {
buttonbar { myButtonBar(alignment = Pos.BASELINE_RIGHT) {
button("导出日志").action { jfxButton("导出日志").action {
val path = chooseFile( val path = chooseFile(
"选择保存路径", "选择保存路径",
arrayOf(FileChooser.ExtensionFilter("日志", "txt")), arrayOf(FileChooser.ExtensionFilter("日志", "txt")),
FileChooserMode.Save FileChooserMode.Save,
owner = FX.primaryStage
) { ) {
initialFileName = "$text.txt" initialFileName = "$text.txt"
} }

View File

@ -1,9 +1,11 @@
package net.mamoe.mirai.console.graphical.view package net.mamoe.mirai.console.graphical.view
import javafx.geometry.Pos
import net.mamoe.mirai.console.graphical.controller.MiraiGraphicalUIController import net.mamoe.mirai.console.graphical.controller.MiraiGraphicalUIController
import net.mamoe.mirai.console.graphical.model.GlobalSettingModel import net.mamoe.mirai.console.graphical.model.GlobalSettingModel
import net.mamoe.mirai.console.graphical.util.jfxButton import net.mamoe.mirai.console.graphical.util.jfxButton
import net.mamoe.mirai.console.graphical.util.jfxTextfield import net.mamoe.mirai.console.graphical.util.jfxTextfield
import net.mamoe.mirai.console.graphical.util.myButtonBar
import tornadofx.* import tornadofx.*
import java.awt.Desktop import java.awt.Desktop
import java.io.File import java.io.File
@ -13,33 +15,33 @@ class SettingsView : View() {
private val controller = find<MiraiGraphicalUIController>() private val controller = find<MiraiGraphicalUIController>()
private val settingModel = find<GlobalSettingModel>() private val settingModel = find<GlobalSettingModel>()
override val root = form { override val root = vbox {
fieldset { myButtonBar(alignment = Pos.BASELINE_RIGHT) {
field { jfxButton("撤掉").action {
jfxButton("撤掉").action { settingModel.rollback()
settingModel.rollback() }
} jfxButton("保存").action {
jfxButton("保存").action { settingModel.commit()
settingModel.commit()
}
} }
} }
fieldset("插件目录") { form {
field { fieldset("插件目录") {
jfxTextfield((System.getProperty("user.dir") + "/plugins/").replace("//", "/")) { isEditable = false } field {
jfxButton("打开目录").action { jfxTextfield((System.getProperty("user.dir") + "/plugins/").replace("//", "/")) { isEditable = false }
(System.getProperty("user.dir") + "/plugins/").replace("//", "/").also { path -> jfxButton("打开目录").action {
Desktop.getDesktop().takeIf { it.isSupported(Desktop.Action.OPEN) }?.open(File(path)) (System.getProperty("user.dir") + "/plugins/").replace("//", "/").also { path ->
Desktop.getDesktop().takeIf { it.isSupported(Desktop.Action.OPEN) }?.open(File(path))
}
} }
} }
} }
}
fieldset("最大日志容量") { fieldset("最大日志容量") {
field { field {
jfxTextfield().bind(settingModel.maxLogNum) jfxTextfield().bind(settingModel.maxLogNum)
}
} }
} }
} }