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