Articles of tornadofx

En TornadoFX, ¿cómo puedo vincular las properties de BigDecimal a otra propiedad de BigDecimal usando objectBinding?

BigDecimal crear una propiedad BigDecimal que sea un cálculo de otras dos características BigDecimal , como esta: val caculatedProperty: ObjectProperty<BigDecimal> = objectBinding<Any, BigDecimal>(sumProperty, discountProperty) { … } … como lo haría con StringProperty o IntegerProperty , y de lo contrario funcionaría sin problemas. Sin embargo, esta vez obtengo una discrepancia de types: espera ObjectProperty<BigDecimal> , […]

CellCache se representa inesperadamente en TableView con tornadoFX

Simplemente me desconcertó el uso de TornadoFX en TornadoFX con Kotlin . El renderizado siempre es extraño e inesperado, ¿qué pasa con eso? El código está aquí: data class Person(var name : String, var age : Int, var sex : Boolean) class MyView: View() { val list = listOf<Person>( Person("Name A", 20, false), Person("Name B", […]

¿Cómo cancelar la suscripción a events en TornadoFX?

En TornadoFX quiero cancelar la suscripción a un evento personalizado para que el receptor nunca vuelva a manejar los events innecesarios, y tal vez evitar algo como pérdidas de memory, sin embargo, cuando uso el método de unsubscribe<MyEvent> en mi código, no funciona en absoluto . Aquí está la parte de mi código: object MyEventObj: […]

Cómo implementar TornadoFX WebEngine Callback en Kotlin

Estoy usando Kotlin TornadoFX para crear un browser. Cuando implemento WebEngine setCreatePopupHandler, aparece un error: e: surfing \ src \ surfing.kt: (76, 13): el modificador 'anular' no es aplicable a 'function local' e: surfing \ src \ surfing.kt: (76, 13): ¡esperaba un valor de tipo WebEngine! Hice reference a este código Java usando JavaFX: webEngine.setCreatePopupHandler( […]

TornadoFX cómo agregar validation al editar TableView

Considere el siguiente ejemplo: class Item(name: String, number: Int) { val nameProperty = SimpleStringProperty(name) var name by nameProperty val numberProperty by lazy { SimpleIntegerProperty(number) } var number by numberProperty } class MainView : View("Example") { val items = listOf(Item("One", 1), Item("Two", 2)).observable() override val root = vbox { tableview(items) { column("Name", Item::nameProperty).makeEditable() column("Number", Item::numberProperty).makeEditable(NumberStringConverter()) enableCellEditing() […]

Context de reinicio de JavaFX

Estoy trabajando en un videojuego que networkingibuja cada 1/60 de segundo usando Kotlin y TornadoFX / JavaFX. Actualmente, mi progtwig se vuelve a dibujar al establecer el background en blanco y dibujar sobre él. Sin embargo, preferiría algo que sea un poco más limpio. Así es como lo estoy dibujando actualmente: private fun drawShapes(gc: GraphicsContext) […]

Dibujando líneas desde ViewModel TornadoFX

Así que obtuve un ViewModel que contiene Líneas (esto es, objects de 2 puntos que tienen una doble propiedad xey). Quiero vincular esto a un canvas o algo así. Además, podría ser que las líneas no se agreguen de forma incremental al ViewModel, sino todo al mismo time (por ejemplo, al cargar un file externo […]

TornadoFX – Creación de un layout MVP

Hola, soy nuevo en el uso de TornadoFX y me preguntaba cuál sería el mejor layout para una estructura de MVP con TornadoFX. En MVP la vista: -> delegaría todos los events, como hacer clic en un button a una function en el presentador -> no interactúa con el model Estas son algunas de las […]

Crea una vista arbitraria

Entonces, tengo un caso en el que necesito tener N filas en forma de: Label TextView/Checkbox . Tal vez tendré que tener más que esos dos puntos de vista, así que quiero ser capaz de soportar cualquier cosa que sea TornadoFx View . Creé una interfaz que tiene un método que devuelve TornadoFx View y […]

preguntas sobre DI, ViewModel, etc.

Tengo el siguiente código: class ExampleView :View("My Example view") { val model:ExampleModel by inject() override val root= vbox { textfield(model.data) button("Commit") { setOnAction { model.commit() closeModal() } } button("Rollback") { setOnAction { model.rollback() closeModal() } } button("Just quit") { setOnAction { closeModal() } } } } class Example() { var data by property<String>() fun dataProperty() […]