Java 类org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel 实例源码

项目:tlaplus    文件:EditorUtil.java   
/**
 * Gets the current {@link Position} of the marker in the
 * {@link TLAEditor} showing the module that contains the
 * marker. Returns null if there is no editor open on that module.
 * This method assumes that {@link TLAEditor}s are synchronized. That
 * is, multiple editors on the same module are synchronized. At the time
 * of writing this method (June 2010), they are synchronized.
 * 
 * @param marker
 * @return
 */
public static Position getMarkerPosition(IMarker marker)
{
    TLAEditor editor = findTLAEditor(marker.getResource());
    if (editor != null)
    {
        IAnnotationModel annotationModel = editor.getDocumentProvider().getAnnotationModel(editor.getEditorInput());
        /*
         * From exploration of eclipse's code, I've determined that this
         * should be an instance of ResourceMarkerAnnotationModel. If this is
         * not always true, then we need to figure out a way to get a hold of the
         * annotation model that manages positions of markers in the editor.
         */
        if (annotationModel instanceof ResourceMarkerAnnotationModel)
        {
            return ((ResourceMarkerAnnotationModel) annotationModel).getMarkerPosition(marker);
        } else
        {
            Activator.getDefault().logDebug("Cannot get the annotation model that manages marker positions for the marker on "
                    + marker.getResource());
        }
    }

    return null;
}
项目:APICloud-Studio    文件:ExternalFileAnnotationModelFactory.java   
public IAnnotationModel createAnnotationModel(IPath location)
{
    try
    {
        IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(location);
        if (file != null && file.exists())
        {
            return new ResourceMarkerAnnotationModel(file);
        }
    }
    catch (Exception e)
    {
    }
    return new ExternalFileAnnotationModel(EFS.getLocalFileSystem().getStore(location));
}