X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/AnnotationHover.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/AnnotationHover.java index 1c533df..3839e78 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/AnnotationHover.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/AnnotationHover.java @@ -17,15 +17,19 @@ import net.sourceforge.phpdt.internal.ui.text.HTMLPrinter; import net.sourceforge.phpdt.ui.PreferenceConstants; import net.sourceforge.phpeclipse.PHPeclipsePlugin; import net.sourceforge.phpeclipse.phpeditor.JavaAnnotationIterator; +import net.sourceforge.phpeclipse.phpeditor.PHPTextHover; import net.sourceforge.phpeclipse.phpeditor.PHPUnitEditor; +import org.eclipse.core.resources.IFile; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.Position; import org.eclipse.jface.text.source.Annotation; import org.eclipse.jface.text.source.IAnnotationModel; +import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IFileEditorInput; import org.eclipse.ui.editors.text.EditorsUI; import org.eclipse.ui.texteditor.AnnotationPreference; import org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess; @@ -36,7 +40,7 @@ public class AnnotationHover extends AbstractJavaEditorTextHover { private IPreferenceStore fStore= PHPeclipsePlugin.getDefault().getPreferenceStore(); private DefaultMarkerAnnotationAccess fAnnotationAccess= new DefaultMarkerAnnotationAccess(); - + private PHPTextHover fPHPTextHover = null; /* * Formats a message as HTML text. */ @@ -58,11 +62,11 @@ public class AnnotationHover extends AbstractJavaEditorTextHover { IDocumentProvider provider= PHPeclipsePlugin.getDefault().getCompilationUnitDocumentProvider(); IAnnotationModel model= provider.getAnnotationModel(getEditor().getEditorInput()); - + String message= null; if (model != null) { Iterator e= new JavaAnnotationIterator(model, true); int layer= -1; - String message= null; + while (e.hasNext()) { Annotation a= (Annotation) e.next(); @@ -85,7 +89,13 @@ public class AnnotationHover extends AbstractJavaEditorTextHover { if (layer > -1) return formatMessage(message); } - + // Added as long as the above doesn't work + if (fPHPTextHover!=null) { + message = fPHPTextHover.getHoverInfo(textViewer, hoverRegion); + if (message!=null) { + return formatMessage(message); + } + } return null; } @@ -93,10 +103,25 @@ public class AnnotationHover extends AbstractJavaEditorTextHover { * @see IJavaEditorTextHover#setEditor(IEditorPart) */ public void setEditor(IEditorPart editor) { - if (editor instanceof PHPUnitEditor) + if (editor instanceof PHPUnitEditor) { super.setEditor(editor); - else + if (editor != null) { + IEditorInput editorInput = editor.getEditorInput(); + if (editorInput instanceof IFileEditorInput) { + try { + IFile f = ((IFileEditorInput) editorInput).getFile(); + fPHPTextHover = new PHPTextHover(f.getProject()); + return; + } catch (NullPointerException e) { + // this exception occurs, if getTextHover is called by + // preference pages ! + } + } + } + fPHPTextHover = new PHPTextHover(null); + } else { super.setEditor(null); + } } /**