掲示板一覧   -   トピック一覧
   EA API
     DiagramObjectの取得順番


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2007-5-22 10:13

DiagramObjectの取得順番

Diagram.DiagramObjectsからDiagramObjectを取り出す際、
プロジェクトブラウザに表示されている順番で取り出すことは
できるのでしょうか?

できれば要素を上(下)に移動させると取り出す順番も自動で
変わってくれるとありがたいです。

最悪手動でもと思い、図の順序を最前面にしたり最背面にしたり
も試してみましたが変化はありませんでした。
sugimoto
投稿日時: 2007-5-22 10:48
EA Administrator
投稿: 1895

Re: DiagramObjectの取得順番

[前提]
EAのプロジェクトブラウザとダイアグラムの関係ですが、
プロジェクトブラウザにはモデルの情報が格納されており、
ダイアグラムはビューワーの役目があります。

そのため、プロジェクトブラウザに存在する要素を複数のダイアグラムで
使用することも可能です。また、現在ダイアグラムが格納されている
パッケージ内の要素と、ダイアグラム上に表示している要素は必ずしも
一致しません。



上記前提を元に要素情報の取得方法について、以下に記します。

モデルの要素はElementクラスで管理されています。

○プロジェクトブラウザから、該当するパッケージの要素情報を取得する場合
 Package->Elementという順序で取得することになります。

○ダイアグラムから、そのダイアグラムに表示している要素情報を取得する場合
 Diagram->DiagramObject->Elementという順序で取得します。

 このダイアグラムから取得できる要素情報は、プロジェクトブラウザ上で
 ダイアグラムが格納されているパッケージ内の要素とは必ずしも一致しませんので、
 プロジェクトブラウザのあるパッケージ内の要素について情報を取得する場合は、
 Diagram.DiagramObjectsから取得してしまうと正しい情報が取得できません。


対応としましては、該当するパッケージの情報Packageを取得していただき、
PackageのElementsからパッケージ配下の要素情報を取得してください。
この場合、現在プロジェクトブラウザ上に表示されている順に要素を
取り出すことが可能です。


何かご不明点などございましたら、ご連絡下さい。
未登録ゲスト
投稿日時: 2007-5-22 11:02

Re: DiagramObjectの取得順番

確かに、ダイアグラム上には他パッケージの要素も置けるので
単純にはいきそうもないですね。

ただ、図上で最背面に移動した要素は、DiagramObjectsの一番
最後に取り出せれば便利だと感じました。
(今はSequenceを調べて自分でソートするということですよね。)
sugimoto
投稿日時: 2007-5-22 11:23
EA Administrator
投稿: 1895

Re: DiagramObjectの取得順番

引用:

確かに、ダイアグラム上には他パッケージの要素も置けるので
単純にはいきそうもないですね。


現在ダイアグラムが登録されているパッケージ内の要素ということであれば、
以下のように簡単に取得できますが、モデル内のパッケージ全体について
ということになってしまいますと、全体のパッケージの順序を確認する必要
があるので、少し複雑になると思います。

対応例)(C#)
EA.Diagram diagram = Repository.GetCurrentDiagram();
EA.Package package = Repository.GetPackageByID(diagram.PackageID);
for (short i = 0; i < package.Elements.Count; i++)
{
  EA.Element element = package.Elements.GetAt(i);
}

引用:

ただ、図上で最背面に移動した要素は、DiagramObjectsの一番
最後に取り出せれば便利だと感じました。
(今はSequenceを調べて自分でソートするということですよね。)


現状はご認識の通り、要素の上下の順序につきましてはSequenceで
取得していただくようになっています。

お手数をお掛けいたしますが、ソートしてご利用いただきたくお願いいたします。
未登録ゲスト
投稿日時: 2007-5-22 11:47

Re: DiagramObjectの取得順番

了解しました。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ