Работа с сохранением и обновлением модели с помощью платформы GWT - PullRequest
0 голосов
/ 26 февраля 2012

Я пытаюсь адаптировать свое веб-приложение GWT с моего собственного MVC для GWT Platform .

Мне удалось портировать представления моего приложения с докладчиками и, по сути, получить доступ к представлениям через PlaceRequest. И с изменением URL (#).

Однако я не уверен, что делать с моделями, использующими эту платформу GWT. В распространенном MVP я знаю, что в презентере есть метод go (), который выбирает данные, скажем, с сервера через RPC.

В представителе платформы GWT перечислены методы, автоматически генерируемые плагином Eclipse:

  • Конструктор
  • revealInParent
  • onBind
  • OnReset

Где я должен поместить код RPC, который будет загружать и обновлять мою модель. Скажи в презентере у меня:

ProfilePresenter.java:

public class ProfilePresenter
        extends
        Presenter<ProfilePresenter.MyView, ProfilePresenter.MyProxy> {

    public interface MyView extends View {
        HasText getFullname();
        HasText getLocation();
        HasText getAboutme();
        HasText getLastlogin();
    }

    private User user; // Model which represents the User information etc.

И когда отображается представление, связанное с Presenter, мне нужно получить модель User с сервера и обновить модель, а затем обновить представление через интерфейсы, которые он предоставляет.

Также, скажем, у меня есть несколько кнопок в представлении, которые затем могут быть доступны докладчику через HasClickHandler, где я должен разместить обработчики событий?

Ответы [ 2 ]

2 голосов
/ 26 февраля 2012

Я бы поместил вызов RPC в метод onReset. См. Жизненный цикл докладчика

Лично я имею дело с событиями, используя обращенный паттерн MVP . Но вы также можете вызвать обработчик следующим образом:

    getView().getSubmitButton().addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
        }
    });

со следующей подписью для getSubmitButton в вашем интерфейсе просмотра:

HasClickHandlers getSubmitButton()
0 голосов
/ 26 февраля 2012

Сидней ответил на большинство ваших вопросов.

В общем случае метод onReset является хорошим местом для выполнения внутренних вызовов.
Иногда, когда внутренний вызов занимает больше времени и вы хотите отобразить представление только после загрузки данных, вы можете использовать руководство показывает .
Но для страницы профиля я не думаю, что это необходимо.

Я также согласен с обратной моделью MVP.Проще протестировать докладчиков с использованием обратного шаблона MVP, чем с помощью интерфейсов HasXXXHandlers.

...