我的数据模型不是使用Bean模型对象,而是建立在HashMap容器中的Key-Value对上。
有没有人有一个GXT的Grid ValueProvider和PropertyAccess的例子可以使用基础Map?
答案 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
只是一个界面,可以用你喜欢的任何方式实现。