Как реализовать составное представление / Presenter для GWT DecoratedTabPanel? - PullRequest
0 голосов
/ 10 декабря 2010

Я новичок в GWT, и я рассматривал реализацию MVP, которая использует rpcService и eventBus.Мне было интересно, как панель вкладок может быть реализована так, чтобы каждая вкладка имела свой собственный вид.Я колебался между созданием собственного виджета, производного от панели, или выяснением того, как заставить докладчика использовать другого докладчика, или созданием составного класса презентатора, который обрабатывает все это для меня.у вас есть совет, как разделить функциональность для каждой вкладки, а не хранить реализацию в одной паре представление / презентатор?

Ответы [ 2 ]

1 голос
/ 14 декабря 2010

Я был в той же ситуации, но решил изменить мою реализацию на имитировать TabPanel. Если вашим представлениям и докладчикам не нужно взаимодействовать друг с другом (например, перетаскивать что-либо с одной вкладки на другую), то я думаю, что будет проще разделить функциональность, загрузив ваш View в общую SimplePanel. Вы можете смоделировать часть TabPanel с вкладками с помощью виджета, который прослушивает PlaceChangeEvents (чтобы изменить выделенную вкладку) и отправляет команды goTo в PlaceController, который используется вашим приложением (для обработки нажатий на разные заголовки).

Потребовалось несколько часов, чтобы реализовать это, и полученный код стал намного чище. Моя первая попытка состояла в том, чтобы прослушать PlaceChangeEvents, а затем вызвать соответствующую функцию tabPanel.selectTab (), но попытка выяснить, как запустить и остановить презентаторы для разных вкладок, была слишком перемешана - как вы предполагаете, вам придется реализовать Ваша собственная модель составного вида.

0 голосов
/ 13 января 2011

Я решил это, не подделывая основную вкладку, а используя ту, которая поставляется с базовым SDK GWT.Я сделал это следующим образом:

  1. Добавить ArrayList of Presenters в MainTabPresenter
  2. Построил представление плюс каждой вкладки в методе go из MainTabPresenter
  3. Вызывается'go (null)' для каждого из выступающих на вкладках.
  4. Обрабатывается нулевая ситуация для каждого.
  5. Реализован метод в MainTabView для добавления вкладок в DecoratedTabPanel

Все это работает как шарм.MainTabPresenter очень тонкий и позволяет записывать полные реализации View / Presenters в свои собственные файлы.

...