我的数据模型不是使用Bean模型对象,而是建立在HashMap容器中的Key-Value对上.
有没有人有一个GXT的Grid ValueProvider和PropertyAccess的例子,它将与底层Map一起使用?
它没有内置的,但很容易建立自己的.查看此博客文章,了解类似的思维方式,尤其是ValueProvider部分:http://www.sencha.com/blog/building-gxt-charts
a的目的ValueProvider是在一些对象中读取和写入值的简单反射机制.这样做的目的PropertyAccess<T>是根据Java Beans(一种非常常见的用例)上的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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,为要读出的每个键构建其中一个,并将其传递给ColumnConfig实例或其他任何可能期望的键.
重点是,ValueProvider它只是一个界面,可以任何你喜欢的方式实现.