プラグインエントリポイントインターフェース
Namespace: FVIL.ParserAssembly: FVILforms (in FVILforms.dll) Version: 3.1.0.0 (3.1.0.9)
Syntax
C# |
---|
public interface IParserEntryPoint |
Visual Basic |
---|
Public Interface IParserEntryPoint |
Remarks
WIL-Builder プラグインがロードされたときに初期化処理を行う必要がある場合は このインターフェースを実装してください。 また、ノードツリーを WIL-Builder の Function List に追加することもできます。
但し、現在は WIL-Builder プロジェクトの PluginAssemblyName に指定されたアセンブリのみを対象にしています。 それ以外のプラグインは、このインフェースを実装していても無効です。
WIL-Builder のプロジェクト設定ダイアログ:
後述のソースコードをビルドして生成されたアセンブリを
下図のように WIL-Builder プロジェクト設定ダイアログの PluginAssemblyName に指定して
WIL-Builder を再起動します。
WIL-Builder の Function List
WIL-Builder を再起動すると下図のように Function List にノードツリーが追加されます。
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Reflection; using System.IO; using System.Xml; using System.Xml.Serialization; using System.Runtime.Serialization; using System.Security.Permissions; using fvalgcli; namespace User { /// <summary> /// エントリポイント /// </summary> public class EntryPoint : FVIL.Parser.IParserEntryPoint { /// <summary> /// 初期化 /// </summary> public virtual void Setup() { // TODO: ここに初期化処理を実装してください. } /// <summary> /// 解放 /// </summary> public virtual void TearDown() { // TODO: ここに解放処理を実装してください. } /// <summary> /// ユニットノードの生成 /// </summary> /// <param name="units">生成したユニットツリーの格納先</param> public virtual void CreateUnits(List<FVIL.Parser.ParserNodeUnit> units) { Assembly asm = Assembly.GetExecutingAssembly(); // ----- 1 階層目. FVIL.Parser.ParserNodeFolder dstnodes = new FVIL.Parser.ParserNodeFolder("ユーザープラグイン", "Function"); string DirIcon1 = "BookClosed"; try { // ----- 2 階層目. try { FVIL.Parser.ParserNodeFolder child_nodes = new FVIL.Parser.ParserNodeFolder("Category1", DirIcon1); dstnodes.ParserNodes.Add(child_nodes); child_nodes.ParserNodes.Add(new ParserNodeUser1()); child_nodes.ParserNodes.Add(new ParserNodeUser2()); } catch (System.Exception ex) { FVIL.Log.ProcessLog.Logs.Add(FVIL.Log.LogLevel.Error, "Category1: {0}", ex.Message); } } catch (System.Exception ex) { FVIL.Log.ProcessLog.Logs.Add(FVIL.Log.LogLevel.Error, "ユーザープラグイン: {0}", ex.Message); } units.Add(dstnodes); } } /// <summary> /// ノード1 /// </summary> [System.SerializableAttribute()] [System.ComponentModel.TypeConverterAttribute(typeof(System.ComponentModel.ExpandableObjectConverter))] public partial class ParserNodeUser1 : FVIL.Parser.ParserNodeUnit { public ParserNodeUser1() { this.Name = "ノード1"; this.ImageKey = "GrayScale"; } public override void Execute(object sender, System.EventArgs e) { } } /// <summary> /// ノード2 /// </summary> [System.SerializableAttribute()] [System.ComponentModel.TypeConverterAttribute(typeof(System.ComponentModel.ExpandableObjectConverter))] public partial class ParserNodeUser2 : FVIL.Parser.ParserNodeUnit { public ParserNodeUser2() { this.Name = "ノード2"; this.ImageKey = "Binary"; } public override void Execute(object sender, System.EventArgs e) { } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Data Imports System.Drawing Imports System.Text Imports System.Windows.Forms Imports System.Reflection Imports System.IO Imports System.Xml Imports System.Xml.Serialization Imports System.Runtime.Serialization Imports System.Security.Permissions Imports fvalgcli Namespace User ''' <summary> ''' エントリポイント ''' </summary> Public Class EntryPoint Implements FVIL.Parser.IParserEntryPoint ''' <summary> ''' 初期化 ''' </summary> Public Overridable Sub Setup() Implements FVIL.Parser.IParserEntryPoint.Setup ' TODO: ここに初期化処理を実装してください. End Sub ''' <summary> ''' 解放 ''' </summary> Public Overridable Sub TearDown() Implements FVIL.Parser.IParserEntryPoint.TearDown ' TODO: ここに解放処理を実装してください. End Sub ''' <summary> ''' ユニットノードの生成 ''' </summary> ''' <param name="units">生成したユニットツリーの格納先</param> Public Overridable Sub CreateUnits(ByVal units As List(Of FVIL.Parser.ParserNodeUnit)) Implements FVIL.Parser.IParserEntryPoint.CreateUnits Dim asm As Assembly = Assembly.GetExecutingAssembly() ' ----- 1 階層目. Dim dstnodes As New FVIL.Parser.ParserNodeFolder("ユーザープラグイン", "Function") Dim DirIcon1 As String = "BookClosed" Try ' ----- 2 階層目. Try Dim child_nodes As New FVIL.Parser.ParserNodeFolder("Category1", DirIcon1) dstnodes.ParserNodes.Add(child_nodes) child_nodes.ParserNodes.Add(New ParserNodeUser1()) child_nodes.ParserNodes.Add(New ParserNodeUser2()) Catch ex As System.Exception FVIL.Log.ProcessLog.Logs.Add(FVIL.Log.LogLevel.[Error], "Category1: {0}", ex.Message) End Try Catch ex As System.Exception FVIL.Log.ProcessLog.Logs.Add(FVIL.Log.LogLevel.[Error], "ユーザープラグイン: {0}", ex.Message) End Try units.Add(dstnodes) End Sub End Class ''' <summary> ''' ノード1 ''' </summary> <System.SerializableAttribute> _ <System.ComponentModel.TypeConverterAttribute(GetType(System.ComponentModel.ExpandableObjectConverter))> _ Public Partial Class ParserNodeUser1 Inherits FVIL.Parser.ParserNodeUnit Public Sub New() Me.Name = "ノード1" Me.ImageKey = "GrayScale" End Sub Public Overrides Sub Execute(sender As Object, e As System.EventArgs) End Sub End Class ''' <summary> ''' ノード2 ''' </summary> <System.SerializableAttribute> _ <System.ComponentModel.TypeConverterAttribute(GetType(System.ComponentModel.ExpandableObjectConverter))> _ Public Partial Class ParserNodeUser2 Inherits FVIL.Parser.ParserNodeUnit Public Sub New() Me.Name = "ノード2" Me.ImageKey = "Binary" End Sub Public Overrides Sub Execute(sender As Object, e As System.EventArgs) End Sub End Class End Namespace |