如何观察格里芬釉面列表的变化?

时间:2015-03-19 20:37:21

标签: groovy griffon glazedlists

我有一个带有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的当前大小?提前谢谢..

2 个答案:

答案 0 :(得分:0)

问题是,您正在观察对table字段所做的更改,而不是您期望的table字段的内容。换句话说,您在tableChanged更新时所写的代码(bean.table闭包)会做出反应,例如,当为该字段分配新的EventList时。

您必须编写ListChangeListener才能使列表更改适应列表大小。

答案 1 :(得分:0)

我重新调整了我的模型..

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
    )

它现在很漂亮..

谢谢