GWT асинхронный обратный вызов (передача объекта назад) - PullRequest
0 голосов
/ 13 июля 2011

Я бы хотел написать встроенный обработчик в GWT. Например, с RequestBuilder я могу сделать что-то вроде этого (определяя код INLINE, который обрабатывает выброшенное событие):

rb.sendRequest(postData, new RequestCallback() {
@Override
public void onError(Request request, Throwable t) {
    Window.alert("Failed" + t.getMessage());
}

@Override
public void onResponseReceived(Request request, Response response) {
    Window.alert(response.getText());
}
});

Я бы хотел сделать то же самое с моей пользовательской функцией обратного вызова. И я хочу вернуть пользовательский объект. Примерно так:

Person p = new Person("bob smith", 34, "san francisco");

p.GetInfo("name", new PersonCallBack(){
    @Override
    public void onReturned(Object someData)
    {
         Window.alert(String.valueOf((String)someData));
    }  
};

p.GetInfo("age", new PersonCallBack(){
    @Override
    public void onReturned(Object someData)
    {
         Window.alert(String.valueOf((int)someData));
    }  
};

То, что я хочу сделать, довольно просто, как описано выше, но меня действительно смущает весь процесс событий и обратных вызовов GWT. Похоже, вам нужно определить несколько классов и интерфейсов и тому подобное, просто чтобы вернуть один кусок данных. Я ищу абсолютно простой способ сделать это с наименьшим количеством кода (мне не нужны пользовательские обработчики, но я хочу использовать что-то общее и просто приводить данные). Любая помощь будет оценена!

Спасибо!

1 Ответ

1 голос
/ 13 июля 2011

Взгляните на AsyncCallback может быть?

...