harshmaur
08/14/2017, 11:48 AMharshmaur
08/14/2017, 11:48 AMtableview(persons) {
column("Name", Person::nameProperty)
column("Title", Person::titleProperty)
// Update the person inside the view model on selection change
model.rebindOnChange(this) { selectedPerson ->
person = selectedPerson ?: Person()
}
}
harshmaur
08/14/2017, 11:49 AMtableview(persons) {
column("Name", PersonModel::name) // Change here ---
column("Title", PersonModel::title) // Change Here ----
// Update the person inside the view model on selection change
model.rebindOnChange(this) { selectedPerson ->
person = selectedPerson ?: Person()
}
}
harshmaur
08/14/2017, 11:49 AMedvin
08/14/2017, 11:51 AMharshmaur
08/14/2017, 11:51 AMharshmaur
08/14/2017, 11:52 AMedvin
08/14/2017, 11:52 AMname
would be a propertyedvin
08/14/2017, 11:52 AMedvin
08/14/2017, 11:53 AMedvin
08/14/2017, 11:54 AMedvin
08/14/2017, 11:55 AMharshmaur
08/14/2017, 11:57 AMedvin
08/14/2017, 11:57 AMharshmaur
08/14/2017, 11:59 AMharshmaur
08/14/2017, 11:59 AMedvin
08/14/2017, 1:49 PMharshmaur
08/14/2017, 1:50 PMharshmaur
08/14/2017, 1:50 PMharshmaur
08/14/2017, 1:50 PMedvin
08/14/2017, 1:56 PMharshmaur
08/14/2017, 2:05 PMclass Note(text: String? = null) {
// val id = UUID.randomUUID()
val textProperty = SimpleStringProperty(text)
var text by textProperty
}
class NoteModel(var note: Note) : ItemViewModel<Note>() {
val text = bind(autocommit = true) {
note?.textProperty
}
}
class Store: Controller () {
var notes = SortedFilteredList<Note>()
fun addNote(note:Note) {
notes.add(note)
}
}
class someTable: Fragment() {
val store: Store by inject()
override val root = tableview(store.notes) {
column("Text", Note::text)
}
}
class MainView : View("Note App") {
val store: Store by inject()
override val root = vbox {
this.setPrefSize(1024.0, 768.0)
button("Add Note") {
addClass(Styles.primaryButton)
setOnAction {
store.addNote(Note("Hello"))
}
}
hbox {
bindChildren(store.notes) {
val note = NoteModel(Note(it.text))
textfield(it.text)
}
}
hbox {
add(find(someTable::class))
}
}
}
harshmaur
08/14/2017, 2:05 PMharshmaur
08/14/2017, 2:05 PMharshmaur
08/14/2017, 2:05 PMharshmaur
08/14/2017, 2:06 PMharshmaur
08/14/2017, 2:06 PMharshmaur
08/14/2017, 2:07 PMharshmaur
08/14/2017, 2:07 PMedvin
08/14/2017, 2:10 PM