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

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

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示:Double Click(双击)和 Triple Click(三击)是方便用户选择文本(当然不一定非得是选择文本)的辅助功能,本文介绍在 JTF 里面如何自定义双击行为,基于 JFace Text Framework 构建全功能代码编辑器: 第 3 部分:Double Click 和 Triple Click,以及如何

Double Click(双击)和 Triple Click(三击)是方便用户选择文本(当然不一定非得是选择文本)的辅助功能。本文介绍在 JTF 里面如何自定义双击行为,以及如何为 JTF 添加三击支持。

Double Click

在 Eclipse 的 Java 编辑器中,用户用鼠标在编辑区域双击时,可以看到双击处的单词会被选中,这就是 JTF 的 Double Click(双击)特性。双击时触发的动作是可以自定义的,不一定非要选择一段文本。

与双击相关的接口是 ITextDoubleClickStrategy,它只有一个方法叫做 doubleClicked,只要实现这个接口就可以了,在例子中,我添加了 ExprDoubleClickStrategy 类:

清单1. ExprDoubleClickStrategy 实现了 ITextDoubleClickStrategy 接口

public class ExprDoubleClickStrategy implements ITextDoubleClickStrategy { 
public void doubleClicked(ITextViewer viewer) { 
 // get doc 
 IDocument doc = viewer.getDocument(); 
  
 // get token list 
 TokenList tokenList = TokenManager.getTokenList(doc); 
  
 // get double click position 
 int offset = viewer.getSelectedRange().x; 
  
 // get token in that offset 
 CommonToken token = tokenList.getToken(offset); 
  
 // select whole token if token is not null 
 if(token != null && token.getType() != Token.EOF) 
 { 
  // select double clicked token 
 viewer.setSelectedRange( 
 token.getStartIndex(), token.getStopIndex() - token.getStartIndex() + 1); 
 } 
 } 
} 

1 2 3  下一页

Tags:基于 JFace Text

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