1

過去 5 か月間、GWT のプロトタイピングとインフラストラクチャのセットアップを行ってきました。私たちは、MVP とコマンド パターンの実装を備えたウィジェットに GXT を使用しています。ただし、現在、ライブ データベースからの autosuggest を使用して ComboBox でスパイクを実行することを検討しています。これは、MVP およびコマンド パターンの実装のフレームワークで行いたいと考えています。これを行う方法について何か考えがある人はいますか?

4

3 に答える 3

2

Command Pattern をモデルにした汎用の DispatchDataProxy を使用して解決しました。リンクをありがとう、しかし GXT のドキュメントには多くの要望が残されていますが、フレームワークは本当に素晴らしくてクールです。

ここにコードを掲載します `public class DispatchDataProxy implements DataProxy> {

@Inject
private DispatchAsync dispatch ;//= new StandardDispatchAsync(new DefaultExceptionHandler());

@Override
public void load(DataReader<ListLoadResult<X>> reader, Object loadConfig, final AsyncCallback<ListLoadResult<X>> callback) {
    if (loadConfig instanceof BasePagingLoadConfig) {
        BasePagingLoadConfig a = (BasePagingLoadConfig) loadConfig;
        Map<String, Object> map = a.getProperties();
        Object data = map.get("query");

        XCommand action = new XCommand();
        action.setX((String) data);

        dispatch.execute(action, new AsyncCallback<XResult>() {

            @Override
            public void onFailure(Throwable arg0) {
                //Log.debug("Some error:" + arg0.getMessage());
                callback.onFailure(arg0);
            }

            @Override
            public void onSuccess(XResult arg0) {
                ListLoadResult<X> list = arg0.getList();
                callback.onSuccess(list);
            }
        });
    }
}

public DispatchAsync getDispatch() {
    return dispatch;
}

public void setDispatch(DispatchAsync dispatch) {
    this.dispatch = dispatch;
}

}`

役に立つことを願っています。いくつかのコメントもおねがいします

于 2010-12-16T11:01:13.727 に答える
0

シンプルなコンボボックスの解決策を見つけて、getValue メソッドをオーバーライドしました。

    public SimpleComboBox<String> createEditableSimpleComboBox() {
        return new SimpleComboBox<String>() {

            @Override
            public SimpleComboValue<String> getValue() {
                SimpleComboValue<String> v = super.getValue();
                String raw = getRawValue();
                if ((v == null || v.getValue() == null) && raw != null && !raw.isEmpty()) {
                    v = new SimpleComboValue<String>(raw){
                        private static final long serialVersionUID = 1L;
                    };
                }
                return v;
            }
        };

    }

コンボ ボックスのデフォルト値 (ストアで定義されていない) に追加すると、メソッド getValue は null ではなくこの値を返します。

于 2013-03-22T09:56:22.113 に答える
0

ここを見ましたか?

http://www.sencha.com/examples-2/explorer.html#advancedcombobox

彼らは似たようなことを示しています。GXT の問題は、ModelData インスタンスを設定する必要があるため、DataProxy を使用したほうがよいということです。

于 2010-12-03T20:59:10.053 に答える