掲示板一覧 - トピック一覧 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アドインの描画はすべて この描画スクリプトで実現していますので、参考になる点が 多いのではないかと思います。 ヘルプファイルのご指摘もありがとうございます。 引数に限らず、ヘルプファイルのほうは不備や不足が多いので 次のバージョンリリース時に改善する予定です。 今後ともよろしくお願いします。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |




