2012-02-27 80 views
0

我遇到了ModelComparer的问题。这里是代码: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,既没有消息“哎。”打印在控制台上。我无法弄清楚什么是错的。我正在使用gxt-2.2.3。 TIA。

Francesco

+0

什么是MyComboElement.getId()的返回类型?字符串,int,一些其他的对象? – 2012-02-27 21:12:27

+0

对不起。我没有提到它。这是一个整数。 – Francesco 2012-02-28 09:57:27

+0

我认为您需要发布更多的代码... 这是行不通的? 'abeanmodel = mycombobox.getStore()。findModel(“id”,x.getId());' – 2012-02-28 17:29:00

回答

0

我得到了答案。特雷尔是对的。我必须发布更多的代码。 当我执行:

mycombobox.getStore().findModel(x); 

检查我BeanModel x对一个空的商店。这是因为GWT的异步调用执行。要获取该代码工作我要实现一个LoadListener

现在我一定要检查我的BeanModel x里面放满了数据存储。 我希望这可以帮助。谢谢。

Francesco