У меня есть приложение, которое широко использует редактор Framework. Прямо сейчас я нахожусь в точке, где хочу добавить новую функцию: если пользователь редактирует объект, я хотел бы записать, какие изменения были внесены, и сохранить их в отдельном объекте хранилища данных. Для этого требуется знание, было ли изменено поле, имя поля и значение, на которое оно было изменено.Редакторы GWT: как записывать изменения в полях и субредакторах? (RequestFactory?)
Это то, что я хотел бы реализовать:
- App требует редактирования (фасоль);
- Пользователь вносит изменения, вызывает flush(), и данные отправляются обратно на сервер.
- В обработчике сервера изменения из компонента отправляются на
processChanges(List<String> paths)
, который затем создает и сохраняет запись, в которой поле «foo» было изменено на «bar» и т. Д. - Сущность сохраняется, перезаписывая существующий.
Я использую GWTP и в настоящее время использую шаблон команды RPC. Я читал немного о RequestFactory, и, как я понимаю, одним из его основных преимуществ является то, что он отправляет измененные поля, известные как «deltas», обратно на сервер, чтобы свести к минимуму полезную нагрузку, поэтому мне интересно, будет ли использование RequestFactory лучше подходит для моего приложения?
Извинения. Я читал документы GWT и Javadocs для редактора Framework и RequestFactory, но я все еще довольно смущен. RequestFactoryEditorDriver.getPaths() кажется, что это может быть то, что мне нужно, но любые советы или указатели очень ценятся.
Возможно, я мог следить за изменениями на стороне клиента, но это похоже на плохую идею.
Я не вижу 100% того, как это связано с GWT Editors специально или GWT вообще. Звучит скорее как реструктуризация проблемы с базой данных/хранилища данных, например. сохраняя историю объекта. –
Я думаю, вы неправильно поняли мою проблему. Как реструктурирует мою схему, чтобы помочь мне узнать, какие поля изменили их содержимое, когда я называю 'EditorDriver.flush()'? Я повторно сохраняю одну и ту же сущность, но не каждый раз создаю новую копию, поэтому необходимо записывать изменения отдельно. – slugmandrew