在eclipse插件开发过程中,要定义自己的problem view输出信息,可以利用marker技术。步骤如下:
第一步:首先建立扩展点:
<extension
id="modelErrorMarker"
name="模型错误提示"
point="org.eclipse.core.resources.markers">
<super
type="org.eclipse.core.resources.problemmarker">
</super>
<super
type="org.eclipse.core.resources.textmarker">
</super>
<attribute name="key"/>
<attribute name="violation"/>
<persistent value="true"/>
</extension>
第二步:然后添加marker:
MARKER_ID=插件工程的ID+扩展点的ID;
IWorkspaceRunnable editorMarker = new IWorkspaceRunnable()
{
public void run(IProgressMonitor monitor) throws CoreException
{
//IMarker marker = ResourcesPlugin.getWorkspace().getRoot().
//createMarker(MARKER_ID);
//将marker添加到你所要关联的文件上,当有错我的时候,则文件上将有小红叉
IMarker marker = ifile.createMarker(MARKER_ID);
marker.setAttribute(IMarker.MESSAGE , "message");
marker.setAttribute(IMarker.TRANSIENT, true);
marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
marker.setAttribute(IMarker.LOCATION, ifile.getName());
}
};
如果要删除marker:
删除marker:
ResourcesPlugin.getWorkspace().getRoot().deleteMarkers(
MARKER_ID, false, IResource.DEPTH_INFINITE); (在工程上添加marker)
ifile.deleteMarkers( MARKER_ID, false, IResource.DEPTH_INFINITE); (在file上添加marker)