掲示板一覧 - トピック一覧 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); } 引用:
現状はご認識の通り、要素の上下の順序につきましてはSequenceで 取得していただくようになっています。 お手数をお掛けいたしますが、ソートしてご利用いただきたくお願いいたします。 |
| 未登録ゲスト | 投稿日時: 2007-5-22 11:47 |
Re: DiagramObjectの取得順番了解しました。
ありがとうございました。 |
|
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |




