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

基于 JFace Text Framework 构建全功能代码编辑器: 第 6 部分:Text Hover 和 Annotation Hover

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: IAnnotationHoverAnnotation Hover(标注悬浮)只能给标尺上的标注提供悬浮帮助,在实现上,基于 JFace Text Framework 构建全功能代码编辑器: 第 6 部分:Text Hover 和 Annotation Hover(4),它比文本悬浮更简单一些,因

IAnnotationHover

Annotation Hover(标注悬浮)只能给标尺上的标注提供悬浮帮助。在实现上,它比文本悬浮更简单一些,因为你不需要判断鼠标所在单词,也不需要想办法获取一些上下文信息。JTF 也提供了缺省实现:DefaultAnnotationHover。我在例子中继承了它,但是什么都没有覆盖。然后在 ExprConfiguration 中覆盖 getAnnotationHover 即可,和文本悬浮非常类似。

下面是标注悬浮的效果:

图3. 标注悬浮效果图
基于 JFace Text Framework 构建全功能代码编辑器: 第 6 部分:Text Hover 和 Annotation Hover

显示的信息和图2是一样的,因为是同一个标注。如果想返回不同的信息,覆盖 DefaultAnnotationHover 的 getHoverInfo 方法就可以了。

关于信息显示控件

我曾经在本系列的第四部分提过:JTF使用了一些接口来抽象信息显示方面的功能,比如 IInformationControl 代表了一个信息显示控件,IInformationControlCreator 代表了一个信息显示控件工厂。既然文本悬浮和标注悬浮也是显示信息,那么它们可以不可以定制信息显示控件呢?

答案是绝对没问题,但是你在 ITextHover 和 IAnnotationHover 找不到与之有关系的方法。是不是想起了什么?那些带有“Extension”字样的接口?Bingo! 看看 ITextHoverExtension 和 IAnnotationHoverExtension 吧,具体怎么做我就不演示了。

Accessibility

一个要达到产品级的软件,必须要考虑 Accessibility 的问题,所谓 Accessibility,简单的说,就是让残疾人也能够使用你的软件。Accessibility 有一个很基本的要求就是关键的文字都要能被读屏软件读出来。文本悬浮和标注悬浮是很酷,但是它带来了 Accessibility 方面的问题,因为悬浮窗口没有焦点,读屏软件是不会读它们的。我们看看在 Java 编辑器中,它如何解决这个问题:

上一页  1 2 3 4 5  下一页

Tags:基于 JFace Text

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