このドキュメントでは、次のトピックについて説明します。
プラグインは、このインターフェイスでツリービューおよびリストビューノードの情報を Natural スタジオに提供します。 プラグイン独自のノードタイプが定義されており、そのいずれかのタイプのノードでツリービューまたはリストビュードキュメントウィンドウがルートノードとして開かれると、Natural スタジオはこのインターフェイスのメソッドを呼び出します。 ツリービューまたはリストビューを展開またはリフレッシュするように要求されると、Natural スタジオはそのノードの情報を収集するメソッドを呼び出します。
注意:
プラグインは、インターフェイス INatAutoNodeTypes
を使用して独自のノードタイプを定義します。
インターフェイスを提供するために、Natural で作成されたプラグインのクラス定義には、サンプルライブラリ SYSEXPLG
のインターフェイスモジュール(コピーコード)NSTPLG-T
が含まれています。 他の言語で作成されたプラグインは、タイプライブラリ naturalstudioplugin.tlb
を使用します。 このタイプライブラリは、サンプルライブラリ SYSEXPLG
にも含まれています。
次のメソッドを使用できます。
Natural スタジオは、タイプとキーで識別されるプラグイン定義ノードの追加情報を取得するためにこのメソッドを呼び出します。
名前 | Natural データフォーマット | 変形タイプ | 注釈 |
---|---|---|---|
ReturnValue | L | VT_BOOL | |
Type | I4 | VT_I4 | |
Key | A | VT_BSTR | |
Info | A | VT_BSTR | |
Template | I4 | VT_I4 | |
Data | A | VT_BSTR | 参照 |
プラグインは、ノードを認識している場合は TRUE を返し、それ以外の場合は FALSE を返します。
ノードのタイプです。
ノードタイプ内のノードを識別するキーです。
プラグインが以前ノードに割り当てた追加情報文字列です。
ツリービューまたはリストビューのドキュメントウィンドウを開くときに、プラグインがメソッド INatAutoObjectTrees::Open
または INatAutoObjectLists::Open
に渡した TemplateID です。
プラグインは、ノードを記述する XML ドキュメントを含む文字列を返します。 XML ドキュメントは次の DTD に従って構造化されています。
<?xml version="1.0"?> <!ELEMENT data (pinfo?, pname?, (ntype, nkey)?)> <!ELEMENT pinfo (#PCDATA)> <!ELEMENT pname (#PCDATA)> <!ELEMENT ntype (#PCDATA)> <!ELEMENT nkey (#PCDATA)>
エレメント | 意味 |
---|---|
pinfo | ノードに関する追加情報です。Natural スタジオが後でこのノードを参照するたびに、プラグインはこのノードを受け取ることを求めます。 Natural スタジオは、このエレメントの内容は考慮せず、ただ受け渡しをするだけです。 |
pname | ツリービューまたはリストビューのノードで表示されるテキスト。 |
ntype | プラグインによって定義されたノードが定義済み Natural スタジオタイプのノードに対応する場合は、このエレメントには対応する定義済みノードのタイプが含まれます。 |
nkey | プラグインによって定義されたノードが定義済み Natural ノードタイプのノードに対応する場合は、このエレメントには対応する定義済みノードのキーが含まれます。 |
Natural スタジオは、プラグインによって定義されたノードの子ノードを取得するためにこのメソッドを呼び出します。 このノードは、タイプおよびキーによって識別されます。
名前 | Natural データフォーマット | 変形タイプ | 注釈 |
---|---|---|---|
ReturnValue | I4 | VT_I4 | |
Type | I4 | VT_I4 | |
Key | A | VT_BSTR | |
Info | A | VT_BSTR | |
Template | I4 | VT_I4 | |
Children | A | VT_BSTR | 参照 |
子ノードの数を示します。
ノードのタイプです。
ノードタイプ内のノードを識別するキーです。
プラグインが以前ノードに割り当てた追加情報文字列です。
ツリービューまたはリストビューのドキュメントウィンドウを開くときに、プラグインがメソッド INatAutoObjectTrees::Open
または INatAutoObjectLists::Open
に渡した TemplateID です。 Template
の各値に対応した各ツリー構造を返すために、プラグインはパラメータ Template
を解釈できます。
プラグインは、子ノードを記述する XML ドキュメントを含む文字列を返します。 XML ドキュメントは次の DTD に従って構造化されています。
<?xml version="1.0"?> <!ELEMENT children (child*)> <!ELEMENT child (ptype, pkey, pinfo?, pname?, phch?, children?, (ntype, nkey)?)> <!ELEMENT ptype (#PCDATA)> <!ELEMENT pkey (#PCDATA)> <!ELEMENT pinfo (#PCDATA)> <!ELEMENT pname (#PCDATA)> <!ELEMENT phch (#PCDATA)> <!ELEMENT ntype (#PCDATA)> <!ELEMENT nkey (#PCDATA)>
エレメント | 意味 |
---|---|
ptype | 子ノードのタイプ。 |
pkey | そのタイプ内で子ノードを識別するキー。 |
pinfo | 子ノードに関する追加情報。Natural スタジオが後でこのノードを参照するたびに、プラグインはこのノードを受け取ることを求めます。 Natural スタジオは、このエレメントの内容は考慮せず、ただ受け渡しをするだけです。 |
pname | ツリービューまたはリストビューで子ノードとともに表示されるテキスト。 |
children | 任意の深さで子ノードのサブツリーを指定することを許可します。 このエレメントが指定された場合は、子ノード自体に子があってメソッド HasChildren はこの子ノードに対して呼び出されないと暗黙的にみなされます。
|
phch |
指定の子ノード自体に子ノードがあるかどうかを事前に指定することを許可します。
|
ntype | プラグインによって定義されたノードが定義済み Natural スタジオタイプのノードに対応する場合は、このエレメントには対応する定義済みノードのタイプが含まれます。 |
nkey | プラグインによって定義されたノードが定義済み Natural ノードタイプのノードに対応する場合は、このエレメントには対応する定義済みノードのキーが含まれます。 |
Natural スタジオは、タイプとキーで識別されるプラグイン定義ノードに任意のタイプの子ノードがあるかどうかを確認するためにこのメソッドを呼び出します。 これは、ツリービュードキュメントウィンドウでノードを展開可能として表示するかどうかを決定するために使用されます。
名前 | Natural データフォーマット | 変形タイプ | 注釈 |
---|---|---|---|
ReturnValue | L | VT_BOOL | |
Type | I4 | VT_I4 | |
Key | A | VT_BSTR | |
Info | A | VT_BSTR | |
Template | I4 | VT_I4 | |
Children | A | VT_BSTR | 参照 |
プラグインは、ノードに子ノードがある場合は TRUE を返し、それ以外の場合は FALSE を返します。
ノードのタイプです。
ノードタイプ内のノードを識別するキーです。
プラグインが以前ノードに割り当てた追加情報文字列です。
ツリービューまたはリストビューのドキュメントウィンドウを開くときに、プラグインがメソッド INatAutoObjectTrees::Open
または INatAutoObjectLists::Open
に渡した TemplateID です。 Template
の各値に対応した各ツリー構造を返すために、プラグインはパラメータ Template
を解釈できます。
プラグインは、指定のノードに子ノードがあることを認識しているだけでなく、子ノード自体も認識している場合は、このパラメータでそれらを返すことができます。 その後プラグインは、子ノードを記述する XML ドキュメントを含む文字列を返します。 XML
ドキュメントは、GetChildren
で定義された DTD に従って構造化されています。
Natural スタジオは、指定のノードタイプの属性に関するメタ情報を取得するためにこのメソッドを呼び出します。 このメソッドは、ノードの属性がリストビュードキュメントウィンドウに表示される場合に呼び出されます。
名前 | Natural データフォーマット | 変形タイプ | 注釈 |
---|---|---|---|
ReturnValue | I4 | VT_I4 | |
Type | I4 | VT_I4 | |
Template | I4 | VT_I4 | |
Attributes | A | VT_BSTR | 参照 |
定義された属性の数。
ノードのタイプです。
ツリービューまたはリストビューのドキュメントウィンドウを開くときに、プラグインがメソッド INatAutoObjectTrees::Open
または INatAutoObjectLists::Open
に渡した TemplateID です。 Template
の各値に対応した各属性セットを返すために、プラグインはパラメータ Template
を解釈できます。
プラグインは、属性を記述する XML ドキュメントを含む文字列を返します。 XML ドキュメントは次の DTD に従って構造化されています。
<?xml version="1.0"?> <!ELEMENT attributes (attdef*)> <!ELEMENT attdef (akey, acaption?)> <!ELEMENT akey (#PCDATA)> <!ELEMENT acaption (#PCDATA)>
エレメント | 意味 |
---|---|
akey | 属性を内部的に識別するキーです。 このキーはプラグインによって自由に定義されます。 |
acaption | 属性を外部的(リストビュー列ヘッダーなど)に表示するために使用するキャプションです。 |
定義済み Natural スタジオノードタイプに対応するノードに、対応する Natural ノードタイプの属性を指定することもできます。 これらの属性を参照するために、以下の定義済み属性キーが使用されます。 これらの属性キーのいずれかが使用された場合は、キャプションは Natural スタジオによって事前定義されるので、属性キャプションを指定する必要はありません。
キー | キャプション |
---|---|
NOLibrary | Library name |
NOFnr | ファイル番号 |
NODBID | Database number |
NOType | Natural オブジェクトタイプ |
NOMode | Mode (Structured/Report) |
NOUserID | ユーザー ID |
NOSrcDate | Date of last save |
NOSrcSize | ソースサイズ |
NOCatDate | Date of last catalog |
NOCatSize | GP size |
Natural スタジオは、プラグインによって定義されたノードの属性値を取得するためにこのメソッドを呼び出します。 このノードは、タイプおよびキーによって識別されます。
名前 | Natural データフォーマット | 変形タイプ | 注釈 |
---|---|---|---|
ReturnValue | I4 | VT_I4 | |
Type | I4 | VT_I4 | |
Key | A | VT_BSTR | |
Info | A | VT_BSTR | |
Template | I4 | VT_I4 | |
AttributeValues | A | VT_BSTR | 参照 |
属性値の数。
ノードのタイプです。
ノードタイプ内のノードを識別するキーです。
プラグインが以前ノードに割り当てた追加情報文字列です。
ツリービューまたはリストビューのドキュメントウィンドウを開くときに、プラグインがメソッド INatAutoObjectTrees::Open
または INatAutoObjectLists::Open
に渡した TemplateID です。 Template
の各値に対応した各属性セットを返すために、プラグインはパラメータ Template
を解釈できます。
プラグインは、属性値を記述する XML ドキュメントを含む文字列を返します。 XML ドキュメントは次の DTD に従って構造化されています。
<?xml version="1.0"?> <!ELEMENT attributevalues (attval*)> <!ELEMENT attval (akey, avalue)> <!ELEMENT akey (#PCDATA)> <!ELEMENT avalue (#PCDATA)>
エレメント | 意味 |
---|---|
akey | 属性を内部的に識別するキーです。 キーは、以前に GetAttributes への呼び出しで返されたキーのいずれかに一致する必要があります。一致していない場合は、エレメントは無視されます。
|
avalue | 属性値です。 |