Поиск входных данных по действию GWT / MVP без изменения истории браузера - PullRequest
0 голосов
/ 14 апреля 2010

Я пытаюсь разработать приложение GWT с шаблоном MVP. Пока все хорошо, за исключением одного конкретного случая действий: действий, которые не меняют URL (без изменения истории браузера).

В шаблоне GWT MVP события отправляются от докладчиков, контроллер приложения ловит их и обновляет историю браузера. Если история изменилась, то представление обновляется.

** MVP с изменением истории (хорошо работает) **

Current URL is /list
User clicks on contactdelete button.
Fire DeleteContactAction event.
App controller catches, change history to 'delete'
onValueChange is called
if (token.equals("delete")) 
delete contact screen, then delete contact
Fire ContactDeletedEvent 
app controller catches and change the history to list 
onValueChange is called: contact list refreshes

Шаблон GWT MVP для диалогового окна без изменений истории

** Проблема ** - я использую диалоговое окно, и я не хочу изменять историю браузера, поэтому вот проблема:

  Current URL is /list
  User clicks on contactdelete button.
  Contact is deleted
  Fire ContactDeletedEvent.
  App controller catches, change history to 'list'
  **onValueChange is NOT called** because url is already /list and there is no change
  # problem: contact list does not refresh

Вопрос: кто-нибудь знает шаблон для реализации этого в контексте MVP?

Любая помощь / идея приветствуется.

Ответы [ 2 ]

0 голосов
/ 13 марта 2011

По сути, вам придется создать свой собственный PlaceHistoryHandler. Ваш пользовательский PlaceHistoryHandler будет игнорировать конкретный тип PlaceChangeEvent (т.е. он не будет обновлять свой Historian).

0 голосов
/ 14 апреля 2010

Используете ли вы какую-то платформу (кроме GWT), которая автоматически меняет историю?

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

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

...