Как переключиться на другое представление и контроллер в GWT? - PullRequest
1 голос
/ 02 сентября 2010

У меня есть виджет, написанный на GWT. В реализации EntryPoint у меня есть виджет загрузки контроллера и представление, которое привязано к этому контроллеру. Я добавляю этот вид в RootPanel, и он отлично работает.

public class EntryImpl implements EntryPoint {

  SimplePanel simplePanel;
  View view;
  Controller controller;
  public final void onModuleLoad()
    {
        controller = createController();
        view = createViewForController(controller);
        simplePanel = new SimplePanel();
        simplePanel.add(view);
        RootPanel.get().add(simplePanel);

    }
}

Нечто подобное выше. Теперь я хочу изменить вид и контроллер, скажем, если пользователь нажимает кнопку, чтобы загрузить другой вид. Я попробовал что-то вроде добавления Anchor и обработки ClickEvent следующим образом:

public void onClick(Widget sender) {
  simplePanel.remove(view);
  controller = createController();
  view = createViewForController(controller);
  panel.add(view);
}

Это правильный способ сделать это, или есть лучший способ? Пока что это не работает для меня - мое новое представление не появляется.

Спасибо

Ответы [ 3 ]

1 голос
/ 06 сентября 2010

Вы можете использовать DeckPanel и переключать вид, используя метод showWidget(index). Включение анимации на панели палубы может улучшить удобство использования.

0 голосов
/ 15 сентября 2010

Вы можете использовать шаблон MVP для управления переходом представления (я еще не использовал его)

http://code.google.com/intl/en/webtoolkit/articles/mvp-architecture.html

0 голосов
/ 06 сентября 2010

Что такое панель в вашем событии OnClick? если вы просто хотите увидеть представление, вы можете получить корневую панель и увидеть ее RootPanel.get (). add (view). Добавление div на базовой HTML-странице может помочь вам, если у вас есть div, вы можете добавить свое представление. внутри этого div с помощью RootPanel.get ("div"). add (view) ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...