`

Jace中的光标与鼠标设置(ITextViewer)

 
阅读更多

JFace中的SourceViewer封装了 StyledText这个控件,该控件可以自由设置光标位置及鼠标形状。我们根据该控件来做设置:

 

光标位置的设置,result是空间内容中光标所在偏移量(int):

sourceViewer.getTextWidget().setCaretOffset(result);

sourceViewer.getTextWidget().setFocus();

 

鼠标图形的设置:

viewer.getTextWidget().setCursor(new Cursor(getDisplay().getCurrent(),SWT.CURSOR_HAND));

第二个参数为鼠标形状样式,可供使用的样式有:

 

SWT.CURSOR_

ARROWSWT.CURSOR

_WAITSWT.CURSOR

_CROSSSWT.CURSOR_

APPSTARTINGSWT.CURSOR

_HELPSWT.CURSOR_

SIZEALLSWT.CURSOR_

SIZENESWSWT.CURSOR_

SIZENSSWT.CURSOR_

SIZENWSESWT.CURSOR_

SIZEWESWT.CURSOR_

SIZENSWT.CURSOR_

SIZESSWT.CURSOR_

SIZEESWT.CURSOR_

SIZEWSWT.CURSOR_

SIZENESWT.CURSOR_

SIZESESWT.CURSOR_

SIZESWSWT.CURSOR_

SIZENWSWT.CURSOR_

UPARROWSWT.CURSOR_

IBEAMSWT.CURSOR_

NOSWT.CURSOR_

HAND

 

比如在实现TextEditer的内容辅助功能的时候,要实现自动补齐大括号就需要用到,代码如下:

public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer,int offset){
IDocument document = viewer.getDocument();
String docStr=document.get();
String autoMatch="{\n\n";
String addspace=" ";
char[] desChar = docStr.toCharArray();
int mid = offset-1;
int i=mid;

for(;i>=0;i--)
{
if(i==0 || desChar[i-1]==' ' || desChar[i-1]=='\n')
break;
}
String currentChar= String.valueOf(desChar,i,mid-i+1);
if(desChar[offset-1]=='{')
{
try {
int start=document.getLineOffset(document.getLineOfOffset(offset));
int numspace=offset-start-1;
//System.out.println("本行第一个字符的位置:"+start);
//System.out.println("应该补齐的空格数:"+numspace);
for(i=0;i<numspace;i++)
{
autoMatch+=' ';
addspace+=' ';
}
autoMatch+='}';
//对于document而言,offset是从0开始的。所以offset要用offset-1,而将length设置成0就相当于实现了insert的功能。
document.replace(offset-1, 1, autoMatch); //匹配大括号
document.replace(offset+1, 0, addspace); //将}的上一行补齐空格
viewer.getTextWidget().setCaretOffset(offset-1+addspace.length()+2);//设置光标位置
//sourceViewer.getTextWidget().setCaretOffset(result);
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

List list = getKeyWordProposals(currentChar,offset);
return ((ICompletionProposal[])(list.toArray(new ICompletionProposal[list.size()])));

}

分享到:
评论

相关推荐

    如何恢复JACE出厂设置

    针对霍尼WEBS系列的控制器IP和串口都连接不上的时候,这个各文档可以帮助你

    计算引擎Jace.NET.zip

    Jace.NET 是 .NET 平台上的一个高性能计算引擎。可对包含在字符串中的数学公式进行计算并得出结果。 示例代码: Dictionary, double&gt; variables = new Dictionary, double&gt;(); variables.Add("var1", 2.5); ...

    Jace-开源

    Jace 是一组基于 JNI 的 C++ 和 Java 库和程序,它们使编写与 Java 虚拟机 (JVM) 集成的 C++ 代码变得非常容易。 此项目已移至 http://code.google.com/p/jace/

    jace的全部原代码类似于C++的ACE自适配通信框架

    jace的全部原代码类似于C++的ACE自适配通信框架

    Jace.NET:.NET的另一个计算引擎

    Jace.NET的技术体系结构,这是我在业余时间开发的OSS框架。

    jace-robin.github.io

    我的真棒网站 jace-robin.github.io

    jace-dps-express

    jace-dps-express

    jace.springboot.workspace

    jace.springboot.workspace

    java6.0源码-bio-formats-jace:生物格式JACEC++绑定

    JACE C++ 绑定 请注意,这是一个遗留项目,不再积极维护。 使用风险自负。 ##介绍 为了使用 C++ 编写的软件可以访问 Bio-Formats,我们创建了一个 Bio-Formats C++ 接口。 它用于为每个等效的 Bio-Formats Java 类...

    ACE Niagara AX Install & Startup Guide

    • “Connect to the JACE”on page 3 • “Run the Commissioning Wizard”on page 4 • “Serial port/power monitoring (station) config”on page 16 • “Optional platform administration”on page 20 • ...

    jace:J-Ace - Java 实际影响集 (AIS) 分析器

    #J-Ace - Java 实际影响集 (AIS) 分析器J-Ace 的目的是在进行更改后对软件存储库执行影响分析。 存在支持开发人员在实施阶段之前确定估计影响集的工具。 J-Ace 工具旨在从实际影响集中... 添加用户 jace 和 jace 密码

    jace.pro:关于servicenow和其他技术的博客

    jace.pro:关于servicenow和其他技术的博客

    Windows 2000 DNS服务器配置

    可以通过安装服务、协议与工具并正确地设置它们来把该计算机配置成诸如Web服务器、IIS服务器、FTP服务器、DNS 服务器、DHCP服务器和WINS服务器等各种服务器,以便为网络中的客户机提供某项服务。在Windows 2000 ...

    读卡器软件

    读卡器 125KHz 非接触ID 复制器

    filenet工具类及需要的jar包

    访问Filenet接口的工具类以及所需要的FileNetAPI jar包

    Smarty入門.rar

    作者:Jace Ju Smarty介紹 什麼是樣版引擎 樣版引擎的運作原理 使用Smarty的一些概念 Smarty的基礎 安裝Smarty 程式的資料夾設定 第一個用Smarty寫的小程式 如何安排你的程式架構 從變數開始 ...

    全新热搜热门榜内容系统聚合源码

    相应设置修改请查看源码中的注释 admin.php为第三方数据库管理程序,用于内容链接统计查看(默认密码admin,请在文件中修改) 点击统计数据库log.db会在首次访问内容链接时生成,如未建立请保证主目录可写 为了...

    [详细完整版]交通监控系统.doc

    交通监控系统 特点 软件硬件紧密集成:采用先进的计算机软件技术、监控技术、通信和图像处理等技术 ,结合我国城市交通监控管理特点,使交通... 使用美国Tridium公司的JACE设备,实时监控设备正常运行,并为今后发展

    template-python:新Python库的模板

    特征针对CI,覆盖范围和分析服务的预配置设置pyproject.toml用于管理依赖关系和包元数据用于自动执行常见Makefile : 用poetry安装依赖项使用isort和black自动格式化用pylint静态分析用mypy类型检查文档字符串与造型...

    barrins-codex:有关MtG Duel策略的网站

    巴林法典 有关MtG Duel Commander Strategy的网站 特别感谢 在第一次锁定期间(大约2020年4月),我开始与在一个项目上工作。... 使用卡片名称变量,它们在上下文中(例如{{ jace_the_mind_sculptor }}代表Jace, the M

Global site tag (gtag.js) - Google Analytics