基于 JFace Text Framework 构建全功能代码编辑器: 第 3 部分:Double Click 和 Triple Click
2010-03-18 00:00:00 来源:WEB开发网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);
}
}
}
更多精彩
赞助商链接