我遇到ModelComparer问题。这是代码:
mycombobox.getStore().setModelComparer(new ModelComparer<BeanModel>() {
@Override
public boolean equals(BeanModel m1, BeanModel m2) {
System.out.println("HEY.");
if(m1 == null) return false;
if(m2 == null) return false;
return (((mycomboelement)m1.getBean()).getId()==((mycomboelement)m2.getBean()).getId());
}
});
我定义的ModelComparer根本不起作用。当我打电话
abeanmodel = mycombobox.getStore().findModel(x);
变量abeanmodel
始终为null
,消息“HEY”。打印在控制台上。我无法弄清楚出了什么问题。我正在使用gxt-2.2.3。 TIA。
弗朗西斯
答案 0 :(得分:0)
我得到了答案。特雷尔是对的。我要发布更多代码。 当我执行:
mycombobox.getStore().findModel(x);
我在空店里检查BeanModel x
。那是因为GWT的异步调用执行。为了使代码正常工作,我必须实现LoadListener
:
mycombobox.getStore().getLoader().addLoadListener(new LoadListener(){
@Override
public void loaderLoad(LoadEvent le) {
abeanmodel = mycombobox.getStore().findModel(x);
}
});
现在我肯定会检查我的BeanModel x
针对充满数据的商店。
我希望这有帮助。谢谢。
弗朗西斯