Map的GXT Grid ValueProvider / PropertyAccess <k,v> Datastore?</k,v>

时间:2012-12-13 19:55:27

标签: gxt datastore

我的数据模型不是使用Bean模型对象,而是建立在HashMap容器​​中的Key-Value对上。

有没有人有一个GXT的Grid ValueProvider和PropertyAccess的例子可以使用基础Map?

1 个答案:

答案 0 :(得分:8)

它没有内置的,但很容易建立自己的。查看此博客文章,了解类似的思维方式,尤其是ValueProvider部分:http://www.sencha.com/blog/building-gxt-charts

ValueProvider的目的是在一些对象中读取和写入值的简单反射机制。 PropertyAccess<T>的目的是基于Java Bean上的getter和setter自动生成其中一些值/ modelkey / label提供程序实例,这是一个非常常见的用例。它没有那么复杂,它只是一种简单地让编译器为你做一些非常简单的样板代码的方法。

正如该博客文章所示,只需实现界面即可轻松构建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;
    }
}

然后,您为要读出的每个键构建其中一个,并将其传递给ColumnConfig实例或其他任何可能期望的实例。

重点是ValueProvider只是一个界面,可以用你喜欢的任何方式实现。