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

基于 JFace Text Framework 构建全功能代码编辑器: 第 3 部分:Double Click 和 Triple Click

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 这个流程非常直接,得到被点击的位置,基于 JFace Text Framework 构建全功能代码编辑器: 第 3 部分:Double Click 和 Triple Click(2),通过位置得到相应的符号,然后选择整个符号,只是显示一个对话框表示三击事件被我们捕捉到了,三击的时候具体做什么,我

这个流程非常直接,得到被点击的位置,通过位置得到相应的符号,然后选择整个符号。我们再次利用了 TokenList 来得到指定字符偏移处的符号。

和本系列第二部分一样,有了实现还得让 JTF 知道你的实现,我们再来修改 ExprConfiguation,覆盖一个 getDoubleClickStrategy 方法:

清单2. 让 JTF 知道你的 Double Click 实现

   public ITextDoubleClickStrategy getDoubleClickStrategy( 
     ISourceViewer sourceViewer, String contentType) 
{ 
  return new ExprDoubleClickStrategy(); 
} 

只是简单的返回我们实现的 ITextDoubleClickStrategy 而已,这样 JTF 就知道我们的双击行为了,注意双击行为也是和文本类型绑定到一起的,但是我们只有一种类型,所以没有利用这个信息。

读者可以尝试本文的例子,双击某个变量,看看是否这个变量被全部选中了。

Triple Click

有了双击,可能自然就会想到三击。但是 JTF 本身是不支持三击行为的。我们需要自己实现,只要模仿双击的机制来做就可以了。

接口

模仿双击的处理方式,我们也添加一个 ITextTripleClickStrategy 接口,如下所示:

清单3. 模仿 Double Click,创建 ITextTripleClickStrategy 接口

   public interface ITextTripleClickStrategy { 
 /** 
 * Invoked when triple clicking detected 
 */ 
 public void tripleClicked(ITextViewer viewer); 
} 

然后我定义了 ExprTripleClickStrategy,它实现了 ITextTripleClickStrategy 接口。为了简单起见,我不添加具体代码了,只是显示一个对话框表示三击事件被我们捕捉到了。三击的时候具体做什么,读者有兴趣可以自己完成。

Tags:基于 JFace Text

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