リボンを拡張する
エクステンションでNext Designのアプリケーションのリボンを拡張することができます。例えば以下のようなことが可能です。
- 新しいリボンタブを追加して、ボタンを配置する
- 既存のリボンタブのボタンを非表示にする
リボンを定義するには拡張ポイントを定義する必要があります。
マニフェストファイルでリボンを定義する
通常は次のようにマニフェストファイル(manifest.json)を用いてリボンとコマンドを定義し、コマンドハンドラを実装します。
- 拡張ポイントに ついては拡張ポイントの定義を参照して下さい。
- リボンの定義内容についてはマニフェストファイル > リボンを参照して下さい。
manifest.json
{
// エクステンション定義
"name": "SampleExtension",
"main": "SampleExtension.dll",
"lifecycle": "application",
// 拡張ポイント定義
"extensionPoints": {
// リボン
"ribbon": {
"tabs": [
// リボンタブ
{
"id": "HelloWorld.MainTab",
"label": "HelloWorld",
"orderBefore": "System.View",
"groups": [
// リボンタブ内のグループ
{
"id": "HelloWorld.FirstGroup",
"label": "グループ1",
"controls": [
// ボタン
{
"id": "HelloWorld.SayHelloButton",
"type": "Button",
"label": "Say Hello",
"imageLarge": "images/About.png",
"command": "Command.SayHello"
}
]
}
]
}
]
},
// コマンド
"commands": [
{
"id": "Command.SayHello",
"execFunc": "SayHello"
}
]
}
}
コマンドハンドラは次のように実装します。
public class SampleExtensionEntryPoint : IExtension
{
//...
// コマンドハンドラ
public void SayHello(ICommandContext c, ICommandParams p)
{
c.App.Window.UI.ShowInformationDialog("Hello !", "Hello World");
}
}
ExtensionPointsライブラリでリボンを定義する
ExtensionPointsライブラリを利用することで、マニフェストファイルでの リボンの定義の必要がなくなり、リボンの定義がコードで非常にシンプルに定義できるようになります。
public class SampleExtensionEntryPoint : ExtensionBase
{
protected override void OnActivate()
{
// リボン
var tab = ExtensionPoints.Ribbon.AddTab("SampleExPoint");
var group = tab.AddGroup("Test1");
group.AddLargeButton<HelloCommand>("こんにちは");
}
}
詳しくは ExtensionPoints > リボンの定義を参照して下さい。