@Override
  protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) {

    FileRecord resourceRecord = getFileRecordFromWorkbenchPart(part);
    if (resourceRecord != null) {
      resourceRecord.getResource().getWorkspace().removeResourceChangeListener(this);
    }

    AbstractStructureInspectorPage page = (AbstractStructureInspectorPage) pageRecord.page;

    if (page != null) {
      page.dispose();
    }

    pageRecord.dispose();
  }
 protected IPath getResourcePath() {
   AbstractStructureInspectorPage page = getCurrentViewPage();
   FileRecord record = page.getFileRecord();
   IResource resource = record.getResource();
   return resource.getFullPath();
 }
 /**
  * Refresh, reloads the View with a given new resource.
  *
  * @param newResource new resource for the current active page.
  */
 protected void refresh(IResource newResource) {
   AbstractStructureInspectorPage page = getCurrentViewPage();
   if (page != null) page.refresh(newResource);
 }