4

在我的 RCP - 项目中,我使用 eclipse 数据绑定将 ui 与后端连接起来。我希望打开的编辑器中的每一个更改都是可撤销的。My Domainmodell 和 UI 分别在两个不同的插件中。

我目前的方法是为数据绑定实现我自己的 UpdateValueStrategy 类。我扩展了正常的 UpdateValueStrategy 并覆盖了 doSet Methode。

从那里我得到了 OperationHistory 和 Global UndoContext,然后我创建了一个新的 Operation。我有各种操作,如“ChangeCustomerName”和“ChangeCustomerNote”。

问题:

  1. 我是否需要自己实现撤消/重做逻辑,或者框架是否以某种方式支持我?
  2. 有没有比 UpdateValue - Strategy 类的 doSet() 更好的地方或方法来创建可撤消的操作。要访问已更改的文本字段并不容易。
4

1 回答 1

2

您将得到的答案大多是:使用EMF.Edit,它与 org.eclipse.emf.databinding.edit 一起开箱即用,并且网上有一个很好的教程

Eclipse bugtracker 中有一个关于在没有 EMF 的 JFace 数据绑定中包括撤消/重做的开放功能请求,但尚未完成。它也在eclipse 论坛中进行了讨论。

于 2011-04-29T09:36:07.907 回答