RCP 集成 citrix 导致Text没有焦点光标

来源:互联网 发布:ubuntu引导修复grub2 编辑:程序博客网 时间:2024/04/29 13:18

      RCP是基于Eclipse 3.0 ,用户的使用环境是在Windows2003 上安装RCP,critrix,使用者使用自己pc的web浏览器登陆critrix,启动RCP,critrix将本地RCP的界面传递到用户所有pc屏幕上。用户安装的是English Windows 2003。
当所有系统安装好,进行集成测试时,发现RCP上所有的Text都没有焦点光标,即鼠标点击Text,没有闪动的竖条。在中文Windows2003下测试,没有此问题。为了判断是swt的问题,还是自己的RCP的问题,集成显示Eclipse时,没有问题。
       用eclipse生成一个mail RCP的例子RCP,集成显示没有问题,把mail RCP的plugin放到本RCP的plugins目录下,启动本RCP后,mail plugin能够插入到本RCP中,但是也是没有Text焦点。断定是WorkbenchWindowAdvisor中出现的问题,因为eclipse runtime 启动哪个plugin 作为RCP的Application,会调用它的WorkbenchWindowAdvisor。通过屏蔽代码得出问题出现在postWindowOpen()里面的ScreenLocker里面。
ScreenLocker的作用是如果用户在设定的时间内,没有点击键盘,点击鼠标,屏幕最大最小化,则所定RCP,用户输入登陆密码才能继续使用。实现整个RCP监控鼠标,键盘,用了如下代码:
Display.getDefault().addFilter(SWT.KeyDown, listener);
Display.getDefault().addFilter(SWT.MouseDown, listener);
Display.getDefault().addFilter(SWT.Paint, listener);

      最后试验出是SWT.Paint导致此问题,去掉此句则没有问题。开来citrix也不是万能的,什么图像都能传。
因为要出版本,就牺牲了监控界面变化的功能,有机会再想办法加上吧。不得已呀。

原创粉丝点击