This is what the mayStop() method of Activity is for. As Jens said, you can also somehow disable navigation until your app is in a state that "allows" it (but beware that if the user refreshes the page, the app won't have any way to know that a previous call was issued → implement mayStop anyway, to warn users).
As an alternative, implement your navigation as events on the event bus, and a central listener maps them to PlaceController.goTo calls, possibly swallowing or deferring them, possibly loading required data before actually navigating, etc. Oh, and of course, you could also display a "glass panel" with a progress bar or spinner arrows (or just a message) –e.g. in the form of a PopupPanel with setGlassEnabled(true)– that makes all interaction with the app impossible until the RPC response is back (but the "refresh page" scenario is still to be considered). Web apps are not like desktop apps: you cannot "lock" users in until something is done. They can open the app in another tab/window/browser, they can "unload" the app at any time, and possibly reload it while some action started by the "previous load" is still being done on the server-side. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/Jv7PVB2beWcJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
