java – SWT文本字段设置和绑定到密钥的RCP命令
我有RCP应用程序,我有一个命令,它启动一个实体的向导(编辑向导,显示实体的所有字段,用户可以更改它并完成向导以保存此实体).我正在使用JFace数据绑定将实体的字段绑定到swt Texts和Combos.
该命令具有处理程序(包含向导调用),并且此处理程序绑定到某个按钮,并且一切正常. 然后我需要将此命令绑定到某个组合键(例如Ctrl E).我正在使用org.eclipse.ui.bindings扩展: <key commandId="com.project.command" contextId="com.project.view.context" schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" sequence="M1+E"> </key> “com.project.view.context”是由我在两个不同的视图中绑定到相同的组合键,它看起来没问题(并在这两个视图中激活不同的命令). 但是当我通过这个组合键打开我的向导时,有一个问题: SWT文本字段不绑定到实体的整数字段.使用String字段,一切正常,它们的绑定很好.但是Integer字段不是(它里面只有空格). 我尝试过的: >我调试了我的向导和向导页面,并且所有时间实体状态都是 swtTextField.setText(entity.getIntegerField().toString()); 但这也没有用!看起来这不是JFace绑定问题, entity.getIntegerField().toString()=“1234”之前和之后 (当我从Key组合命令调用运行此调试时, 所以,总结一下,当我通过按钮(或上下文菜单)调用我的命令时,一切正常.但是当我通过键组合绑定扩展调用我的命令时,Integer-> Text字段(String字段工作正常)存在问题. 有什么想法吗? 补充:我发现问题是关键组合.当组合键包含非英语键符号(Ctrl非英语键我的语言键符号,导致我们的应用程序使用非英语键组合)时,问题出现:SWT Text不接受整数值.当组合键是英语(Ctrl english-key)时 – 一切正常. 所有其他命令(没有SWT文本字段)也可以正常工作,它们也被绑定到Ctrl非英语键组合…… 这很奇怪,我仍然不明白,为什么那个hanneps …… 解决方法
几个月前我遇到了这个问题.问题出在JFace Data Bindings上.有什么帮助:
>使用org.eclipse.core.databinding.observable.value.IObservableValue观察文本.所以你可以编写如下代码:IObservableValue yourTextObserveTextObserveWidget = SWTObservables.observeText(yourText,SWT.Modify); 因此,将模型绑定到Text的最终代码将如下所示: DataBindingContext bindingContext = new DataBindingContext(); IObservableValue yourTextObserveTextObserveWidget = SWTObservables.observeText(yourText,SWT.Modify); IObservableValue yourModelTemplateObserveValue = BeansObservables.observeValue(yourModel,"yourInt"); bindingContext.bindValue(yourTextObserveWidget,null); 如果您有任何其他问题,请查看数据绑定的文档.这在我的程序中使用String,boolean和Integer类型.我没有测试过任何其他的东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |