ModelComparer вообще не работает - PullRequest
0 голосов
/ 27 февраля 2012

У меня проблемы с 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 голосов
/ 01 марта 2012

Я получил ответ. Террел был прав. Я должен опубликовать еще немного кода. Когда я выполню:

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 в магазине, заполненном данными. Надеюсь, это поможет. Спасибо.

Francesco

...