class MyDataEvent(val data: List) : FXEvent() class EventBusTestView : View("Data Event Table") { val ctrl: MyController by inject() override val root = vbox { tableview { column("Value", String::class) { value { it.value } } subscribe { items.setAll(it.data) selectionModel.select(0) requestFocus() } } button("Load data") { setOnAction { runAsync { ctrl.loadData() } } } } } class MyController : Controller() { fun loadData() { fire(MyDataEvent(listOf("Simulate", "Data", "Loaded", "From", "The", "Database"))) } }