Использование RequestFactoryEditorDriver для обновления на лету - PullRequest
2 голосов
/ 28 февраля 2011

У меня есть текстовое поле, которое я хочу периодически сохранять при вводе пользователями.Я хотел бы подключить его к моей существующей платформе RequestFactoryEditorDriver, но я не могу придумать, как это сделать.Беда в том, что мне придется ждать, пока все мои driver.flush().fire() вызовы вернутся, прежде чем снова вызывать edit(), поэтому данные пока не будут редактируемыми.создать целый слой над прокси.Было бы ждать, пока он только что собирался сохранить, а затем отредактировать прокси, скопировать изменения и сохранить прокси, но в этот момент я теряю большую часть преимуществ среды Editor.У кого-нибудь есть идеи получше?

Ответы [ 2 ]

3 голосов
/ 30 апреля 2011

Еще одна вещь, которая, на мой взгляд, сработает, и, вероятно, не потребует гораздо больше работы (возможно, на самом деле меньше), чем ответ Рэя: не редактируйте объект, который вы хотите сохранить, а его копию (созданную с помощью RequestContext.create()) сделайте копию перед редактированием, а затем очистите и скопируйте обратно в ваш компонент (в другом RequestContext) перед выстрелом. Это, однако, предполагает, что одновременных изменений не будет, из-за асинхронного взаимодействия с сервером (пользователь может продолжить редактирование, и вам придется обнаруживать и разрешать «конфликты», если кто-то еще редактировал тот же объект одновременно) , Чтобы сделать копию, используйте AutoBeanUtils.getAutoBean, чтобы вывести компонент из RF-прокси, затем AutoBeanVisitor, чтобы просмотреть все свойства и скопировать их значения в другой прокси / autobean.

1 голос
/ 28 февраля 2011

Бьюсь об заклад, было бы не сложно решить эту проблему на более низком уровне. Например, поместите оболочку вокруг самой RequestFactory, которая заставляет все возвраты void синхронно выполнять обратный вызов, предполагая, что в 99% случаев они действительно будут успешными.

...