2

私のデータ モデルは、Bean モデル オブジェクトを使用するのではなく、HashMap コンテナー内のキーと値のペアに基づいて構築されています。

基になるマップで動作する GXT の Grid ValueProvider と PropertyAccess の例はありますか?

4

1 に答える 1

8

組み込まれていませんが、独自に作成するのは簡単です。同様の考え方、特にValueProviderセクションについては、このブログ投稿を確認してください:http ://www.sencha.com/blog/building-gxt-charts

aの目的は、ValueProviderあるオブジェクトの値を読み書きするための単純な反射のようなメカニズムになることです。thenの目的はPropertyAccess<T>、Java Beansで見られるように、ゲッターとセッターに基づいてこれらの値/モデルキー/ラベルプロバイダーインスタンスの一部を自動生成することです。これは非常に一般的なユースケースです。それ以上に複雑なことはありません。これは、コンパイラに非常に簡単な定型コードを実行するように依頼する方法にすぎません。

そのブログ投稿が示すように、インターフェースを実装するだけで、ValueProviderを非常に簡単に構築できます。これは、を読み取るものを作成する方法の簡単な例ですMap<String, Object>。各インスタンスを作成するときは、どのキーを使用しているか、およびその値を読み取るときに検出する必要があるデータのタイプを指定します。

public class MapValueProvider<T> implements 
            ValueProvider<Map<String, Object>, T> {
    private final String key;
    public MapValueProvider(String key) {
        this.key = key;
    }

    public T getValue(Map<String, Object> object) {
        return (T) object.get(key);
    }
    public void setValue(Map<String, Object> object, T value) {
        object.put(key, value);
    }

    public String getPath() {
        return key;
    }
}

次に、読み取りたいキーごとにこれらの1つを作成し、ColumnConfigインスタンスまたはその他の期待されるものに渡すことができます。

ただし、重要な点は、これValueProviderは単なるインターフェイスであり、任意の方法で実装できるということです。

于 2012-12-13T20:08:52.890 に答える