このクラスで「フォームをデータにバインド」を使用して、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);
「Book of 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」を実装させます
カスタム フィールドはフォームに表示されません。