在我的 RCP - 项目中,我使用 eclipse 数据绑定(bind)将 ui 与后端连接起来。我希望打开的编辑器中的每个更改都是不可撤销的。我的 Domainmodell 和 UI 分开在两个不同的插件中。
我当前的方法是为数据绑定(bind)实现我自己的 UpdateValueStrategy 类。我扩展了正常的 UpdateValueStrategy 并重写了 doSet 方法。
从那里我得到了OperationHistory和Global UndoContext,然后我创建了一个新的操作。我有各种操作,例如“ChangeCustomerName”和“ChangeCustomerNote”。
问题:
- 我是否需要自己实现撤消/重做逻辑,或者框架是否以某种方式支持我这样做?
- 是否有比 UpdateValue - Strategy 类的 doSet() 更好的位置或方法来创建可撤消的操作。要访问已更改的文本字段并不容易。
最佳答案
您得到的大部分答案是:使用 EMF.Edit ,它包含了开箱即用的 org.eclipse.emf.databinding.edit 并且有一个很棒的 tutorial在网上。
有一个开放的 feature request在 Eclipse bugtracker 中,关于在没有 EMF 的 JFace 数据绑定(bind)中也包括撤消/重做,但它尚未完成。 eclipse forum 中也对此进行了讨论。 .
关于eclipse - 如何结合 Eclipse 数据绑定(bind)和 UndoableOperations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967832/