0

GWTMultiWordSuggestOracleについて質問があります...

私が見た例によると、オラクルにデータを取り込むには、フロントエンドにデータをロードする必要があります。

private MultiWordSuggestOracle oracleProducts = new MultiWordSuggestOracle();
oracleProducts.clear();
for (ProductDTO product : products) {
    oracleProducts.add(product.getDescription());
}
....
productTextBox = new WatermarkedTextBox();
new SuggestBox(oracleProducts, productTextBox)

ページにオートコンプリート付きのこれらのテキストフィールドが10個あり、それぞれが100以上の文字列で埋められるとすぐに、特に低速のインターネット接続では、処理が少し遅くなります。

オートコンプリートフィールドにデータを事前入力する必要がない、または検索を行うためにバックエンドにリクエストを送信するoracle / Suggestboxの代替手段はありますか?

4

3 に答える 3

2

SuggestOracle.requestSuggestionsそこでバックエンドへのRPC/RequestFactory/REST呼び出しを実装して実行する必要があります。

これは、バックエンドへのREST呼び出しを行うことによって連絡先提案ボックスを実装した方法です:

@Override
public void requestSuggestions(final Request request, final Callback callback) {
    SearchCriteria criteria = new SearchCriteria(request.getQuery());
    criteria.setPageSize(request.getLimit());
    RestClientFactory.getContactClient().search(criteria,
            new Result<SearchResult<Contact>>() {

                @Override
                public void onFailure(Throwable caught) {
                }

                @Override
                public void onSuccess(SearchResult<Contact> result) {
                    Response resp = new Response();
                    resp.setMoreSuggestions(!result.isLastPage());
                    resp.setSuggestions(ContactMultiWordSuggestion.fromContacts(result.getList()));
                    callback.onSuggestionsReady(request, resp);
                }
            });
}
于 2012-11-10T16:37:47.007 に答える
1

どのように実装するかは自由SuggestOracleです。

非推奨になった GWT-Incubator プロジェクトには、簡単にコピーして適応できるRPC を使用した例があります。

于 2012-11-10T10:45:14.450 に答える
0

SuggestBoxインスタンスにsetLimit()を使用してみてください。これで作業が完了します。

于 2012-11-10T10:10:14.220 に答える