if (pageSite instanceof PageSite) {
((PageSite) pageSite).deactivate();
}
// remove our selection listener
if (pageSite != null) {
ISelectionProvider provider = pageSite.getSelectionProvider();
if (provider != null) {
provider.removeSelectionChangedListener(selectionChangedListener);
if (provider instanceof IPostSelectionProvider) {
((IPostSelectionProvider) provider)
.removePostSelectionChangedListener(postSelectionListener);
}
}
}
}
// Show new page.
activeRec = pageRec;
Control pageControl = activeRec.page.getControl();
if (pageControl != null && !pageControl.isDisposed()) {
IPageSite pageSite = activeRec.pageSite;
// Verify that the page control is not disposed
// If we are closing, it may have already been disposed
book.showPage(pageControl);
if (activeRec.subActionBars != null) {
activeRec.subActionBars.activate();
}
refreshGlobalActionHandlers();
// activate the nested services
if (pageSite instanceof PageSite) {
((PageSite) pageSite).activate();
}
// add our selection listener
ISelectionProvider provider = pageSite.getSelectionProvider();
if (provider != null) {
provider.addSelectionChangedListener(selectionChangedListener);
if (provider instanceof IPostSelectionProvider) {
((IPostSelectionProvider) provider)
.addPostSelectionChangedListener(postSelectionListener);
}
}