使用Binding表单到数据创建Vaadin表单

时间:2012-04-16 10:30:52

标签: forms data-binding user-interface vaadin

我正在尝试使用这个类使用“绑定表单到数据”来使用Vaadin创建表单:

public class Job {

    private String nom_projet;
    private String svn;
    private String planning1;
    private String planning2;
    private String goals;
}

有吸气剂和制定者。

当我尝试这一切时,一切正常:

final Form form = new Form();
Job bean = new Job();
BeanItem<Job> item = new BeanItem<Job>(bean);
form.setItemDataSource(item);

我尝试添加一个自定义字段,如“Vaadin之书”中描述的那样,所以我创建了这个类:

public class MyFieldFactory implements FormFieldFactory  {

    private static final long serialVersionUID = 1L;

    public Field createField(Item item, Object propertyId, Component uiContext) {
        Select select = new Select("goals");
        select.addItem("compiler:compile");
        select.addItem("clean install");
        select.addItem("clean");
        select.addItem("package");
        select.addItem("test");
        select.setNewItemsAllowed(true);
        return select;
    }
}

但是当我想将此陈述添加到MyApplication.java

form.setFieldFactory(new MyFieldFactory());

我得到了“setFieldFactory”下划线和3个选择:

  
      
  • ()将参数1转换为FieldFactory
  •   
  • 更改为setFirldFormFactory(...)
  •   
  • 让'MyFieldFactory'实现'FieldFactory'
  •   

当我点击:

  
      
  • 让'MyFieldFactory'实现'FieldFactory'
  •   

自定义字段未显示在表单中。

1 个答案:

答案 0 :(得分:2)

setFieldFactory方法以FieldFactory作为参数,MyFieldFactory类实现FormFieldFactory并不相同。

在Vaadin javadoc中,setFieldFactory标记为已弃用,并提示您改为使用setFormFieldFactory(FormFieldFactory formFieldFactory)

使用此方法可以解决您的问题。

问候。