``` class ReadFilesRequest(val file: File) : FXEve...
# tornadofx
a
Copy code
class ReadFilesRequest(val file: File) : FXEvent(EventBus.RunOn.BackgroundThread)

class MainView : View() {
    private val testGenerator: FXTestGenerator by inject()
    val consolePath = System.getProperty("os.name") + " ~ " + System.getProperty("user.name") + ": "
    lateinit var console: ListView<String>
    lateinit var overlay: HBox

    init {
        subscribe<ReadFilesRequest> { event ->
            testGenerator.walk(event.file.absolutePath)
        }
    }

    override val root = stackpane {
        vbox {
            stackpane {
                ...
                console = listview {
                    items.add(consolePath)
                    subscribe<PrintFileToConsole> { event ->
                        writeFileToConsole(event.file, event.textFile)
                    }
                }
            }

            button("Upload your project.") {
                setOnAction {
                    chooseDirectory {
                        title = "Choose a TornadoFX Project"
                        initialDirectory = File(System.getProperty("user.home"))
                    }?.let {
                        console.items.clear()
                        console.items.add("SEARCHING FILES...")
                        fire(ReadFilesRequest(it))
                        askUserDialog()
                    }
                }
            }

        }.addClass(Styles.main)
    }

    private fun writeFileToConsole(file: String, fileText: String) {
        ...
    }

}