カスタム・スイープ・アクションの作成
CmSweepAction オブジェクトは、スイープによって取得されたクラス・インスタンスを処理するアクション・ハンドラー実装を指定します。
2 つの CmSweepAction オブジェクト (1 つは Java™ で実装されたハンドラーを参照し、もう 1 つは JavaScript で実装されたハンドラーを参照する) の作成方法を示す Java と C# の例を次に示します。
作成される 1 つ目の CmSweepAction オブジェクトでは、Java で実装されたハンドラーはコード・モジュール内に含まれます。CodeModule オブジェクトが取得され、CmSweepAction オブジェクトの CodeModule プロパティーに設定されます。
作成される 2 つ目の CmSweepAction オブジェクトでは、スイープ・アクション・ハンドラーは JavaScript で実装されるため、そのスクリプトをオブジェクトの ScriptText プロパティーに設定する必要があります。
Java の例
// Create sweep action for Java handler.
CmSweepAction saJava = Factory.CmSweepAction.createInstance(os, "CmSweepAction");
// Java コンポーネントを持つ CodeModule オブジェクトの取得
CodeModule cm = Factory.CodeModule.getInstance(os, "CodeModule",
new Id("{BC1323BB-D66E-4492-ACD3-CD7135B8ABED}") );
// CodeModule プロパティーの設定
saJava.set_CodeModule(cm);
// ハンドラー・クラスの完全修飾名を指定して ProgId プロパティーを設定する
saJava.set_ProgId("sample.actionhandler.SweepActionHandler");
// その他のプロパティーを設定および保存
saJava.set_DisplayName("Change class with Java handler");
saJava.save(RefreshMode.REFRESH);
// Create sweep action for JavaScript handler.
CmSweepAction saJavascript = Factory.CmSweepAction.createInstance(os, "CmSweepAction");
// ProgId プロパティーをスクリプト・タイプ ID に設定
saJavascript.set_ProgId("Javascript");
// ファイルからスクリプトを読み取るメソッドを呼び出し、スクリプト・テキストをアクション・オブジェクトに設定
String inputScript = readScriptText();
saJavascript.set_ScriptText(inputScript);
// その他のプロパティーを設定および保存
saJavascript.set_DisplayName("Change class with JavaScript handler");
saJavascript.save(RefreshMode.NO_REFRESH);
C# の例
// Create a sweep action for Java handler.
ICmSweepAction saJava = Factory.CmSweepAction.CreateInstance(os, "CmSweepAction");
// Java コンポーネントを持つ CodeModule オブジェクトの取得
ICodeModule cm = Factory.CodeModule.GetInstance(os, "CodeModule",
new Id("{BC1323BB-D66E-4492-ACD3-CD7135B8ABED}") );
// CodeModule プロパティーの設定
saJava.CodeModule = cm;
// ハンドラー・クラスの完全修飾名を指定して ProgId プロパティーを設定する
saJava.ProgId = "sample.actionhandler.SweepActionHandler";
// その他のプロパティーを設定および保存
saJava.DisplayName = "Change class with Java handler";
saJava.Save(RefreshMode.REFRESH);
// Create sweep action for JavaScript handler.
ICmSweepAction saJavascript = Factory.CmSweepAction.CreateInstance(os, "CmSweepAction");
// ProgId プロパティーをスクリプトのタイプに設定
saJavascript.ProgId = "Javascript";
// ファイルからスクリプトを読み取るメソッドを呼び出し、スクリプト・テキストをアクション・オブジェクトに設定
String inputScript = readScriptText();
saJavascript.ScriptText = inputScript;
// その他のプロパティーを設定および保存
saJavascript.DisplayName = "Change class with JavaScript handler";
saJavascript.Save(RefreshMode.NO_REFRESH);