class BasicDetailView : View() { val controller: MainController by inject() val _checkbox = checkbox() val _passwordfield = passwordfield(controller.selectedEntry.password) val _passwordTextfield = textfield(controller.selectedEntry.password) init { _passwordfield.managedProperty().bind(_checkbox.selectedProperty().not()) _passwordfield.visibleProperty().bind(_checkbox.selectedProperty().not()) _passwordTextfield.managedProperty().bind(_checkbox.selectedProperty()) _passwordTextfield.visibleProperty().bind(_checkbox.selectedProperty()) } override val root = vbox { form { fieldset(labelPosition = VERTICAL) { field("title") { textfield(controller.selectedEntry.title) } field("username") { textfield(controller.selectedEntry.username) } field("password") { add(_passwordfield) add(_passwordTextfield) add(_checkbox) } } } } }