[フォトギャラリー & ムービーメーカー Plug in] 第6回 ~設定画面の表示~

[ フォトギャラリー & ムービーメーカーPlug in]
第6回 ~設定画面の表示~
第5回の記事で、Visual Studioを使用してプラグインのひな形を作りました。
今回から3回に分けて、作成した6つのメソッドのひな形にプログラムを実装していきます。
まずは、設定画面の表示部分の実装を行います。

[ 設定画面について ]
フォトギャラリーまたはムービーメーカーからプラグインを呼び出すと、最初に設定画面やログイン用の画面を表示させるメソッドである ShowConfigurationSettings が呼ばれます。
特定のサイトにログインする必要がある場合や、画像の処理を行う前に何かしらの処理が必要な場合は、このメソッドでその機能を実装します。
今回は、ログインが必要なサイトにアクセスすると仮定して、ログイン用の画面を作成し、呼び出してみます。

[ ダイアログの作成 ]
ログイン用の画面として、今回はWindowsフォームを使用したダイアログを作成します。
前回作成したVisual Studioのプロジェクトを立ち上げ、メニューから[プロジェクト]-[Windowsフォームの追加]を選択します。
ファイルの名前は、ConfigSetting.csに変更します。
フォームデザイナが表示されたら、以下の図のようにラベル、テキストボックス、ボタンのコントロールを貼り付けます。
今回は手順を試すだけですので、コントロール上に表示されている文字列やフォントは、この図のようでなくても任意のもので構いません。

[ ダイアログ表示のメソッド ]
フォームのデザインが終わったら、ソースコードエディタを表示させて、コードの最初のusingが並んでいる部分に以下の文を追加します。

using System.Xml;

ConfigSettingクラスの中には、以下の2つのフィールドと1つのメソッドを追加します。

private XmlDocument sessionXml;
private XmlDocument persistXml;

public static bool ConfigSettingDialog(IWin32Window parent, XmlDocument sessionXml, XmlDocument persistXml)
{
ConfigSetting csForm = new ConfigSetting();

// sessionXml と persistXml を使えるようにしておく
csForm.sessionXml = sessionXml;
csForm.persistXml = persistXml;

// ここにサイトへのログインを行うコードや、初期設定のコードを実装する

return csForm.ShowDialog(parent) == DialogResult.OK;
}

このメソッドは、単に作成したダイアログを表示させているだけです。
実際には、コメントがある部分に初期設定のコードを実装します。
コードの中にあるsessionXmlは、フォトギャラリーやムービーメーカーから送られてくる画像や動画の情報が入っています。
persistXmlは、ログイン時に使用したデータ等の保存用として使用できます。

[ ボタンをクリックしたときの処理 ]
ダイアログ上に、OKとキャンセルの2つのボタンを貼り付けています。
フォームエディタ上でそれぞれのボタンをダブルクリックし、イベントハンドラを作成します。
ここでは、button1がOKボタン、button2がキャンセルボタンであるとします。
それぞれのイベントハンドラの中に、以下のthis.DialogResultで始まる青字の文を追加します。

private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}

private void button2_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}

先ほど実装したConfigSettingを閉じたときの結果を含め、このダイアログを終了させたときの結果次第でプラグインを呼び出す振る舞いが変わります。
ここで、DialogResult.OKを返すと、次の画像や動画のアップロードを行うためのメソッドが呼ばれます。
DialogResult.Cancelを返した場合は、次の処理に移らずに、プラグインが終了します。

[ 初期設定用ダイアログの呼び出し ]
前回のプロジェクトで作成したクラスライブラリのソースコードに戻り、すでにひな形を作成しているShowConfigurationSettingsメソッドに、青字のコードを追加します。

public bool ShowConfigurationSettings(IWin32Window parentWindow, System.Xml.XmlDocument sessionXml, System.Xml.XmlDocument persistXml, IPublishProperties publishProperties)
{
// 初期設定用のダイアログの表示。
// ここではダミーのログイン用ダイアログを表示させている。
return ConfigSetting.ConfigSettingDialog(parentWindow, sessionXml, persistXml);
}

ここで表示させるダイアログは、先ほど実装したとおり何の処理も行いません。
実際には、初期設定を行う処理を実装してください。

次回は、画像や動画をアップロードさせる処理の部分について説明します。

[ フォトギャラリー & ムービーメーカーPlugin 連載 ]
第1回 : ~フォトギャラリーを知っていますか?~
第2回 : ~なかなか使えるムービーメーカー~ 第3回 : ~プラグインとは? プラグインを作るには?~ 第4回 : ~プラグインについて知っておくべきこと~
第5回 : ~プラグインに実装する6つのメソッドの用意~
第6回 : ~設定画面の表示~

マイクロソフト
田中達彦