class MainView : View("Data Event Table") { val ctrl: MyController by inject() override val root = vbox { tableview(ctrl.myList) { column("Value", String::class) { value { it.value } } eventbus.addEventFilter(DataEvent.LOADED) { selectionModel.select(0) requestFocus() } } button("Load data") { setOnAction { runAsync { ctrl.loadData() } } } } }