ログイン
検索
メインメニュー
フォーラム一覧   -   トピック一覧
   初めて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() を使う方法が間違っているのかも
と思いました。

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

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » Astah-APIによるステートマシン図の編集 zuruzuru2 2012-11-27 11:58
     Re: Astah-APIによるステートマシン図の編集 myamamoto 2012-11-28 11:30
       Re: Astah-APIによるステートマシン図の編集 zuruzuru2 2012-11-28 13:38
         Re: Astah-APIによるステートマシン図の編集 myamamoto 2012-11-28 16:23
           Re: Astah-APIによるステートマシン図の編集 zuruzuru2 2012-11-29 23:21

投稿するにはまず登録を