掲示板一覧   -   トピック一覧
   EA API
     アドインでポート要素を追加するときのダイアグラム上の位置について


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2008-8-18 16:45

アドインでポート要素を追加するときのダイアグラム上の位置について

(アドインではなく)通常の操作で,プロジェクトブラウザ上から
ポート要素をダイアグラム上に追加した際は,適当な場所にドラッグしても
親要素の四辺上に勝手に移動してくれます.

しかし,アドインからポート要素をダイアグラムに追加した際には,
指定した場所に追加されるだけで,勝手に親要素まで移動してくれません.

ダイアグラムの再読み込みや,ポート要素(ダイアグラムオブジェクト)の更新,
親要素(ダイアグラムオブジェクト)の更新など,いろいろ試してみたのですが
「勝手に移動」されませんでした.

※ダイアグラムを開いて,追加したポート要素や親要素の位置を
 ちょっとでも手で変更すると,「勝手に移動」してくれるのですが..

アドイン側で,親要素のダイアグラム上の位置を取得して,親要素の
四辺上に乗るように追加しなければならないのでしょうか.

sugimoto
投稿日時: 2008-8-18 18:09
EA Administrator
投稿: 1895

Re: アドインでポート要素を追加するときのダイアグラム上の位置について

アドインからのポート要素作成では、自動的に親要素の位置を
判断して、その四辺上に乗せることは行っておらず、指定された
位置に配置するよう、自由度を持たせています。

そのため、親要素の位置を取得していただき、ポートのDiagramObjectについて、
top,bottom ,right,leftを四辺上に乗るように設定していただく
必要があります。
(なお、この位置設定において、四辺上以外を指定した場合は、
現状、ダイアグラムの左上に配置されます。)

お手数をお掛けしますが、ご対応、ご確認のほど、
よろしくお願いいたします。
未登録ゲスト
投稿日時: 2008-8-18 20:06

Re: アドインでポート要素を追加するときのダイアグラム上の位置について

アドイン側で親要素の位置を取得し,ポート要素の位置を四辺上にすることで
問題は解決しました.

ありがとうございました.


ご回答いただいた中で,気になった点を2点ほど.

引用:

アドインからのポート要素作成では、自動的に親要素の位置を
判断して、その四辺上に乗せることは行っておらず、指定された
位置に配置するよう、自由度を持たせています。


確かに,一見,アドインで自由にポート要素の位置を設定できますが,
ダイアグラム上で親要素をちょっとでも動かそうものなら,
アドインで作成したポート要素が,強制的に親要素の四辺上に移動するので,
実質的に「自由度」は無いように思えます.



引用:

(なお、この位置設定において、四辺上以外を指定した場合は、
現状、ダイアグラムの左上に配置されます。)


私の環境ですと,

 四辺上以外を指定した場合⇒指定した場所に配置される
 位置を指定しなかった場合⇒ダイアグラムの左上に配置される

ようですが,位置の設定方法を誤っているのでしょうか?

位置の設定方法は,

 (1) Diagramクラスの属性DiagramObjectsに対して,
   AddNew("l=xx;r=xx;・・・)で設定
 (2) DiagramObjectクラスの属性top, bottom, left, rightで設定

のいずれも試したのですが同じ動きでした.


※開発環境:C#, EA:ビルド832

sugimoto
投稿日時: 2008-8-19 9:24
EA Administrator
投稿: 1895

Re: アドインでポート要素を追加するときのダイアグラム上の位置について

親要素の位置取得による位置設定について、
ご確認いただき、ありがとうございました。

引用:

確かに,一見,アドインで自由にポート要素の位置を設定できますが,
ダイアグラム上で親要素をちょっとでも動かそうものなら,
アドインで作成したポート要素が,強制的に親要素の四辺上に移動するので,
実質的に「自由度」は無いように思えます.


こちらは言葉足らずで申し訳ございません。
親要素の四辺上の固定位置ではなく、四辺上のどの箇所にポート要素を
置くかを自由に設定できるという意味での自由度としておりました。
親要素の四辺上以外に設定した場合(または位置を設定しなかった場合)は、
強制的に親要素の四辺上に移動する点は、ご認識の通りです。

引用:

私の環境ですと,

 四辺上以外を指定した場合⇒指定した場所に配置される
 位置を指定しなかった場合⇒ダイアグラムの左上に配置される

ようですが,位置の設定方法を誤っているのでしょうか?

位置の設定方法は,

 (1) Diagramクラスの属性DiagramObjectsに対して,
   AddNew("l=xx;r=xx;・・・)で設定
 (2) DiagramObjectクラスの属性top, bottom, left, rightで設定

のいずれも試したのですが同じ動きでした.


※開発環境:C#, EA:ビルド832


申し訳ございません。四辺上以外を指定した場合に、必ず
ダイアグラムの左上に配置される動作は、ビルド831の動作であり、
現状(ビルド832)は、ご確認いただいた通りの動作となります。
ポートの追加・設定方法に問題はございません。

ご心配をお掛けし、申し訳ございませんでした。

そのほかご不明点などございましたら、ご連絡下さい。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ