Cómo mostrar datos usando la vista de tree de TornadoFX

Estoy aprendiendo cómo usar kotlin y he comenzado a usar tornadoFX. Repaso la guía en un bash por aprenderla, sin embargo, no puedo entender qué se entiende en 'TreeView with Different Types'. Parece decir que debería usar la proyección en estrella, que como lo conozco cuando usas un * en la llamada.

Sin embargo, tan pronto como hago eso, TreeView dice que 'Las proyecciones no están permitidas en los arguments de tipo de funciones y properties'

Este es mi código:

class MainView: View ("") {

override val root = treeview<*> { root = TreeItem(Person("Departments", "")) cellFormat { text = when (it) { is String -> it is Department -> it.name is Person -> it.name else -> throw IllegalArgumentException("Invalid Data Type") } } populate { parent -> val value = parent.value if (parent == root) departments else if (value is Department) persons.filter { it.department == value.name } else null } } } 

Honestamente, estoy perplejo, no sé lo que estoy destinado a hacer.

Además, si alguien más pudiera proporcionarme algunos enlaces útiles para aprender tanto Kotlin como tornadoFX, sería muy apreciado 🙂

Parece que la guía es realmente incorrecta. Lo tengo funcionando usando treeview<Any> :

 data class Department(val name: String) data class Person(val name: String, val department: String) val persons = listOf( Person("Mary Hanes", "Marketing"), Person("Steve Folley", "Customer Service"), Person("John Ramsy", "IT Help Desk"), Person("Erlick Foyes", "Customer Service"), Person("Erin James", "Marketing"), Person("Jacob Mays", "IT Help Desk"), Person("Larry Cable", "Customer Service") ) val departments = persons.groupBy { Department(it.department) } override val root = treeview<Any> { root = TreeItem("Departments") cellFormat { text = when (it) { is String -> it is Department -> it.name is Person -> it.name else -> kotlin.error("Invalid value type") } } populate { parent -> val value = parent.value when { parent == root -> departments.keys value is Department -> departments[value] else -> null } } }