У меня есть ListGrid, который использует DataSource. Используя документацию . Я предоставил свою собственную реализацию для загрузки данных источника данных:
protected Object transformRequest(DSRequest dsRequest) {
// My custom class that loads the data
this.dataLoader.startLoading(this.getID(), new AsyncCallbackTableData() {
@Override
public void onFailure(Throwable caught) {
final DSResponse response = new DSResponse(
"",
DSOperationType.FETCH
);
// As per docs, -1 is correct error status
response.setStatus(-1);
errors.put("ERROR", caught.getMessage());
response.setErrors(errors);
// Process response, as per docs
MyDataSource.this.processResponse(
dsRequest.getRequestId(),
response
);
}
@Override
public void onSuccess(ArrayList<Record> result) {
/// stripped for brevity
}
});
return new Object();
}
Теперь вы видите обратный вызов моего кода загрузки данных. Когда данные загружаются, я предоставляю данные MyDataSource.this.processResponse
, и они работают хорошо. Тем не менее, в ветке ошибок обратного вызова, я не знаю, как передать сообщение об ошибке пользователю. Он понимает response.setStatus(-1)
как ошибку, но нет поля для сообщения об ошибке.
Как указать сообщение об ошибке в DSResponse
?