我在使用JFace TreeViewers时遇到了一些困难,他们以这种方式与e4选择服务/框架进行交互。
我想了解在同一MPart中使用一个或多个JFace查看器时(通过选择服务)管理选择的预期方式是什么。
两个控件(树形查看器和表形查看器)的基本操作可以按预期工作,但是,当焦点移至零件内的另一个控件,然后通过右键单击先前选择的树返回到树形查看器项,则树控件不会重新发出选择事件,从而导致e4 ESelectionService无法使用正确的选择进行更新,这会产生各种trick流效果,例如处理程序的@CanExecute方法无法正常运行预期。请注意,当通过左键单击先前选择的项将焦点返回到TreeViewer时,将按预期发出选择事件。
我确定我可以使用MouseListeners或FocusListeners对此进行编码,但是我想正确地做事,这似乎有点Kludgy。
总结:
带有测试用例结果的图像总结问题: Test Case Results
根据eclipse中的e4向导,此处提供了精简的样本/测试代码。 https://github.com/krislyon/e4selection-issue
任何帮助/建议将不胜感激。