Как прослушать кнопку "Сохранить" или назначить событие после его нажатия в Vaadin 7
когда я редактирую встроенную сетку, я могу сохранить или отменить изменения строки сетки. Я хочу обновить свои записи в базе данных после нажатия кнопки "сохранить" (механизм базы данных уже выполнен) как я могу его реализовать?
мой контейнер:
BeanItemContainer<CategoryOfService> beansContainer;
посмотреть редактирования :
все, что мне нужно, это знать, какие слушатели я должен использовать. Я нашел некоторые CommitHandler что я могу добавить по классу EditorFieldGroup но я не могу ее реализовать правильно, может есть у к другой способ решить проблему.
3 ответов
есть своего рода способ захватить inline Save
нажимаете на сетку.
grid.getEditorFieldGroup().addCommitHandler(new FieldGroup.CommitHandler() {
@Override
public void preCommit(FieldGroup.CommitEvent commitEvent) throws FieldGroup.CommitException {
//...
}
@Override
public void postCommit(FieldGroup.CommitEvent commitEvent) throws FieldGroup.CommitException {
//...
}
});
после нажатия Save
вызываются оба метода preCommit и postCommit.
надеюсь, что это помогает :)
Grid в настоящее время не дает вам прямого способа добавления прослушивателей к кнопкам сохранения и отмены для встроенного редактора, хотя это может измениться в Vaadin 7.6.
в качестве обходного пути, прежде чем это произойдет, подход CommitHandler, который вы уже упомянули, все еще должен работать. Вы можете найти основной пример здесь. Содержимое вашего BeanItemContainer должно быть полностью обновлено на этапе postCommit.
grid.getEditor().addSaveListener((EditorSaveListener<Product>) event -> {
//your stuf
HibernateDataSource.updateProduct(event.getBean());
});