EMF データモデルがあり、それをフレームワーク「Graphiti」で表します。データモデルが変更された場合、UpdateFeature のメソッド「updateNeeded()」がランダムに呼び出されるかどうかが決まります。したがって、私には聞き手がいます。このリスナーは、変更があった場合にメソッド「update()」を呼び出します。メソッドの更新では、データモデルとダイアグラムの違いを定義できます。しかし、ダイアグラムに何かを追加または変更したい場合は、例外がスローされます。
ダイアグラムを自動更新する方法を知っている人はいますか?
リスナーのサンプルコードは次のとおりです。
UpdateContext updateContext = new UpdateContext(getDiagram().getChildren().get(0).getGraphicsAlgorithm().getPictogramElement());
IUpdateFeature updateFeature = getFeatureProvider().getUpdateFeature(updateContext);
updateFeature.update(updateContext);
そして例外:
!ENTRY org.eclipse.ui 4 0 2013-07-11 13:36:43.886 !MESSAGE 未処理のイベント ループ例外!STACK 0
org.eclipse.swt.SWTException: ランナブルの実行に失敗しました (java.lang.IllegalStateException: 書き込みトランザクションなしでリソース セットを変更できません)
原因: java.lang.IllegalStateException: org.eclipse.emf.transaction.impl.TransactionChangeRecorder.assertWriting で書き込みトランザクションなしでリソース セットを変更できません
よろしく、ジュリアン