2

問題は次のとおりです。私には Bean があり、この Bean には enum プロパティがあります。

enum E {
    ONE, TWO, THREE;
}

class A implements Serializable {
    public E foo;
}

GWT Editor フレームワークを使用して、ユーザーがこの Bean を編集できるようにしたい

public class P extends FlowPanel implements Editor<A> {
    // ... UiBinder code here ...
    @UiField RadioButton one, two, three;
    // ...
}

エラーが発生しました:

[エラー] [gwtmodule] - プロキシ タイプ com.company.A のパス 1 のゲッターが見つかりませんでした

[エラー] [gwtmodule] - プロキシ タイプ com.company.A でパス 2 のゲッターが見つかりませんでした

[エラー] [gwtmodule] - プロキシ タイプ com.company.A のパス 3 のゲッターが見つかりませんでした

GWT 2.2 でこれを機能させる方法はありますか?

4

2 に答える 2

1

問題は列挙型ではありません。コンパイラは、uiFields 1、2、および3に対応するBeanのようなgetterメソッドを探しています。RadioButtonは、IsEditor<LeafValueEditor<java.lang.Boolean>>インターフェイスを実装するときにブールプロパティにマップされます。

これにより、サンプルコードが機能するはずですが、明らかに非常に柔軟なソリューションではありません。

class A implements Serializable {
    public E foo;
    public Boolean getOne() {return foo==E.ONE;}
    public Boolean getTwo() {return foo==E.TWO;}
    public Boolean getThree() {return foo==E.THREE;}
}

ラジオボタンのグループを単一の列挙型プロパティ(および対応するゲッター/セッター)にマップするには、ラジオボタングループをラップし、タイプEの値を返す独自のエディターを実装する必要があります。次のようなインターフェイスを実装する必要があります。IsEditor<LeafValueEditor<E>>

GWTグループに関する関連する議論があります

于 2011-02-13T16:24:07.977 に答える