掲示板一覧   -   トピック一覧
   EA API
     APIからダイアグラムロック状態の取得が正しくできない


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
sugimoto
投稿日時: 2007-4-5 11:47
EA Administrator
投稿: 1895

APIからダイアグラムロック状態の取得が正しくできない

○ご質問

バージョン管理されたパッケージ以下のダイアグラムは(チェックアウト
しない限り)ロックされていると思いますが、APIでDiagram.IsLocked属性
を取得するとfalseが返されます。

明示的にダイアグラムをロックした場合(ダイアグラムのメニューから
「ダイアグラムのロック」を実行した場合)には、Diagram.IsLocked属性
はtrueになっています。

不具合と思われますので確認してください。


○回答

Diagram.IsLockedにつきましては、ダイアグラムのロック機能を有効に
した場合にtrueになります。

バージョン管理によるロックにつきましては、ロックという言葉は同じ
なのですが、別機能として扱われており、Diagram.IsLocked ではない
別のAPIで情報を取得するようになっています。

そのため、バージョン管理によるロックがされている場合に、
Diagram.IsLocked がtrue にならないのは、現状の動作としては正しい
ということになります。

バージョン管理につきましては、パッケージ単位で管理されておりますので、
Diagram には情報がありません。Package.IsVersionControlled にて
そのパッケージがバージョン管理されているかを確認できます。
また、現在のチェックアウトやチェックインによる状態は、
Package.VersionControlGetStatus() にて確認することができます。
詳細は、ヘルプの「Package」をご覧下さい。


○ご質問2

やりたかったことは、
ダイアグラムを指定してダイアグラム上の要素の編集するFormを作成し、
ダイアグラムがロックされている時には編集不可とする場合の条件判断をしたい。

回答の方法ですと、ダイアグラムの直上のパッケージがバージョン管理
対象パッケージとは限らなく、処理が煩雑になるため、ダイアグラム上の
要素のElement.Locked属性を利用して編集制限をかけることで解決する
ことにしました。


○回答2

バージョン管理により編集不可となっている場合に、該当パッケージ以下
の要素の Element.Locked は true になるにも関わらず、該当パッケージ
以下のダイアグラムの Diagram.IsLocked はfalse と情報に一貫性がない
ということが分かりました。

ご指摘頂きましたように、バージョン管理により編集不可になっている場合に、
Diagram.IsLocked が true にならない点につきましては、不具合の可能性も
ありますので、開発元に連絡し、機能改善要望として検討いたします。

ご迷惑をお掛けしますが、改善までは Element.Locked でのご対応をお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ