GWT,Enum,RadioButton和Editors框架

Ant*_*nio 2 java gwt gwt2

这是问题:我有一个bean,这个bean有一个枚举属性:

enum E {
    ONE, TWO, THREE;
}

class A implements Serializable {
    public E foo;
}
Run Code Online (Sandbox Code Playgroud)

我想使用GWT Editor框架让用户编辑这个bean

public class P extends FlowPanel implements Editor<A> {
    // ... UiBinder code here ...
    @UiField RadioButton one, two, three;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

[错误] [gwtmodule] - 在代理类型com.company.A中找不到路径1的getter

[错误] [gwtmodule] - 无法在代理类型com.company.A中找到路径二的getter

[错误] [gwtmodule] - 在代理类型com.company.A中找不到路径3的getter

有没有办法在GWT 2.2中完成这项工作?

Ant*_*nio 8

public class EnumEditor extends FlowPanel implements LeafValueEditor<E> {

    private Map<RadioButton, E> map;

    @UiConstructor
    public EnumEditor(String groupName) {
        map = new HashMap<RadioButton, E>();
        for (E e: E.class.getEnumConstants()){
            RadioButton rb = new RadioButton(groupName, e.name());
            map.put(rb, e);
            super.add(rb);
        }
    }

    @Override
    public void setValue(E value) {
        if (value==null)
            return;
        RadioButton rb = (RadioButton) super.getWidget(value.ordinal());
        rb.setValue(true);
    }

    @Override
    public E getValue() {
        for (Entry<RadioButton, E> e: map.entrySet()) {
            if (e.getKey().getValue())
                return e.getValue();
        }
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)