UpdateManager updateManager = ci.getUpdateManager();
ServerUpdateManager serverUpdateManager = updateManager.getServerUpdateManager();
ServerComponentUpdate[] componentUpdates = updateManager.getServerUpdateManager().getComponentUpdates();
if (serverUpdateManager.isFullRefreshRequired()) {
Window window = rc.getContainerInstance().getApplicationInstance().getDefaultWindow();
ServerComponentUpdate fullRefreshUpdate = componentUpdates[0];
// Dispose of removed descendants.
Component[] removedDescendants = fullRefreshUpdate.getRemovedDescendants();
disposeComponents(rc, fullRefreshUpdate, removedDescendants);
// Perform full refresh.
RootSynchronizePeer rootSyncPeer
= (RootSynchronizePeer) SynchronizePeerFactory.getPeerForComponent(window.getClass());
rootSyncPeer.renderRefresh(rc, fullRefreshUpdate, window);
setRootLayoutDirection(rc);
} else {
// Remove any updates whose updates are descendants of components which have not been rendered to the