Поля редактора не обновляются
Я хочу использовать Editor Framework GWT в своем проекте.
В моем представлении (которое реализует редактор) у меня есть поле UiBinder:
@UiField
TextBox text;
В моем Presenter я вставляю через GIN экземпляр драйвера:
@Inject
public AppointmentPopupPresenter(EventBus eventBus, MyView view, final AppointmentDriver appointmentDriver)
Когда докладчик вызывается, я пытаюсь инициализировать драйвер с помощью:
this.appointmentDriver.initialize(getView());
this.appointmentDriver.edit(new Appointment());
GINModule:
bind(SimpleBeanEditorDriver.class).to(AppointmentDriver.class);
Интерфейс AppointmentDriver:
public interface AppointmentDriver extends SimpleBeanEditorDriver<Appointment, AppointmentPopupPresenter.MyView>{
}
Позже, когда я слушаю событие кнопки, я звоню:
appointmentDriver.flush();
но все свойства имеют значение null и не выдается сообщение об ошибке. Если я загляну в отладчик в виджет текстового поля, то экземпляр "редактора" также будет нулевым. не знаю, как это возможно, но это подсказка для вас.
Назначение POJO(конечно, с void setText(String text)/String getText()):
String text;
На данный момент я полностью застрял, поэтому любая помощь приветствуется.
Спасибо!!
2 ответа
Я вижу, вы делаете getView()
Возвращает ли он то же представление, которое было передано в конструктор, и такое же, как показано в пользовательском интерфейсе? Это может быть драйвер, инициализированный с другим видом, чем тот, который показан на самом деле, и, таким образом, вы получите данные из неправильного представления. Я также не понимаю, почему вы делаете привязку, это кажется ненужным?
Я не уверен, но я предполагаю, что проблема в том, что вы просто звоните SimpleBeanEditorDriver.initialize(E editor)
, Насколько я помню, нужно позвонить RequestFactoryEditorDriver.initialize(EventBus, RequestFactory, E)
Может быть, мой маленький (теперь обновленный для GWT 2.3, но все еще полностью неполированный) пример проекта может помочь вам.
Вот фрагмент, где я делаю вызовы инициализации:
final MyRequestFactory requestFactory = GWT
.create(MyRequestFactory.class);
requestFactory.initialize(eventBus);
final MyEditor myEditor = new MyEditor();
driver.initialize(eventBus, requestFactory, myEditor);
Должна быть возможность рефакторинга проекта для использования GIN.