Только один драйвер GWT для нескольких редакторов?

У меня есть основной виджет, который реализует Editor для такого лица, как User, UserWidget содержит поле Address, которое является другим объектом со своим собственным виджетом. Оба виджета сделаны с UIBinder. Виджет для адреса выполнен в виде диалогового окна. Как я могу получить данные из текстовых полей диалогового окна Address Widget при звонке driver.flush() в основном виджете?

2 ответа

Решение

Ваш вопрос несколько бледен по деталям. Например, вы показываете адрес в главном виджете. Это выглядит логично, так как у вас есть поле адреса (зачем вам еще поле адреса?), Но затем вы снова вызываете flush() в главном, чтобы получить измененный адрес из диалогового окна, что говорит о том, что (новый) адрес не является показанный в главном виджете при закрытии диалогового окна адреса, в главном виджете все равно будет старый адрес, так как не упоминалось, если вы выполняете какое-то обновление.

Таким образом, на основе информации вы можете сделать виджет адреса также сделать Editor виджет и в UserWidget для адреса поля используйте виджет адреса, чтобы установить и получить значения для адреса в объекте пользователя. Таким образом, когда вы вызываете flush(), вы автоматически получаете результаты из виджета адреса.

Вы должны использовать событие для... распространения событий через приложение. В сочетании с внедрением зависимости это очень хорошее решение для подобных проблем.

Как использовать GWT EventBus

Другие вопросы по тегам