如何将对象列表绑定到GWT中的ListBox?

时间:2013-02-25 13:19:56

标签: gwt

我想将我的服务绑定到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);
}
}

我没有收到任何错误,但我认为我必须使用ListEditorCompositeEditor。但我不知道。任何人都可以建议如何将Service绑定到ListBox

1 个答案:

答案 0 :(得分:0)

ListBox假设是LeafValueEditor。从概念上讲,我们不会编辑ListBox中的列表。而是我们从列表中选择一个值,该值将显示在选择中。因此,ListBox只保存一个值,因此ListBox必须是叶值编辑器。

目前没有GWT支持将列表直接绑定到ListBox。我们必须编写一个扩展ListEditor的适配器(有关更多详细信息,请参阅HasDataEditor类)。这种方法很奇怪。

简单的方法是编写一个实现LeafValueEditor&lt;的适配器。列表&lt;字符串&gt;取代。在适配器的setValue方法中,我们应该迭代列表并为列表中的每个值调用listBox.addItem。

我不推荐任何一种方法,因为ListBox的LIST is NON EDITABLE只有VALUE is EDITABLE。我建议手动执行addItems而不使用编辑器。

更新:HasDataAdapter是一个示例ListEditor。参考该实施。你可能会有所了解。