Поля редактора не обновляются - PullRequest
3 голосов
/ 02 августа 2011

Я хочу использовать платформу редактора GWT в моем проекте.

В моем представлении (которое реализует редактор) у меня есть поле UiBinder:

@UiField
TextBox text;

В моем презентере я внедряючерез 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 interface:

public interface AppointmentDriver extends SimpleBeanEditorDriver<Appointment, AppointmentPopupPresenter.MyView>{

}

Позже, когда я слушаю событие кнопки, я вызываю:

appointmentDriver.flush();

, но все свойства равны нулю, и сообщение об ошибке не выдается.Если я загляну в отладчик в виджет текстового поля, то экземпляр «редактора» также будет нулевым.не знаю internas, но, возможно, это подсказка для вас.

Назначение POJO (конечно, с void setText (String text) / String getText ()):

 String text;

В данный моментЯ полностью застрял, поэтому любая помощь более чем приветствуется.

Спасибо !!

Ответы [ 2 ]

1 голос
/ 02 августа 2011

Я вижу, что вы делаете getView(), возвращает ли оно то же представление, которое было передано конструктору, и такое же, как показано в интерфейсе?Это может быть драйвер, инициализированный с другим видом, чем тот, который показан в действительности, и, таким образом, вы получите данные из неправильного представления.Я также не понимаю, почему вы делаете привязку, это кажется ненужным?

0 голосов
/ 02 августа 2011

Я не уверен, но я предполагаю, что проблема в том, что вы просто звоните 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.

...