我有一个 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: 无法执行 runnable (java.lang.IllegalStateException: Cannot modify resource set without a write transaction)
原因:java.lang.IllegalStateException:无法在没有 org.eclipse.emf.transaction.impl.TransactionChangeRecorder.assertWriting 的写入事务的情况下修改资源集
问候,朱莉安