4

EMF モデルと生成されたエディターがあります。モデル/エディタでは、エレメント「ユニット」(U)と「仕様」(S)を接続することができます。ここで、少なくとも 1 つの U が S を満たす場合、S に特化した CSS スタイルを作成したいと考えています。パピルス。

このため、「Mapped」と呼ばれる S の追加のプロパティを追加しました (少なくとも 1 つの U が S を満たす場合は true、そうでない場合は false)。次に、(handleNotification - メソッドで) 1 つ以上の接続が追加されたときに、コードから "Mapped"-Property を設定しようとしました。

notifier.setMapped(true);

例外あり:

IllegalstateException: Cannot modify resource set without a write transaction

2 番目の解決策では、別の例外が発生しましたが、意味上の結果は同じでした。

ed.getCommandStack().execute(SetCommand.create(ed, notifier,
    xyzPackage.Literals.SPECIFICATION__MAPPED, true));

例外:

java.lang.IllegalStateException: Cannot activate read/write 
    transaction in read-only transaction context

これらの例外を処理する方法を知っている人、または適切な回避策がある人はいますか? 主な目的は、CSS ファイルが「マップされた」プロパティの変更を認識することです。

どうもありがとう :)

4

2 に答える 2

-1

EMF を変更するには、トランザクション API を使用する必要があります。モデルに加えるすべての変更は、コマンドを使用して行う必要があります。

APIを見てみましょう

于 2014-04-16T16:26:57.210 に答える