tornadoFX togglebutton no tiene propiedad de text

Soy nuevo en kotlin y tornadoFX. En TornadoFX Guide, se puede build un ToggleButton con lo siguiente:

togglebutton("OFF").action { text = if (isSelected) "ON" else "OFF" } 

Pero cuando copio los mismos códigos en mi IDE, ¡hay errores!

códigos de guía copiados a mi IDE

Parece que no hay propiedad de text en togglebutton en tornadoFX?

Parece que estábamos un poco ansiosos por actualizar la guía con la nueva syntax .action , por lo que el ejemplo en la guía es realmente incorrecto. El código correcto sería:

 togglebutton("OFF") { action { text = if (isSelected) "ON" else "OFF" } } 

La razón por la que el ejemplo en la guía es incorrecto es que cuando llamas a togglebutton("OFF").action { .. } , entonces this dentro de la action {} es en realidad el contenedor que lo rodea en lugar del button.

Para las acciones que no operan en el button, la syntax corta está bien, pero si necesita manipular el button, necesita usar la syntax completa para que su código se ejecute en el context del button.

En otra nota, podría ser más idiomático crear un enlace de cadena para representar el estado del button, en lugar de actualizarlo manualmente en la callback de acción:

 togglebutton { val stateText = selectedProperty().stringBinding { if (it == true) "ON" else "OFF" } textProperty().bind(stateText) } 
  • TornadoFX ¿Cómo crear MDI con una list de models de windows hijas?
  • TornadoFX cómo agregar validation al editar TableView
  • Forma de configurar las properties de PrimaryStage o Scene en TornadoFX
  • TornadoFX reemplaza el layoutChildren en la región
  • CellCache se representa inesperadamente en TableView con tornadoFX
  • El text de la label no se actualiza aunque el hilo de la interfaz de usuario parece responder
  • Tornadofx Javafx - Cómo volver a cargar una vista / componente
  • ¿Hay alguna manera de vincular una propiedad a appConfig en tornadofx?
  • preguntas sobre DI, ViewModel, etc.
  • TornadoFX cómo enlazar Node style (o styleClass) a una propiedad?
  • Animación consecutiva en TornadoFX?