`

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出厂设置

    以下将详细介绍如何对JACE进行恢复出厂设置,并涉及与霍尼韦尔WEBS系列控制器相关的知识点。 首先,了解WEBS系列控制器:WEBS是Web-based Energy Management System的缩写,是一个基于网络的能源管理系统,用于监控...

    计算引擎Jace.NET.zip

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

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

    本文将深入探讨Java平台上的Jace框架与C++中的ACE(Adaptive Communication Environment)框架之间的相似性,并对两者的技术特点进行详细分析。 首先,Jace(Java Adaptation Class Environment)是一个开源的Java...

    Jace-开源

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

    jace-robin.github.io

    在压缩包文件名称列表中看到的 "jace-robin.github.io-main",很可能是项目的主分支或主要文件夹,其中包含了整个网站的源代码。在 GitHub 上,"main" 通常是默认的主分支名,代替了以前的 "master" 分支。这个...

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

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

    Modbus Tcp从站设置.pdf

    在WorkPlace AX平台中,首先要将JACE(Java Application Control Engine)设置为Modbus TCP从站。这可以通过在“station/Config/Drivers”目录下创建一个新的ModbusTcpSlaveNetwork来完成。这一过程涉及到对JACE设备...

    Modbus Tcp从站设置.docx

    首先,你需要在WorkPlace AX环境中配置JACE(Java Application Control Engine)作为Modbus TCP的从站。在`station/Config/Drivers`目录下创建一个新的`ModbusTcpSlaveNetwork`条目。这一步骤是定义JACE作为从站的...

    Niagara Framework 最佳实践FAQ

    连接JACE(Java Application Control Engine)控制器时,是否必须使用与JACE版本相同的Workbench,以及所有jar包文件是否需要保持版本一致?Tridium公司建议使用相同版本的Workbench对JACE控制器进行Commission。这...

    jace.springboot.workspace

    标题“jace.springboot.workspace”和描述“jace.springboot.workspace”暗示了这是一个与Spring Boot相关的项目工作空间,很可能是GitHub上的一个开源项目或者个人的学习实践。标签“Java”进一步确认了这个项目是...

    jace-dps-express

    jace-dps-express

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

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

    ModbusTcp从站设置.pdf

    本文档旨在详细介绍如何在Workplace AX环境中配置JACE控制器作为Modbus TCP从站的过程,包括网络驱动的搭建、设备变量的设置以及测试验证等关键步骤。 #### 二、配置Modbus TCP从站 ##### 2.1 创建ModbusTCP从站...

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

    "JavaScript" 表明在博客中可能会有涉及JavaScript的内容,这可能与Servicenow的客户端脚本、自定义用户界面或与JavaScript相关的集成有关。 【压缩包子文件的文件名称列表】"jace.pro-master" 提示这是一个Git仓库...

    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 • ...

    读卡器软件

    5. **兼容性**:高质量的读卡器软件应与多种类型的125KHz非接触ID卡兼容,并能与各种读卡器硬件设备无缝对接。 6. **安全性**:由于涉及到数据读写,软件必须具备足够的安全措施,防止未经授权的访问或数据篡改,...

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

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

    filenet工具类及需要的jar包

    在开发过程中,为了调试和测试,可能还需要设置日志级别,以便记录Filenet API的详细操作信息。同时,注意处理可能出现的异常,如网络问题、权限错误或资源未找到等。 在实际项目中,"Filenet工具类"通常会包含以下...

    Windows 2000 DNS服务器配置

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

    niagara练习站点

    Niagara是一个广泛应用于楼宇自动化系统(BAS)的软件平台,由Tridium公司开发。这个平台基于Java,提供了一个开放、互操作的框架,使得...这个过程中,理论知识与实践操作相结合,有助于提升在实际项目中的应用能力。

Global site tag (gtag.js) - Google Analytics