@edvin I pulled out the mainView.update() calls in my masterbranch and also replaced the cellFactory with cellCache. TodoItemListCell is deprecated so that can be removed too
lvItems.cellCache {
model.readCache(it).root
}
I'm delegating to a model function because I have the model cleaning up the cache. If we don't care about a removed object's fragment remaining in the cache, we can decouple this.
If this looks good with you, I think the only thing left is to incorporate Ron's changes that replaced the .fxml with type safe builders.