在我们的E4 RCP应用程序中,我们的透视图包含一个带有几个E4视图(MParts)的视图文件夹。 其中一个视图是CRUD视图,即。允许编辑和保存特定实体实例的视图。
每当此视图变脏时,即已编辑的实体已更改但尚未保存(由于某些内部原因),我们希望阻止更改到同一视图文件夹中的另一个视图(这将使CRUD视图不可见)。 在E4中是否有可能否决视图变得不可见?
当然我们可以在EPartService中为MPart注册一个部件监听器,但这只会允许接收partHidden事件,这已经太晚了。
答案 0 :(得分:0)
我无法找到合理的方法来做到这一点。
零件堆栈使用org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer
在CTabFolder
中实现。
虽然CTabFolder
有一个选择侦听器,可让您收听选项卡选项但它没有提供否决选择的方法。因此,即使您编写了一个扩展标准渲染器的自定义堆栈渲染器,您仍然无法控制它。
您可以编写一个全新的堆栈渲染器,但不会使用CTabFolder
,但这需要做很多工作。