WEB开发网
开发学院软件开发Java 基于 JFace Text Framework 构建全功能代码编辑器... 阅读

基于 JFace Text Framework 构建全功能代码编辑器: 第 5 部分:Text Decoration

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: IAnnotationPresentation名称里面带了“Presentation”字样的都和界面渲染有关,而 IAnnotationPresentation 就是用来渲染标注的,基于 JFace Text Framework 构建全功能代码编辑器: 第 5 部分:Te

IAnnotationPresentation

名称里面带了“Presentation”字样的都和界面渲染有关,而 IAnnotationPresentation 就是用来渲染标注的。这个接口只是负责在标尺上绘制标注,图1中表示错误的图标就是出自这里。如果你自己定义的标注没有实现这个接口,那么就不会出现在标尺上了。

IAnnotationModel

IAnnotationModel 是用来管理标注的。它负责管理某个文档上所有的标注,并且负责触发相应的标注事件,比如添加,删除等等。也许这个接口叫做 IAnnotationManager 更合适些。由于 Eclipse 不断在发展中,它的 API 时常需要增强,但是为了不破坏与旧版本的兼容性,这些扩展一般都是以扩展接口的方式出现的。对于 IAnnotationModel 来说,你可以发现还有一个 IAnnotationModelExtension 接口,里面有一些更强更方便的方法。不光是 IAnnotationModel,你在很多地方都可以发现名字是 Extension 结尾的接口,所以请记住这种现象,当我们浏览代码的时候,不要以为某个接口就已经是全部了。

IAnnotationAccess

这个接口可以用来访问标注的一些信息。但是在 3.0 之后,标注的信息都可以通过 Annotation 类访问到,所以这个接口已经过时了,只是为了向下兼容而保留,我就不罗嗦了。

AnnotationPainter

这是 JTF 中和标注绘制相关的重要类。上面提到的 IAnnotationPresentation 负责在标尺上绘制标注,而它是负责在编辑器(也就是 StyledText)里面绘制标注的。我们看到的红色波浪线和矩形框就归它负责。

IDrawingStrategy

这个接口是定义在 AnnotationPainter 内部的,它是绘画工作真正完成的地方。AnnotationPainter 实际上只是调用它来完成绘图操作而已。如果你在 Hierarchy 视图中看一下 IDrawingStrategy,会发现它有很多实现类。那个红色的波浪线就是 SquigglesStrategy 的杰作。

上一页  1 2 3 4 5 6  下一页

Tags:基于 JFace Text

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接