掲示板一覧   -   トピック一覧
   EA API
     描画スクリプト&アドインの質問


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

描画スクリプト&アドインの質問

現在、独自のプロファイルを作成し、以下の方法で、ステレオタイプで定義したタグの内容を、ステレオタイプで拡張した要素の中に表示させようとしています。
(1)アドインで対象の要素が変更された事を検知して、ElementのNotesに、表示したいタグの内容を書き込む。
(2)描画スクリプトのPrintWrapped("#NOTES")で、(1)で書き込んだ情報を要素の中に表示する。

質問:
(1)ではEA_OnContextItemChangedのイベントに対応したコードを書いているが、要素のタグの変更はイベントとして受けてくれないようである。このため、タグ変更の後、要素をクリックしないと表示が反映されない。タグの変更を受ける方法は無いか?
(2)PrintあるいはPrintWrappedで、要素内のテキスト出力する位置を制御する方法はないか?
一行目はPrintWrapped("#NAME#")、二行目にPrintWrapped("#NOTES")となるようにしたいが、#NAME#と#NOTES#が一行につながって表示されてしまう。
tkouno
投稿日時: 2006-6-29 9:55
EA Administrator
投稿: 3939

Re: 描画スクリプト&アドインの質問

頂きましたご質問に回答させていただきます。

1番につきましては、現在はご指摘どおりの挙動になっています。
タグの変更を受ける方法はございません。
こちらは、機能追加要望として検討いたします。

2番目は、描画スクリプトには「行」という概念は
ございませんので、自分でレイアウトをしなければ
なりません。

例えば、Borderレイアウトにして、Nの領域に名前を表示し
Sの領域にノートを表示する、などの指定が必要です。
このあたりのサンプルは、PDFのドキュメントをご覧ください。

ぜひお試しください。

tkouno
投稿日時: 2006-6-29 10:04
EA Administrator
投稿: 3939

Re: 描画スクリプト&アドインの質問

あと、今気づいたのですが、EA_OnNotifyContextItemModified
ではなくて、EA_OnContextItemChangedを利用しているという
ことでしょうか?

もしそうであれば、利用しようとしているイベントが違いますので
EA_OnNotifyContextItemModifiedになるかと思います。
(その場合でも、タグ付き値には反応しないと思います。)

念のためお知らせいたします。

未登録ゲスト
投稿日時: 2006-6-29 19:39

Re: 描画スクリプト&アドインの質問

回答ありがとうございます。
(1)最初は、EA_OnNotifyContextItemModifiedを試していたのですが、タグの編集に対してはイベントが発生しませんでした。
しかし、タグの変更は、要素をクリックするとEA_OnContextItemChangedで検知できたので、こちらのイベントを使用しました。
(2)描画スクリプトについて、以下のスクリプトで試したのですが、#NAME#しか表示されません。
・2つ以上のテキストのサブスクリプトを表示できないようである。
・(A)(B)を"CENTER"以外("S"など)にすると表示されない。
shape main
{
  layouttype="border";
startpath();
roundrect(0,0,100,100,10,10);
endpath();
fillandstrokepath();

  addsubshape("aaa","CENTER");//(A)
  addsubshape("bbb","CENTER");//(B)
  text aaa
  {
   h_align = "left"; //(C)
PrintWrapped("#NAME#"); //
  }
  text bbb
  {
   h_align = "right"; //(D)
   PrintWrapped("#NOTES#");
  }
}
tkouno
投稿日時: 2006-6-30 5:40
EA Administrator
投稿: 3939

Re: 描画スクリプト&アドインの質問

コメントありがとうございました。


まず、EA_OnContextItemChangedのイベントは、Enterprise Architectで
要素を選択すると発生するもので、タグ付き値などの編集は
イベントの発生には関係ありません。
単に、ダイアグラム内の要素をクリックすると発生すると
思います。

2番目のご質問ですが、これは、CENTER以外の領域が
「押しつぶされている」のが表示されないように見える原因です。

例えば、(A)をCENTERではなくNにした場合、(B)のみが
見えるようになるかと思います。これは、(A)の領域の
高さが指定されていないので、(B)優先となり
(A)=0% (B)=100%
となってしまっています。

そこで、(C)のあたりに
preferredheight=20;
(20%の高さを確保する指示)
のようなものを追加すれば、
(A)=20% (B)=80%
となって、両方の領域が表示されるようになると思います。

ぜひお試しください。

未登録ゲスト
投稿日時: 2006-6-30 19:44

Re: 描画スクリプト&アドインの質問

ありがとうございます、以下のスクリプトでborderレイアウトの各位置に表示できました。
prefferedheightとprefferedwidthを指定する事が重要だったのですね。
描画スクリプトは面白い機能ですが、情報が少ないので、そのままで動くサンプルを充実させてもらえるとありがたいです。
shape main
{
layouttype="border";
//layouttype="topbottom";
startpath();
roundrect(0,0,100,100,10,10);
endpath();
fillandstrokepath();

addsubshape("aaa","S");
addsubshape("aaa","N");
addsubshape("aaa","E");
addsubshape("aaa","W");
addsubshape("bbb","CENTER");
text aaa
{
h_align = "center";
preferredheight=20;
preferredwidth=40;
PrintWrapped("#NAME#");
}
text bbb
{
h_align = "center";
preferredheight=20;
preferredwidth=40;
PrintWrapped("#NOTES#");
}
}
あと、描画スクリプトのヘルプのコマンド一覧において、Print,PrintWrappedの例の引数に誤記があるので指摘しておきます。
tkouno
投稿日時: 2006-7-3 8:53
EA Administrator
投稿: 3939

Re: 描画スクリプト&アドインの質問

ご確認ありがとうございました。
解決したようで、安心しました。

なお、「そのまま動くサンプル」の最たるものは
BPMNアドインです。BPMNアドインの描画はすべて
この描画スクリプトで実現していますので、参考になる点が
多いのではないかと思います。


ヘルプファイルのご指摘もありがとうございます。
引数に限らず、ヘルプファイルのほうは不備や不足が多いので
次のバージョンリリース時に改善する予定です。

今後ともよろしくお願いします。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ