如何观察griffon中glazedlists的变化?
How to observe changes in glazedlists in griffon?
我有一个带有 glazedlist 的 griffon 1.5 应用程序,我试图从中观察变化并将其 size() 绑定到视图中的字段..
在我的模型中我有
@Bindable timeslotPicks = 0
@Bindable
@PropertyListener (tableChanged) EventList<ProductionLineEntry> table =
new BasicEventList<ProductionLineEntry>() ....
.. 和
def tableChanged = {evt->
println "table Changed ... "
setTimeslotPicks(table.size())
}
唉,我的 tableChanged 事件没有触发。我如何才能将视图字段绑定到我的 glazedlist 的当前大小?提前致谢..
问题是您正在观察对 table
字段所做的更改,而不是您预期的 table
字段的内容。换句话说,您编写的代码(tableChanged
闭包)会在 bean.table
更新时做出反应,例如,当一个新的 EventList
分配给该字段时。
您必须编写 ListChangeListener
以使列表更改适应列表大小。
我重新调整了我的模型..
EventList<ProductionLineEntry> table =
new BasicEventList<ProductionLineEntry>()
...
并删除了我的 tablechanged 支票..
在我的 mvcInit 控制器方法中,我添加了 ..
// Add a listener to my list ..
model.table.addListEventListener(
{e-> model.timeslotPicks = model.table.size()} as ListEventListener
)
现在效果很好..
谢谢
我有一个带有 glazedlist 的 griffon 1.5 应用程序,我试图从中观察变化并将其 size() 绑定到视图中的字段..
在我的模型中我有
@Bindable timeslotPicks = 0
@Bindable
@PropertyListener (tableChanged) EventList<ProductionLineEntry> table =
new BasicEventList<ProductionLineEntry>() ....
.. 和
def tableChanged = {evt->
println "table Changed ... "
setTimeslotPicks(table.size())
}
唉,我的 tableChanged 事件没有触发。我如何才能将视图字段绑定到我的 glazedlist 的当前大小?提前致谢..
问题是您正在观察对 table
字段所做的更改,而不是您预期的 table
字段的内容。换句话说,您编写的代码(tableChanged
闭包)会在 bean.table
更新时做出反应,例如,当一个新的 EventList
分配给该字段时。
您必须编写 ListChangeListener
以使列表更改适应列表大小。
我重新调整了我的模型..
EventList<ProductionLineEntry> table =
new BasicEventList<ProductionLineEntry>()
...
并删除了我的 tablechanged 支票..
在我的 mvcInit 控制器方法中,我添加了 ..
// Add a listener to my list ..
model.table.addListEventListener(
{e-> model.timeslotPicks = model.table.size()} as ListEventListener
)
现在效果很好..
谢谢