ModelComparer根本不起作用

时间:2012-02-27 17:00:58

标签: gxt

我遇到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。

弗朗西斯

1 个答案:

答案 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针对充满数据的商店。 我希望这有帮助。谢谢。

弗朗西斯