Help us understand the problem. What is going on with this article?

UMLモデリングツールastah*(Community版)でプラグイン開発環境を試してみた(1)

More than 1 year has passed since last update.

はじめに

UMLモデリングツール「astah* community」は、なんと、無料でありながらプラグインを自作できるそうです。
早速、試してみようと、チュートリアルを読みながら進めたのですが、
チュートリアルは少し古いみたいで、なにか少しずつ違います。
ですので、「自分用メモ」と「他人用の参考資料」として記録に残します。

プラグイン開発環境を構築したPC環境

Windows10 Home
64ビット オペレーティングシステム x64ベースプロセッサ
Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz
RAM 8.00GB
astah community 6.9 をインストール済。

参考にする基本的なチュートリアル

チェンジビジョン社のastahのホームーページの「プラグインを開発する」を開きます。

画面の下の方に、以下の部分があり、これを基に進めながら、特に差異に注意して、話を進めます。

image.png

開発環境のダウンロード

上記画面の「astah*plug-in SDKのダウンロード」をクリックすると、開発環境のzipがダウンロードできました。

それはそれでzipのままとっておきます。

開発環境を構築する

次に、「プラグイン開発チュートリアル(HTML)」をクリックすると、
次の画面(目次)が出ます。
image.png

「プラグイン機構のしくみ」は、目を通しただけです。

さっそく次の「astah*のプラグインの開発環境を構築しましょう」を参考して進めます。
「~構築しましょう」では、具体的にインストールするパスを指定していませんが、
参考画像と同様に、C:\devを作り、その下に、ダウンロードしたSDKを配置しました。
zipを解凍すると、その中に「astah-plugin-SDK-1.4」というフォルダができたので、それを「C:\」の下に移動しました。
「C:\dev\astah-plugin-SDK-1.4」です。

あとは、「~構築しましょう」の手順通り実行すると、すんなり、astah* communityがlaunch(=起動)できました。
ここまで特に問題なし。

ただし、途中でWindows10の環境変数の設定方法が分からなければ、こちら↓などを参考にして設定します。
Windows10で環境変数(システム環境変数、ユーザ環境変数)を追加

Hello Worldを作ってみる

プラグインプロジェクトの新規作成

次に「Hello Worldプラグインを作ってみましょう」をしてみました。
これは、2017.11.07現在にダウンロードしたSDKでの様子をメモとして残します。

チュートリアルに従って、
まず、「プラグインプロジェクトの新規作成」をしました。
フォルダの指定はなかったので、「C:\Users\azuki\Documents」(マイドキュメント)にしました。
コマンドプロンプトを管理者モードでないまま起動して、フォルダに移動。
image.png

そこで「astah-generate-project」を実行すると、たくさんの表示が出てきました。
image.png
となって、groupId を求められました。

続けて他のものも入力を求められたので、次々と入力して、下図のようにしました。
image.png
最終的に"Y"を入力してEnterすると、無事プロジェクトが作成されたようです。

プラグインプロジェクトをビルドする

チュートリアルだと、ここでビルドするのですが、
ビルドコマンドを打つ前に、ディレクトリを移動します。
image.png
image.png

プラグインプロジェクトのフォルダのパスで、
ビルドコマンド「> astah-build」します。

無事ビルド完了しました。これで、HelloWorld的なプラグインが完成してしまったようです。
なんてお手軽。

Helloプラグインを起動

試しに「> astah-launch」すると、
image.png
このとおり、astahが起動します。

「ツール」メニューを開くと、一番下に、「テンプレートグループ」の「テンプレートメニュー」があります。
image.png
これを実行すると、
image.png
がでました。プロジェクトを開いていないとだめだそうです。

気を取り直して、astahの画面左上の白いボタン(プロジェクトの新規作成)を押してから、再度「テンプレートメニュー」を実行すると、、、
image.png
「Hello」と表示されたメッセージボックスが出ました。

はい。Helloを表示させるには、プラグインプロジェクトを生成してビルドして起動しただけです。

Helloの表示内容を変えてみる

これじゃ、どこのコードを弄ればいいの分からないので、Helloを表示しているコードを探します。

探してみたら、このHelloという文字列は、以下のファイルに書かれているもののようです。
image.png

19行目、ファイル内の"Hello"という文字列を、"Hello World!!!"に書き換えて、
image.png

再度、コマンドプロンプトのそのままのフォルダで「> astah-build」して「> astah-launch」。
無事、ビルドできました。

起動してきたastah communityの「ツール」メニューを開いて、「テンプレートメニュー」を実行すると、
image.png
はい。無事、Hello World!!!と表示されました。

JavaのIDEは特に使いませんでした

チュートリアルでは、
「IDEにプラグインプロジェクトをインポートしましょう」
があるのですが、個人的にJavaのIDEを使っていないので、特に設定はしませんでした。
ひとまずIDEなしでも進めるようです。

最新の開発環境ではプラグインプロジェクトの自動生成で作られてしまうらしいもの

チュートリアルの以下の項目は、最新の開発環境では自動生成されてしまうようです。
「メッセージを表示するメニューを作成しましょう」
「アクションを作成しましょう」
なので、スルーしました。

Hello Worldの次へ

クラスの総数を数えるプラグイン

チュートリアルにある「クラスの総数を表示するプラグインを作ってみましょう」に進みます。
このプラグインでは、astahのAPIを呼び出しに突入します。

image.png

ここに、CountClassAction.java という空ファイルを新規追加しました。
チュートリアル「クラスの総数を表示するプラグインを作ってみましょう」の中にあるコードをコピーして、空ファイル内に貼り付けました。

これが、新しいプラグインのコードになります。

チュートリアルによると、次にplugin.xmlを編集すると書いてありました。同じ名前のファイルが2か所にあったのですが、こちらが正解です。もう片方は、自動生成ファイルでした。編集してもコンパイル時に上書きされてしまいます。

このplugin.xmlでは、メニューから開くときに実行するモジュールが指定されているのですが、そこを「クラスの総数を表示するプラグインのモジュール(CountClassAction)」にすべく、一部を書き換えました。

<書き換え前>
image.png

<書き換え後>
16行目だけ、新しいクラス用に変えました。
image.png

※メニューが二つ出るようにしたかったのですが、複数のメニューを表示する方法が分かりません...。

ビルドしてみる

「> astah-build」すると、エラーの嵐。
image.png
どうやら、コピペしたコードの先頭にあった/* ~ */のコメントがだめらしい。

一番上のコメント群を削除。
image.png

あと、plugin.propertiesを編集すると書いてあるので、チュートリアルに従って、最終行(8行目)に記述を追加。
ただし、このファイルも2か所にあるので、要注意。下図のエディタ画面のファイルパスにあるファイルが正解。
image.png

その後、「> astah-build」と「> astah-launch」を実行すると、
astahのメニューから新しいクラスの機能を実行できます。

image.png

いきなり実行結果が出てきました。

おぉ、ちゃんとastahのAPIを叩いて動作しているようです。

最後に

記録しながら進めたのですが、やってみると意外と簡単です。
次は、APIをもっと本格的に叩きながら、それを記事にしたい思います。

乞うご期待です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした