首页 > 解决方案 > JFace TreeViewers 和 Eclipse e4 框架/SelectionService

问题描述

我在使用 JFace TreeViewers 时遇到了一些困难,它们与 e4 选择服务/框架交互的方式。

我想了解在同一 MPart 中使用一个或多个 JFace 查看器时(通过选择服务)管理选择的预期方式是什么。

两个控件(treeviewer 和 tableviewer)的基本操作按预期工作,但是当焦点移动到部件内的不同控件,然后通过右键单击先前选择的树项返回 TreeViewer 时,选择事件是未由树控件重新发布,导致 e4 ESelectionService 未使用正确的 selection 更新,这会产生各种涓滴效应,例如处理程序的 @CanExecute 方法无法按预期运行。请注意,当焦点通过左键单击先前选择的项目返回到 TreeViewer 时...按预期发出选择事件。

我确信我可以使用 MouseListeners 或 FocusListeners 编写代码,但我想正确地做事,这似乎有点 Kludgy。

总结一下:

带有测试用例结果总结问题的图像: 测试用例结果

基于 Eclipse 中的 e4 向导,此处提供了精简的示例/测试代码。 https://github.com/krislyon/e4selection-issue

任何帮助/建议将不胜感激。

标签: eclipse-plugineclipse-rcpjfacee4

解决方案


推荐阅读