You need to cache the activity that displays the 3rd party app so it does 
not get recreated in your ActivityMapper each time you navigate inside the 
3rd party app. So your URLs should look like

/#ThirdPartyAppPlace:app=page1
/#ThirdPartyAppPlace:app=page2&param=x
/#ThirdPartyAppPlace:app=page3

and for each URL the same activity instance should be returned. You could 
either code this caching into your AppActivityMapper directly or use GWT's 
CachingActivityMapper together with GWT's FilteredActivityMapper to keep 
your AppActivityMapper clean. If you choose to use GWT's ActivityMappers 
you must implement hashcode/equals for your place because 
CachingActivityMapper uses currentPlace.equals(newPlace) to determine if 
the cached activity can be returned.

At the end you will have something like new FilteredActivityMapper(filter, 
new CachingActivityMapper(new AppActivityMapper()); where "filter" 
transforms all your ThirdPartyAppPlaces to an empty ThirdPartyAppPlace so 
that CachingActivityMapper always sees equal places. Whenever the 
CachingActivityMapper sees different places, it will ask your 
AppActivityMapper for the new activity.

-- J.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to