import javafx.scene.control.TreeItem
import javafx.scene.control.TreeView
import javafx.scene.layout.Priority
import tornadofx.*
class MainView26 : View("tornadofx入门26_treeview_增加删除修改") {
val companies = (1..2).map {
Company("Company$it")
}
val obj = objectProperty<Any>()
lateinit var tv: TreeView<Any>
init {
companies.forEach { company ->
company.departments.setAll((1..2).map {
Department("${company.name}-Department$it")
})
company.departments.forEach { department ->
department.staffs.setAll((1..3).map {
Staff("${department.name}-Staff$it")
})
}
}
}
override val root = borderpane {
center = vbox {
treeview<Any> {
tv = this
root = TreeItem(Company("all"))
populate { parent ->
parent.isExpanded = true
val itemValue = parent.value
when {
parent == root -> companies
itemValue is Company -> itemValue.departments
itemValue is Department -> itemValue.staffs
else -> null
}
}
bindSelected(obj)
obj.onChange {
// println(it)
}
cellFormat {
text = when (it) {
is Company -> it.name
is Department -> it.name
is Staff -> it.name
else -> null
}
}
vgrow = Priority.ALWAYS
}
}
setPrefSize(1000.0, 700.0)
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。