0 votes

Recherche d'informations sur l'action GWT / MVP sans changement de l'historique du navigateur

J'essaie de développer une application GWT avec le modèle MVP. Jusqu'ici tout va bien sauf pour un cas spécifique d'actions : les actions qui ne changent pas l'url (pas de changement de l'historique du navigateur).

Dans le modèle GWT MVP, les événements sont envoyés par les présentateurs, le contrôleur de l'application les attrape et met à jour l'historique du navigateur. Si l'historique a changé alors la vue se met à jour.

** MVP avec changement d'histoire (fonctionne bien) **

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

Modèle GWT MVP pour une boîte de dialogue sans historique des changements

** Problème ** - J'utilise une boîte de dialogue et je ne veux pas modifier l'historique du navigateur, voici donc le problème :

  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

Question : quelqu'un connaît-il un modèle pour implémenter ceci dans le contexte de MVP ?

Toute aide / idée est appréciée.

0voto

Jason Hall Points 15935

Utilisez-vous un framework (à part GWT) qui fait automatiquement les changements d'historique ?

GWT/MVP ordinaire n'exige pas qu'un changement d'historique soit effectué, et en fait, c'est généralement à l'application de mettre à jour l'historique elle-même.

Si vous souhaitez mettre à jour l'état de l'application sans modifier l'historique, vous pouvez utiliser un EventBus pour publier des événements auxquels d'autres éléments de l'application peuvent s'abonner, afin de mettre à jour l'état de l'application sans modifier l'historique.

0voto

Nick Hristov Points 388

En fait, vous devrez créer votre propre PlaceHistoryHandler. Votre PlaceHistoryHandler personnalisé ignorera un type particulier de PlaceChangeEvent (c'est-à-dire qu'il ne mettra pas à jour son Historian).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X