ログイン
検索
メインメニュー
フォーラム一覧   -   トピック一覧
   初めてastah* APIをお使いになる方へ
     Astah-APIによるステートマシン図の編集
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
zuruzuru2
投稿日時: 2012-11-27 11:58
新米
登録日: 2012-11-27
居住地:
投稿: 3
Astah-APIによるステートマシン図の編集
こんにちは。初めて投稿させていただきます。

astah*-proで動作するプラグインを試作しています。
APIの使い方で不明な点があるので皆様のお知恵をいただきたく
投稿しました。

ステートマシン図や図の要素(StateやPseudostateや
Transition)をスクラッチ(一から作る)で作る方法は
確認できましたが、
すでにあるステートマシン図を「編集」する方法で
わからないところがあります。

単純に図の要素の位置を移動するのは、
モデル要素(IStateなど)の
メソッドgetPresentations()で取得される
INodePresentationオブジェクトに対して、
setLocation()等を実行すると変更は可能です。

★ 質問は、
IVertex 型であらわされる「状態」の類を
モデル構造上の階層移動する方法です。
例でいいますと、
2つの IStateが1つのステートマシン図のトップ階層にあり、
それぞれ IState s1,s2 ; とします。
s1のsubvertexとしてs2を設定する方法がわかりません。

----
思いつく方法としては、
pa=ProjectAccessorFactory.getProjectAccessor();
bme=pa.getModelEditorFactory().getBasicModelEditor();
このような形で得られる IBasicModelEditorで
bme.changeParent(newparent,elem);
を実行することだと思いましたが、これを実行した時点で、
parent is invalid
というメッセージを含む例外が発生してしまいます。
マウスによるオペレーションだと、状態の下階層に
状態を持ってくる場合は、図上の位置関係もありそう
なので、IVertexのgetPresentations()で得られる
IPresentationオブジェクトの位置(と大きさ)を調整して
含まれるようにしても、やはり、上記の changeParent
を実行した時点で同様の例外が発生するので、
そもそもr changeParent() を使う方法が間違っているのかも
と思いました。

以上のように、
いろいろ試してはいるものの、うまい方法が見つかっていません。

myamamoto
投稿日時: 2012-11-28 11:30
開発者
登録日: 2006-5-9
居住地:
投稿: 49
Re: Astah-APIによるステートマシン図の編集
astahのご利用ありがとうございます。
ご質問について回答致します。

ある状態を他の状態のsubvertexにするには、モデルに対する変更が必要ですが、あいにく、現時点では、それに対応するAPIを提供しておりません。
今後、提供することを検討致します。

引き続きastahをよろしくお願い致します。

zuruzuru2
投稿日時: 2012-11-28 13:38
新米
登録日: 2012-11-27
居住地:
投稿: 3
Re: Astah-APIによるステートマシン図の編集
早速の回答がありがとうございます。

APIが提供されていない件、了解しました。

回避策を考えています。

ひとつの有力な案(というか唯一の案?)としては、
新しく作りなおす・・ということが考えられます。

この場合、問題となりそうなことは、
新しく作ったモデル要素(IStateなど)に、
元のモデル要素の各種属性情報を移行したいことです。

これについてのサポートAPIはありますか?
ない場合、個別に情報をコピーしていくことになると
思いますが、
どのような属性があるなどの情報は、どうやって調べるのでしょうか。
astahのプロパティ画面の要素を虱潰しに見ていくとか・・。

よろしくお願いします。


myamamoto
投稿日時: 2012-11-28 16:23
開発者
登録日: 2006-5-9
居住地:
投稿: 49
Re: Astah-APIによるステートマシン図の編集
ご質問に回答致します。

モデル要素の属性情報をまとめてコピーするようなAPIはございません。よって、各属性を個別に設定していただかなければなりません。
また、astahで設定可能な属性につきましては、プロパティ画面やコンテキストメニューで設定可能なものということになりますが、APIで設定可能な属性となりますと、その中でも、設定インタフェースが提供されているものということになります。こちらにつきましては、APIリファレンスを参照頂くことがよろしいかと思います。

ご不明な点等ありましたら、お手数ですが指摘下さい。
zuruzuru2
投稿日時: 2012-11-29 23:21
新米
登録日: 2012-11-27
居住地:
投稿: 3
Re: Astah-APIによるステートマシン図の編集
回答有り難うございます。

そうですか。
やはり、無いですか。
まずは、おっしゃるとおりの 設定インターフェースを調査することといたします。
なにか不明な点があれば、ご質問差し上げるかもしれません。その時はよろしくおねがいします。

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

投稿するにはまず登録を