0
私はドメインクラスTornadoFXラッピングドメインクラスItemViewModel
class UserItem(var simpleItem: Item, var id: String, var status: String, var price: Int) {
var upperLimit: Int = 0
var lowerLimit: Int = 0
/* methods here */
}
を持っており、これらのオブジェクト
class Trades {
val saleableItems: ArrayList<UserItem> = ArrayList()
val soldAwaitingItems: ArrayList<UserItem> = ArrayList()
/* methods */
}
saleableItems
とsoldAwaitingItems
を保存するクラスは、私が表示したいTrades
内から更新されているにsaleableItems
TableView
を使用しているため、データをバインドし、pを変換せずに表示できますTornadoFXプロパティへのropertiesは、私はUserItem
ItemViewModel
から
class UserItemModel(uItem: UserItem) : ItemViewModel<UserItem>() {
val simpleItem = bind { item?.observable(UserItem::simpleItem) }
val id = bind { item?.observable(UserItem::id) }
val status = bind { item?.observable(UserItem::status) }
val price = bind { item?.observable(UserItem::price) }
val upperLimit = bind { item?.observable(UserItem::upperLimit) }
val lowerLimit = bind { item?.observable(UserItem::lowerLimit) }
init {
item = uItem
}
}
を包んだ私は
class TradesModel : ItemViewModel<Trades>() {
val saleableItems: ObservableList<UserItemModel>
val soldAwaitingItems: ObservableList<UserItemModel>
}
のようなものを持っているようItemViewModel<Trades>
にTrades
をラップして、View
class TradesView : View("My View") {
val tradesModel: TradesModel by inject()
tableview(tradesModel.saleableItems) {
column("Name", UserItemModel::simpleItem)
column("Price", UserItemModel::price)
column("Lower limit", UserItemModel::lowerLimit)
column("Upper limit", UserItemModel::upperLimit)
}
}
でそれを使用する方法はあります