Hello world
概要
Next Design エクステンションで、Hello world のダイアログを表示するチュートリアルです。
リボンにボタンを追加して、そのボタンを押下したときに Hello world のダイアログを表示するエクステンションをスクリプト形式で作成してみましょう。
全体の流れ
- スクリプト開発の準備
- マニュフェストによる拡 張ポイントの定義
- ダイアログの表示処理の実装
公開サンプル
-
本チュートリアルの結果として作成されるソースコード一式を GitHub で公開しています。
外部リンク: hello-world
ゴールイメージ
-
Next Design を起動するとリボンにエクステンションで追加したボタンが表示されます。
-
Say Hello
ボタンをクリックすると次のようにメッセージが表示されます。
スクリプト開発の準備
下記の手順にしたがって、エクステンション開発に必要なファイルを作成してください。
- 次のフォルダ直下に
hello-world
フォルダを作成し、hello-world
フォルダにimages
フォルダを作成します。%LOCALAPPDATA%\DENSO CREATE\Next Design\extensions
hello-world
フォルダに、manifest.json
とmain.cs
という名称の空のファイルを作成します。hello-world\images
フォルダに、About.png
という名称のボタンのアイコンに表示したいイメージファイルを格納します。
注記
公開サンプルを使用する場合、公開サンプルの hello-world
フ ォルダを前述のフォルダ直下にコピーしてください。
マニュフェストによる拡張ポイントの定義
拡張ポイントを定義するために、作成した manifest.json
に次の内容を定義します。
- 実行プログラムのエントリーポイント定義
- エクステンションのライフサイクル定義
- UI の拡張ポイント定義(リボンタブ・グループ・ボタン)
- UI 用アイコンファイルの指定
- コマンドの拡張ポイント定義
実装例
このマニフェストでは、リボン上のボタンとボタン押下時に呼び出されるコマンドを定義しています。
manifest.json
{
// エクステンション定義
"name": "HelloWorld",
"version": "1.1.0",
"publisher": "DENSO CREATE INC.",
"license": "Next Design 使用許諾契約書に準ずる。Copyright (C) 2019 DENSO CREATE INC. All rights reserved.",
"main": "main.cs", // エントリーポイントとして C# スクリプトを指定します。
"lifecycle": "application", // ライフサイクルとしてアプリケーションライフサイクルを指定します。
// 拡張ポイント定義
"extensionPoints": {
// リボン
"ribbon": {
"tabs": [
// エクステンション用に追加するリボンタブを定義します。
{
"id": "HelloWorld.MainTab",
"label": "Hello World",
"orderBefore": "System.View",
"groups": [
// リボンタブ内を区切るグループを定義します。
{
"id": "HelloWorld.FirstGroup",
"label": "グループ1",
"controls": [
// Say Hello ボタンを定義します。
{
"id": "HelloWorld.SayHelloButton",
"type": "Button",
"label": "Say Hello",
"imageLarge": "images/About.png",
"command": "Command.SayHello" // 後述のコマンドに定義されるコマンドの id を指定します。
}
]
}
]
}
]
},
// コマンド
"commands": [
// コマンドハンドラ `SayHello` を呼び出すコマンドを定義します。
{
"id": "Command.SayHello",
"execFunc": "SayHello" // エントリーポイントに実装される公開関数を指定します。
}
]
}
}
ダイアログの表示処理の実装
ダイアログの表示処理を実装するには、マニフェストでエントリーポイントに指定した main.cs
次の内容を実装します。
- ダイアログの表示処理のコマンドハンドラ(公開メソッド)
実装例
この C# スクリプトでは、NDの提供している通知ダイアログの表示APIを使用してコマンドハンドラを実装しています。
main.cs
// コマンドハンドラの公開関数
public void SayHello(ICommandContext context,ICommandParams parameters)
{
App.Window.UI.ShowInformationDialog("Hello !", "Hello World");
}