Vaadin 7 を使い始めました。Vaadin 7 を介して多くのエンティティ フォームとテーブルを簡単に作成したいと考えています。
そして私の質問は コードを持っている
package com;
import com.vaadin.addon.jpacontainer.JPAContainer;
import com.vaadin.addon.jpacontainer.JPAContainerFactory;
import com.vaadin.data.fieldgroup.FieldGroup;
import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.*;
public class TestVaadinApplication extends UI {
@Override
protected void init(VaadinRequest request) {
VerticalLayout tableLayout = new VerticalLayout();
final Table table = new Table("table with data from JPAContainer");
final JPAContainer<UserEntity> userDataSource = JPAContainerFactory.makeJndi(UserEntity.class);
table.setContainerDataSource(userDataSource);
table.setSizeFull();
tableLayout.addComponent(table);
tableLayout.addComponent(new Button("add user entity", new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
final Window editEntityWindow = new Window();
editEntityWindow.setModal(true);
editEntityWindow.setClosable(true);
final FieldGroup fieldGroup = new FieldGroup(userDataSource.createEntityItem(new UserEntity()));
FormLayout formLayout = new FormLayout();
formLayout.addComponent(fieldGroup.buildAndBind("nameCaption", "name"));
formLayout.addComponent(fieldGroup.buildAndBind("loginCaption", "login"));
formLayout.addComponent(new Button("SaveEntity", new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
try {
fieldGroup.commit();
editEntityWindow.close();
table.refreshRowCache();
} catch (FieldGroup.CommitException e) {
e.printStackTrace();
Notification.show("Error!", Notification.Type.ERROR_MESSAGE);
}
}
}));
editEntityWindow.setContent(formLayout);
TestVaadinApplication.this.addWindow(editEntityWindow);
}
}));
setContent(tableLayout);
}
}
ボタンを押しても SaveEntity 何も起こらない - エンティティが追加されない。
JPAは正常に動作します。私が間違っていることは何ですか?