我有一个简单的 CustomComponent,其中 Person 是一个简单的数据类,有两个字符串 TextField:name 和 sname。
这是班级:
data class Person(var name:String, var birth:LocalDate)
class PersonField : CustomField<Person>(){
private val nameField:TextField
private val birthField:DatePicker
init {
nameField = TextField().apply {
placeholder = "Name"
addValueChangeListener{updateValue()}
}
birthField = DatePicker().apply {
placeholder = "Birth"
addValueChangeListener{updateValue()}
}
add(nameField, birthField)
setWidthFull()
}
override fun setPresentationValue(person: Person?) {
if (person != null) {
nameField?.value = person.name
birthField?.value = person.birth
}
}
override fun generateModelValue(): Person {
return Person(nameField.value, birthField.value)
}
}
Run Code Online (Sandbox Code Playgroud)
这是我使用两个验证器的活页夹:
binder.forField(personField)
.withValidator({ value …Run Code Online (Sandbox Code Playgroud)