掲示板一覧 - トピック一覧 EA API Connectorの削除が図に反映されないケースがあります。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | トピック |
---|---|
diosan2 | 投稿日時: 2008-6-26 10:39 |
EA Full Member 投稿: 75 |
Connectorの削除が図に反映されないケースがあります。要素の接続を削除する時、削除したことが図に反映されないケースがあるようです。
ちょっとわかりにくいので手順を記します。 ① 図Aに要素Aと要素Bを作成し、接続で結びます。 ② 図Bに要素Aと要素Bのリンクを置きます。 → 自動で接続が表示されます。 ③ プログラムからAB間の接続を削除します。 ④ 図Aの方は接続がなくなっています。 図Bの方は接続が残っています。 ⑤ 図Bを一旦閉じてから開きなおすと接続は消えています。 削除は以下のようなコードを実行しています。 eaElem.Connectors.DeleteAt(i, true); AdviseConnectorChange()やAdviseElementChange()を直後に 読んだりもしましたが、結果は同じでした。 何が足りないのでしょう? |
sugimoto | 投稿日時: 2008-6-26 10:55 |
EA Administrator 投稿: 1958 |
Re: Connectorの削除が図に反映されないケースがあります。ご質問いただきましたような状況の場合は、
ダイアグラムの表示を更新する必要があります。 ある特定のダイアグラムの表示のみを更新する場合は、 Repository.ReloadDiagram(long) を実行してください。 上記の例の場合は、パラメータに図BのDiagramIDを設定してください。 開いているダイアグラム全体の表示を更新する場合は、 Repository.RefreshOpenDiagrams(bool) を実行してください。 パラメータに設定する値は、ヘルプファイルをご確認ください。 ご確認のほど、よろしくお願いいたします。 何かご不明点などありましたら、ご連絡ください。 |
diosan2 | 投稿日時: 2008-6-26 11:20 |
EA Full Member 投稿: 75 |
Re: Connectorの削除が図に反映されないケースがあります。ReloadDiagramに関しては知っていましたが、要素に対する接続
削除なので対象の図を探すのはできるだけ避けたいところです。 ConnectorIDからDiagramLinkを探し、そこからDiagramを導き ださなくてはいけないのですよね。 ご指摘のRepository.RefreshOpenDiagrams(bool)がよさそうに 思ったので試したのですが、うまくいきませんでした。 追伸:EAのバージョンは"Build 830J" です。 |
sugimoto | 投稿日時: 2008-6-26 12:03 |
EA Administrator 投稿: 1958 |
Re: Connectorの削除が図に反映されないケースがあります。ご迷惑をお掛けし、申し訳ございません。
現在のビルドでは、Repository.RefreshOpenDiagrams(bool)が 正しく動作していないことを確認いたしました。 パラメータをfalseにしても、trueにしても結果は同様でした。 こちらは、EAのバグになりますので、 開発元に連絡し、修正いたしたします。 現時点ですと、ダイアグラムの再読み込みはReloadDiagramになって しまいますが、ご認識どおり、このAPIを利用しようとすると、 該当の接続を利用している要素を調べ、その要素が配置されたダイアグラムを すべてReloadDiagramする必要があり、接続を削除する際の処理が 複雑かつ重くなってしまうことが考えられます。 そのため、今回のような状況では、やはりRefreshOpenDiagramsの ご利用がよろしいかと思います。 RefreshOpenDiagramsが修正されましたら、ご連絡させていただきます。 引き続き、ご迷惑をお掛けし、申し訳ございません。 |
diosan2 | 投稿日時: 2008-6-26 13:27 |
EA Full Member 投稿: 75 |
Re: Connectorの削除が図に反映されないケースがあります。ご確認いただきありがとうございました。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |