2013-01-07 6 views
1

Je ne comprends vraiment pas ce que PlaceTokenizer fait? convertit-il le nom de classe d'un lieu en une chaîne afin que le mécanisme d'historique de gwt puisse l'utiliser pour le mettre dans l'url des navigateurs? c'est ce que je comprends mais je ne sais pas si c'est juste.Que fait réellement le gwt PlaceTokenizer?

+0

https: https://groups.google.com/forum/?fromgroups=#!topic/google-web-toolkit/ tSaVtGvrVH0 – SSR

Répondre

4

D'abord, PlaceTokenizer est uniquement utilisé en combinaison avec le générateur pour PlaceHistoryMapper (à savoir si vous GWT.create() une interface qui étend PlaceHistoryMapper, vous êtes libre de mettre en œuvre à la place que l'interface dans une classe concrète si vous préférez). Le générateur force les jetons d'historique (la partie après le # dans l'URL) à être composé d'un préfixe et d'un jeton . Le préfixe est utilisé pour correspondre à un type PlaceTokenizer donné, et est soit donné par l'annotation @Prefix sur le tokenizer, soit par le nom simple du lieu manipulé par le tokenizer.

Lors de l'analyse d'un jeton histoire (quand handleCurrentHistory() est appelé au moment de l'initialisation, ou lorsque vous naviguez en utilisant l'historique de votre navigateur), après le préfixe a été adapté à un PlaceTokenizer et une instance de cette tokenizer a été récupéré (de si l'usine en utilisant un PlaceHistoryMapperWithFactory, ou créé à l'aide de son constructeur par défaut zéro-arg), le jetonlieu est transmis à la méthode getPlace et le tokenizer est prévu pour instancier un lieu correspondant au lieu jeton .

Lorsque la sérialisation d'un lieu (lorsque vous naviguez à travers PlaceController#goTo(Place) dans l'application), un tokenizer est récupérée en fonction du type de lieu (correspondance avec le paramètre générique du tokenizer) et la place est donnée à getToken, qui est devrait renvoyer un jeton place pour l'endroit. Le PlaceHistoryHandler ajoutera ensuite le préfixe et mettra à jour l'URL.

Le jeton lieu peut être quelque chose, mais elle est fondée sur les données contenues par le lieu (ses champs), et non pas son type (cela se reflète comme préfixe des jeton histoire )

+0

Merci! Votre réponse est très utile. – nomnom

Questions connexes