harshmaur
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))
}
}
}