有没有办法在tornadofx中将属性绑定到appConfig?

时间:2017-09-15 12:14:02

标签: kotlin tornadofx

假设我想在tornadofx中使用appConfig保存视图的高度和宽度值。无论如何我可以将这些属性绑定到appConfig,这样当我保存配置时,将始终保存最新的高度和宽度值?

1 个答案:

答案 0 :(得分:3)

如果您要执行的操作是保存Window的当前宽度/高度并在View再次停靠时恢复,则可以覆盖onDock以在那里执行两项操作:

override fun onDock() {
    if (config["w"] != null && config["h"] != null) {
        currentWindow?.apply {
            width = config.double("w")!!
            height = config.double("h")!!
        }
    }

    currentWindow?.apply {
        Bindings.add(widthProperty(), heightProperty()).onChange {
            with (config) {
                put("w", width.toString())
                put("h", height.toString())
                save()
            }
        }
    }
}