ログイン
検索
メインメニュー
開発者ブログ
ChangeVisionメンバーズ分布マップ
フォーラム一覧   -   トピック一覧
   astah*の使い方
     APIを使ってシーケンス図の非同期メッセージを書きたい。
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
yura
投稿日時: 2020-10-29 12:19
新米
登録日: 2020-10-29
居住地:
投稿: 2
APIを使ってシーケンス図の非同期メッセージを書きたい。
APIを使ってシーケンス図の非同期メッセージを書きたいのですが、方法がわかりませんでした。

SequenceDiagramEditor の createMessege() や、
createReturnMessage() 等で、
他のメッセージは記載できたのですが、
非同期メッセージに関しては、対応するメソッドが無く、
記載方法がわからない状態です。

非同期メッセージはAPIだと記載できないのでしょうか。
ご回答の程、よろしくお願いいたします。
tiwa___
投稿日時: 2020-10-30 9:27
新米
登録日: 2019-7-29
居住地:
投稿: 5
Re: APIを使ってシーケンス図の非同期メッセージを書きたい。
シーケンス図の非同期メッセージは
IMessageのsetAsynchronousメソッドで同期メッセージを非同期に変える事で作成する事が可能です。
JavaDoc : IMessage.setAsynchronous(boolean)

以下に、シーケンス図とライフライン2つを作成し、
ライフライン間に非同期メッセージを作成するサンプルを記載致します。

var TransactionManager = Java.type("com.change_vision.jude.api.inf.editor.TransactionManager");

var de = astah.getDiagramEditorFactory().getSequenceDiagramEditor();
TransactionManager.beginTransaction();
var diagram = de.createSequenceDiagram(astah.getProject(), "SequenceDiagram");
var lifelineA = de.createLifeline("aaa", 10.0);
var lifelineB = de.createLifeline("bbb", 210.0);
var message = de.createMessage("message", lifelineA, lifelineB, 100.0);
message.getModel().setAsynchronous(true);
TransactionManager.endTransaction();

yura
投稿日時: 2020-10-30 9:49
新米
登録日: 2020-10-29
居住地:
投稿: 2
Re: APIを使ってシーケンス図の非同期メッセージを書きたい。
tiwa___様

ご回答を参考にしつつ実装したところ、
無事に非同期メッセージを作成できました。
getModel()を利用して、
メッセージを後から変更する必要があったのですね。
ご回答いただき、ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を