0

サービスを ListBox にバインドしたいのですが、バインドできません。
//サービスクラス

 public class Service {
    private String serviceName;

    public Service(String serviceName) {

        this.serviceName = serviceName;
    }

    public String getServiceName() {
        return serviceName;
    }

    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }

    }

// SignUpBean クラス

  public class SignUpBean {
        private List<Service> services;

    public List<Service> getServices() {
        return services;
    }

    public void setServices(List<Service> services) {
        this.services = services;
    }
}

以下は私のメインエディターです

public class SignUpEditor extends SimplePanelimplements Editor<SignUpBean> {

    public ListBox services;
public void SignUpEditor (){
services.addItem("Service1");
    services.addItem("Service2");
setWidget(services);
}
}

ListEditorエラーは発生していませんが、またはを使用する必要があると思いますCompositeEditor。しかし、私はそれについて知りません。誰でもバインド方法を提案できますServiceListBox

4

1 に答える 1

0

ListBox は LeafValueEditor であると仮定します。概念的には、ListBox 内のリストは編集しません。むしろ、選択に表示されるリストから値を選択します。そのため、ListBox は 1 つの値のみを保持するため、ListBox はリーフ値 Editor である必要があります。

現在、リストを ListBox に直接バインドするための GWT サポートはありません。ListEditor を拡張するアダプターを作成する必要があります (詳細については、HasDataEditor クラスを参照してください)。このアプローチは奇妙です。

簡単な方法は、LeafValueEditor< List < String > > を実装するアダプターを作成することです。アダプターの setValue メソッドでは、リストを繰り返し処理し、リスト内の値ごとに listBox.addItem を呼び出す必要があります。

ListBox のLIST is NON EDITABLEand onlyという理由だけで、どちらのアプローチもお勧めしませんVALUE is EDITABLE。エディターを使用せずに addItems を手動で行うことをお勧めします。

UPDATED : HasDataAdapter は ListEditor の例です。その実装を参照してください。あなたはいくつかのアイデアを得るかもしれません。

于 2013-02-25T13:54:45.397 に答える