如何在ext gwt中实现ModelData接口?

时间:2010-12-22 21:54:56

标签: java gwt gxt

我正在尝试在我正在处理的项目中使用EditorGrid。我在用 EditorGrid grid = new EditorGrid(...)

ClassGrade是一个对象,包含名称,成绩(作为成绩对象)和课程的学分。

但是,ClassGrade必须实现ModelData。当我尝试实现接口时,有一些方法我不确定如何正确实现。

@Override
public <X> X get(String property) {
    if (property.equals("name"))
        return this.getClassName();
    if (property.equals("hours"))
        return this.getHours();
    if (property.equals("grade"))
        return this.getGrade();
    return null;
}

@Override
public Map<String, Object> getProperties() {
    Map<String, Object> propMap = new HashMap<String, Object>();
    propMap.put("grade", this.getGrade());
    propMap.put("hours", this.getHours());
    propMap.put("name", this.getClassName());
    return propMap;
}

@Override
public Collection<String> getPropertyNames() {
    ArrayList<String> props = new ArrayList<String>();
    props.add("grade");
    props.add("hours");
    props.add("name");
    return props;
}

@Override
public <X> X remove(String property) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public <X> X set(String property, X value) {
    // TODO Auto-generated method stub
    return null;
}

我不知道如何处理get,remove和set方法,因为我不知道X的意思。我尝试使用

   @Override
public <X> X get(String property) {
    if (property.equals("name"))
        return this.getClassName();
    if (property.equals("hours"))
        return this.getHours();
    if (property.equals("grade"))
        return this.getGrade();
    return null;
}

但是这不起作用,因为返回不是X类型。我做错了什么,我该如何让它工作?

1 个答案:

答案 0 :(得分:1)

我也使用网格等,并将BeanModel类用于需要modelData的商店。我实现如下。

public class dto implements IsSerializable, BeanModelTag  {

....//attributes and setter getters.

}

将此对象转换为模型,如下所示;

public static <E> BeanModel toModel(E e) {
    BeanModelFactory factory = BeanModelLookup.get().getFactory(e.getClass());
    return factory.createModel(e);
}

我希望它对你有用。