GXT ページネーションを実装するためにServiceクラスをどのように記述する必要があるかを理解するのに苦労していますRequestFactory
デモ サイトで提供されている例と、Sencha Web サイトで提供されている javadoc の例に従いましたが、両方を完全に理解することはできませんでした。
まず、ページ分割された方法でロードする必要があるサービスが返されたとしましょうList<Data>
(サーバー POJO です)。Data
これは、ページネーション メソッドを公開した Service クラスです。
class BackendService {
public List<Data> getData(int pageNumber, int pageSize) {
int f = pageNumber * pageSize;
int l = f + pageSize;
if(f > 0 && l < datas.size()) {
return datas.subList(f, l);
}
return null;
}
}
RequestFactory
見た目はこんな感じ
@Service(value=BackendService.class, locator=BackendServiceLocator.class)
interface BackendRequestContext extends RequestContext {
Request<List<DataProxy>> getData(int pageNumber, int pageSize);
}
BackendRequestContext context();
}
ページングは次のような実装をGrid
期待していますDataProxy
DataProxy<PagingLoadConfig, PagingLoadResult<com.emc.test.client.model.DataProxy>> proxy = new RequestFactoryProxy<PagingLoadConfig, PagingLoadResult<com.emc.test.client.model.DataProxy>>() {
@Override
public void load(PagingLoadConfig loadConfig, Receiver<? super PagingLoadResult<com.emc.test.client.model.DataProxy>> receiver) {
int pageNum = loadConfig.getOffset();
int pageSize = loadConfig.getLimit();
Request<List<com.emc.test.client.model.DataProxy>> request = backendRequestFactory.context().getData(pageNum, pageSize);
request.fire(receiver);
}
};
上記のload
方法では、この行でコンパイルエラーが発生しています
request.fire(receiver);
Receiver
と予想されるため
Receiver<? super PagingLoadResult<com.emc.test.client.model.DataProxy>>
誰でも私を助けてくれますか
- サービスメソッドはどのように実装すればよいですか?
- サービス自体から
PagingLoadResult
ではなく、戻る必要がありますか?List
はいの場合、どのように?
このスレッドにお時間をいただきありがとうございます。