Интеграция кодов GWT: MVP и Activites/Places

Допустим, у вас есть "область отображения" (AcceptsOneWidget), который содержит панель с вкладками. Если щелкнуть другую вкладку (т. Е. Перейти от " fantastico " к " профилю "), на панели отобразится совершенно новый контент. Это похоже на идеальный вариант использования для разделения кода, поскольку до тех пор, пока пользователь не нажал на вкладку " профиль ", ему не нужно было загружать код, необходимый для его отображения. (Примечание: если какой-либо гуру GWT не согласен и не считает, что это правильный вариант использования для разделения кода, то, пожалуйста, укажите это мне, но это помимо вопроса для этого вопроса, поэтому, пожалуйста, потерпите меня!)

Теперь, если мое понимание базовой архитектуры GWT правильное, код, необходимый для отображения вкладки " Профиль ", состоит из Activity (ях), Place (s), возможно, некоторые вещи MVP, такие как Presenter, Module, EntryPoint и т. д. Конечно, это будет по-разному в зависимости от приложения и разработчика (как я узнал в GWT, есть много способов достичь той же цели), но, тем не менее, это куча "вещей" MVP/Activity/Place. Ради этого вопроса мне нравится модель, предложенная автором этого SO вопроса.

После прочтения этой статьи о шаблоне AsynchProvider я пытаюсь связать все эти лучшие практики вместе и создать архитектуру, в которой:

  • Я реализую разделение кодов таким образом, чтобы каждая вкладка на панели была разделена по кодам (есть ли разделение по кодам? Codeplat?) Как отдельный фрагмент и будет загружаться только в том случае, если / когда пользователь щелкнет по ней в первый раз
  • Весь код, необходимый для отображения / визуализации / реализации каждого фрагмента (вкладка / панель), аккуратно организован и соответствует AsynchProvider шаблоны, упомянутые в вышеприведенной статье; это позволяет разделить его и не иметь зависимости от других фрагментов

Я начинаю собирать все части вместе, но все еще не вижу, как эти две концепции могут быть связаны в рабочем коде.

Я нахожу GWT таинственным, мощным и замечательным, но очень трудным для изучения без практических примеров кода для подражания. Конечно, эти каркасы на самом деле не показывают какой-либо сложности на панелях " fantastico " или " profile ", поэтому, пожалуйста, имейте в виду и притворяйтесь, что это довольно сложные области отображения с большим количеством богатых компонентов пользовательского интерфейса. Заранее спасибо!

1 ответ

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

Чтобы разделить содержимое вкладки, достаточно использовать SimplePanel в качестве реального содержимого вкладки, и загрузите его содержимое, прослушивая SelectionEvents.
Кроме того, вы можете использовать LazyPanel чья createWidget вернет SimplePanel и асинхронно загрузить остальную часть кода.

Другие вопросы по тегам