您的位置:首页 > 其它

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

2006-04-29 22:01 197 查看
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也不是万能的,什么图像都能传。
因为要出版本,就牺牲了监控界面变化的功能,有机会再想办法加上吧。不得已呀。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: