私のRCP - プロジェクトでは、Eclipseデータバインディングを使用してUIをバックエンドに接続しています。開いているエディターでのすべての変更を元に戻せるようにしたい。私のドメインモデルと UI は 2 つの異なるプラグインに分かれています。
私の現在のアプローチは、データバインディング用に独自の UpdateValueStrategy クラスを実装することです。通常の UpdateValueStrategy を拡張し、doSet Methode をオーバーライドします。
そこから OperationHistory と Global UndoContext を取得し、新しい Operation を作成します。「ChangeCustomerName」や「ChangeCustomerNote」など、さまざまな操作があります。
質問:
- 元に戻す/やり直しのロジックを自分で実装する必要がありますか、それともフレームワークが何らかの方法でこれをサポートしていますか?
- UpdateValue - Strategy クラスの doSet() よりも、取り消し可能な操作を作成するためのより良い場所または方法はありますか。変更されたテキストフィールドにアクセスするのは簡単ではありません。