eclipse - 如何结合 Eclipse 数据绑定(bind)和 UndoableOperations?

标签 eclipse data-binding eclipse-rcp undo-redo

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

我当前的方法是为数据绑定(bind)实现我自己的 UpdateValueStrategy 类。我扩展了正常的 UpdateValueStrategy 并重写了 doSet 方法。

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

问题:

  1. 我是否需要自己实现撤消/重做逻辑,或者框架是否以某种方式支持我这样做?
  2. 是否有比 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/

相关文章:

java - Eclipse block 着色

java - 我如何强制方法的实现在 Java 中的 try-catch block 中?

c# - BindingList 未更新绑定(bind)的 ListBox

c# - 是否可以从列表中的项目获取索引?

java - SWT 选项卡文件夹 : How do you automatically compress TabItems when there are too many

java.lang.UnsatisfiedLinkError : no gluegen-rt in java. library.path RCP 应用程序

java - 从 <li> 中选择下拉值

c++ - 无法解析类型 'uint32_t'

c# - DataGrid 更新添加的行但不更新添加的列

java - 如何阻止 View 在工作台重新启动时重新出现?