【问题标题】:Create Vaadin form using Binding form to data使用将表单绑定到数据创建 Vaadin 表单
【发布时间】:2012-04-16 10:30:52
【问题描述】:

我正在尝试通过 Vaadin 使用“将表单绑定到数据”与此类创建表单:

public class Job {

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

使用 getter 和 setter。

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

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”

自定义字段未出现在表单中。

【问题讨论】:

    标签: forms data-binding user-interface vaadin


    【解决方案1】:

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

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

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

    问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-31
      • 1970-01-01
      • 2018-08-01
      • 2012-06-19
      • 1970-01-01
      相关资源
      最近更新 更多