package org.bndtools.core.editors;
import java.util.Iterator;
import org.eclipse.core.resources.IMarker;
import org.eclipse.jface.text.source.IAnnotationHover;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.ui.texteditor.MarkerAnnotation;
public class BndMarkerAnnotationHover implements IAnnotationHover {
public String getHoverInfo(ISourceViewer sourceViewer, int lineNum) {
@SuppressWarnings("rawtypes")
Iterator iter = sourceViewer.getAnnotationModel().getAnnotationIterator();
while (iter.hasNext()) {
Object annotation = iter.next();
if (annotation instanceof MarkerAnnotation) {
IMarker marker = ((MarkerAnnotation) annotation).getMarker();
int markerLine = marker.getAttribute(IMarker.LINE_NUMBER, 0);
// Hover line is zero-based and marker line is one-based. FML.
if (markerLine == lineNum + 1) {
return marker.getAttribute(IMarker.MESSAGE, null);
}
}
}
return null;
}
}