2012-01-09 3 views
1

Концепции GWT/Places/MVP обсуждались здесь довольно много, но я не нашел хорошего примера того, как применять эти концепции к многоязычному порталу GWT.Архитектура приложений с несколькими диалоговыми окнами GWT и MVP/Activities/Places

Я работаю над приложением GWT, которое должно иметь несколько независимых виджетов. Эти виджеты реализованы на основе PopupPanel. Каждый виджет можно перемещать по экрану и быть независимым от других. Первоначальное намерение состояло в том, чтобы использовать подход «Мероприятия и места». Каждый виджет будет активным, все действия будут управляться одним и тем же ActivityMapper и ActivityManager. Но в этом случае, когда открывается новое диалоговое окно из меню, создается новое место и вызывается mayStop() для текущего открытого диалога. Наличие одного ActivityMapper и ActivityManager для каждого типа виджетов не будет работать, так как на экране может быть несколько виджетов одного типа.

Как выглядит архитектура приложения GWT в этом случае? Какие-либо предложения?

ответ

1

Место подобно URL-адресу, оно, похоже, не соответствует вашим потребностям, если только вы не создадите суперпозицию, содержащую накопленное состояние для всех виджетов.

Вы абсолютно нужен ActivityMapper и ActivityManager за «виджет» (или не использовать деятельность в целом)

+0

Как я уже говорил, имея ActivityMapper и ActivityManager каждого типа виджета не будет действительно работать - может быть несколько виджетов одного и того же тип на экране одновременно. Наличие экземпляров ActivityMapper и ActivityManager для каждого виджета кажется излишним. Думаю, мне пришлось бы изобретать свой собственный ActivityMapper и ActivityManager для обработки виджетов на экране. – dimchez

+0

Эти «виджеты» в любом случае должны были бы извлечь свою «информацию о месте» из «супер места», чтобы вы могли связать эту информацию с каким-то уникальным ключом в «супер месте» и инициализировать ActivityMapper эквивалентным ключом; так что вы могли бы одновременно использовать несколько «FooPlace». Но поскольку я как-то подразумевал, что если каждый «виджет» состоит из одного действия, то да, имея ActivityMapper/ActivityManager для «виджета», является излишним, и вам лучше разработать конкретный ActivityManager, как вы предлагаете. –

+0

Спасибо за ваши предложения. Я закончил реализацию своего собственного менеджера виджетов. – dimchez