双击lumaqq

lumaqq  时间:2021-02-26  阅读:()
版权所有IBM公司2008商标基于JFaceTextFramework构建全功能代码编辑器:第3部分第1页,共7基于JFaceTextFramework构建全功能代码编辑器:第3部分DoubleClick和TripleClick马若劼(maruojie@cn.
ibm.
com)软件工程师IBM中国软件开发中心2008年3月27日DoubleClick(双击)和TripleClick(三击)是方便用户选择文本(当然不一定非得是选择文本)的辅助功能.
本文介绍在JTF里面如何自定义双击行为,以及如何为JTF添加三击支持.
查看本系列更多内容DoubleClick(双击)和TripleClick(三击)是方便用户选择文本(当然不一定非得是选择文本)的辅助功能.
本文介绍在JTF里面如何自定义双击行为,以及如何为JTF添加三击支持.
DoubleClick在Eclipse的Java编辑器中,用户用鼠标在编辑区域双击时,可以看到双击处的单词会被选中,这就是JTF的DoubleClick(双击)特性.
双击时触发的动作是可以自定义的,不一定非要选择一段文本.
与双击相关的接口是ITextDoubleClickStrategy,它只有一个方法叫做doubleClicked,只要实现这个接口就可以了,在例子中,我添加了ExprDoubleClickStrategy类:清单1.
ExprDoubleClickStrategy实现了ITextDoubleClickStrategy接口publicclassExprDoubleClickStrategyimplementsITextDoubleClickStrategy{publicvoiddoubleClicked(ITextViewerviewer){//getdocIDocumentdoc=viewer.
getDocument();//gettokenlistTokenListtokenList=TokenManager.
getTokenList(doc);//getdoubleclickpositionintoffset=viewer.
getSelectedRange().
x;//gettokeninthatoffsetCommonTokentoken=tokenList.
getToken(offset);//selectwholetokeniftokenisnotnulldeveloperWorksibm.
com/developerWorks/cn/基于JFaceTextFramework构建全功能代码编辑器:第3部分第2页,共7if(token!
=null&&token.
getType()!
=Token.
EOF){//selectdoubleclickedtokenviewer.
setSelectedRange(token.
getStartIndex(),token.
getStopIndex()-token.
getStartIndex()+1);}}}这个流程非常直接,得到被点击的位置,通过位置得到相应的符号,然后选择整个符号.
我们再次利用了TokenList来得到指定字符偏移处的符号.
和本系列第二部分一样,有了实现还得让JTF知道你的实现,我们再来修改ExprConfiguation,覆盖一个getDoubleClickStrategy方法:清单2.
让JTF知道你的DoubleClick实现publicITextDoubleClickStrategygetDoubleClickStrategy(ISourceViewersourceViewer,StringcontentType){returnnewExprDoubleClickStrategy();}只是简单的返回我们实现的ITextDoubleClickStrategy而已,这样JTF就知道我们的双击行为了,注意双击行为也是和文本类型绑定到一起的,但是我们只有一种类型,所以没有利用这个信息.
读者可以尝试本文的例子,双击某个变量,看看是否这个变量被全部选中了.
TripleClick有了双击,可能自然就会想到三击.
但是JTF本身是不支持三击行为的.
我们需要自己实现,只要模仿双击的机制来做就可以了.
接口模仿双击的处理方式,我们也添加一个ITextTripleClickStrategy接口,如下所示:清单3.
模仿DoubleClick,创建ITextTripleClickStrategy接口publicinterfaceITextTripleClickStrategy{/***Invokedwhentripleclickingdetected*/publicvoidtripleClicked(ITextViewerviewer);}然后我定义了ExprTripleClickStrategy,它实现了ITextTripleClickStrategy接口.
为了简单起见,我不添加具体代码了,只是显示一个对话框表示三击事件被我们捕捉到了.
三击的时候具体做什么,读者有兴趣可以自己完成.
配置下一步就是让JTF知道我们的三击策略,不过SourceViewerConfiguration没有和三击有关的方法,我们可以模仿getDoubleClickStrategy的形式添加一个getTripleClickStrategy方法,然后修改ibm.
com/developerWorks/cn/developerWorks基于JFaceTextFramework构建全功能代码编辑器:第3部分第3页,共7ExprViewer的configure方法,把三击策略安装上去.
其实就是一个哈希表,里面把文本类型和三击策略映射了起来.
这些代码都是模仿SourceViewer中对双击策略的处理方式写的,所以就不一一列举了.
事件的触发最后的一步是触发三击事件,不然你装多少个三击策略也没用.
从原理上说,三击事件就是鼠标双击之后又点了一下,我们可以监听双击事件,然后在下一次鼠标单击时检查其和双击事件的时间间隔,如果小于一个阈值,就触发三击事件.
所以为了触发三击事件,我们需要给ExprViewer安装一个鼠标事件监听器:清单4.
给ExprViewer添加三击事件触发机制//HowlongwecanwaitfortripleclickafterdoubleclickpublicstaticfinallongTRIPLE_CLICK_THRESHOLD=500;privateclassTripleClickStrategyConnectorextendsMouseAdapter{privatelongdoubleClickTime;publicTripleClickStrategyConnector(){doubleClickTime=0;}@OverridepublicvoidmouseDoubleClick(MouseEvente){doubleClickTime=System.
currentTimeMillis();}@OverridepublicvoidmouseDown(MouseEvente){//comparetimeintervalwiththresholdif(System.
currentTimeMillis()-doubleClickTimeLumaQQ的创立者版权所有IBM公司2008(www.
ibm.
com/legal/copytrade.
shtml)商标(www.
ibm.
com/developerworks/cn/ibm/trademarks/)

HostYun 新增可选洛杉矶/日本机房 全场9折月付19.8元起

关于HostYun主机商在之前也有几次分享,这个前身是我们可能熟悉的小众的HostShare商家,主要就是提供廉价主机,那时候官方还声称选择这个品牌的机器不要用于正式生产项目,如今这个品牌重新转变成Hostyun。目前提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路,访问质量不错。今天和大家分享下...

国内云服务器 1核 2G 2M 15元/月 萤光云

标题【萤光云双十二 全场6折 15元/月 续费同价】今天站长给大家推荐一家国内云厂商的双十二活动。萤光云总部位于福建福州,其成立于2002 年。主打高防云服务器产品,主要提供福州、北京、上海 BGP 和香港 CN2 节点。萤光云的高防云服务器自带 50G 防御,适合高防建站、游戏高防等业务。这家厂商本次双十二算是性价比很高了。全线产品6折,上海 BGP 云服务器折扣更大 5.5 折(测试了一下是金...

licloud:$39/月,香港物理服务器,30M带宽,e3-1230v3/16G内存/1T硬盘

licloud官方消息:当前对香港机房的接近100台物理机(香港服务器)进行打折处理,30Mbps带宽,低至不到40美元/月,速度快,性价比高,跑绝大多数项目都是绰绰有余了。该款香港服务器自带启动、关闭、一键重装功能,正常工作日内30~60分钟交货(不包括非工作日)。 官方网站:https://licloud.io 特价香港物理服务器 CPU:e3-1230v2(4核心、8线程、3.3GH...

lumaqq为你推荐
如何免费开通黄钻怎么免费开通黄钻~~~?依赖注入请问下依赖注入的三种方式的区别二叉树遍历二叉树三种遍历方式原则?iphone越狱后怎么恢复苹果越狱后如何恢复ios系统iOS系统为什么那么好二层交换机什么是二层交换机网管工具网吧工具有什么?网站优化方案网站优化方案怎么写?gbk编码表GB GBK utf8码的区别如何清理ie缓存怎么清理IE的缓存
softlayer 好看的桌面背景图 智能骨干网 腾讯云分析 adroit 美国在线代理服务器 登陆空间 注册阿里云邮箱 114dns 域名转入 攻击服务器 移动王卡 windowssever2008 winds 机柜尺寸 alexa搜 远程登录 西安电信测速网 ddos攻击软件 ddos攻击工具 更多