// update tab description.
dataDispatcher.getTabDescription().updateUrl(
Url.getUrlWithoutHash(nav.getUrl()));
// Create the ApplicationState with some initial guesses for bounds
ApplicationState newState = new ApplicationState(dataDispatcher);
ApplicationState oldState = pageStates.get(pageStates.size() - 1);
// The current ApplicationState should now be neutered and no longer
// receive updates. It should also transfer relevant old state to the new
// ApplicationState.
oldState.detachModelsFromDispatchers();
newState.setFirstDomainValue(nav.getTime());
newState.setLastDomainValue(nav.getTime()
+ Constants.DEFAULT_GRAPH_WINDOW_SIZE);
// Add this new ApplicationState to our collection of states for each page
int pageIndex = addPageState(nav.getUrl(), newState);
// Now swap in the page state
setStateForPageAtIndex(pageIndex);
controller.setSelectedPage(pageIndex);
maybeInitializeSymbolServerController(dataDispatcher.getTabDescription());
// copy over associated network resource from before the tab change was processed
// copy all back to the main resource
DataDispatcher dispatcher = oldState.getDataDispatcher();
copyRecordsFromBeforePageTransition(dispatcher, newState, nav.getUrl());
}