protected void update() { IWorkbenchPage page = fSourcePage.getSite().getWorkbenchWindow().getActivePage(); if (page != null) { IPerspectiveDescriptor perspective = page.getPerspective(); if (perspective != null) { String perspectiveId = perspective.getId(); if (fCurrentPerspective == null || fCurrentPerspective != perspectiveId) { fCurrentPerspective = perspectiveId; switch (fImpType) { case F_MANIFEST_IMP: fImplementation = new ManifestTextHover(fSourcePage); break; case F_XML_IMP: fImplementation = new PluginXMLTextHover(fSourcePage); break; } } } } }