我实现了一个自定义 PropertySheet,如 here 中所述。 。
所以我有一个主视图,它实现了选择提供程序,并且可以在我的自定义 PropertySheet View 中显示属性。
我现在的问题是,如果属性 View 中存在未保存的更改,我想在属性 View 中编辑选择的某些属性,并防止更改主视图中的选择。
解决该问题的最佳方法是什么?
如果我在自定义属性 View 中实现 ISaveablePart,我可以将其标记为脏。如果我的属性 View 脏了,如何防止更改选择?
提前致谢!
最佳答案
由于 View 是非模式(例如非阻塞)UI 组件,因此没有真正的方法可以防止 View 外部的选择更改。因此,属性 View 的预期工作方式是尽快保存。
默认的、基于 TreeViewer 的 EMF 模型实现使用 CellEditor 来更改其值;当 CellEditor 中的值发生更改时,更改的值会自动写回原始模型,以避免您提到的数据丢失情况。
换句话说,您必须依赖数据源(例如提供选择的编辑器)来存储永久更改,并且可以通过该源(编辑器)对更改进行序列化。
关于java - RCP 3.x 可编辑 PropertySheet View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37943637/