ATF Simple DOM No Xml Editor Sample_j - kaisu1986/ATF GitHub Wiki
SimpleDomNoXmlEditor は、ドキュメントオブジェクトモデル (DOM) の使用法を示すサンプルエディタです。SimpleDomNoXmlEditor は一連のイベントを含むイベントシーケンスファイルである \*.SimpleDomTxt を操作します。イベントには、リソース (アニメーションおよびジオメトリ) が含まれます。各イベントシーケンスファイルは ListView コントロールに表示されます。すべてのイベントとリソースが表示されますが、これらは選択して編集することが可能です。また編集するために選択されたアイテムのプロパティも表示されます。エディタは、複数のイベントシーケンスファイルを読み込むことができます。[Resources] エディタは最後に選択されたイベントを追跡して、そのリソースを別の ListView コントロールに表示します。
SimpleDomNoXmlEditor は SimpleDOMEditor サンプルにとてもよく似ていますが、XMLを使用しません。
このサンプルの内容は、Simple DOM No Xml Editor Programming Discussion を参照してください。
- XML スキーマを使用しないカスタムデータモデルを定義する。SimpleDOMEditor と異なり、SimpleDomNoXmlEditor ではアプリケーションデータにも XML を使用しません。
- アダプタを使用して、イベントシーケンスデータモデルを作成するために DOM を装飾する。
- IDocumentClient およびドキュメントフレームワークを使用して複数のドキュメントを管理する。
- IPaletteClient を実装して、UI パーツパレットを作成する。
- ListView と ListViewAdapter を使用して、イベントおよびリソースの編集可能なリストを表示する。
- IListView、IItemView、および IObservableContext インタフェースを使用して、データをリストに適合させる。
- ContextRegistry を使用して、アクティブな編集コンテキストを追跡し、編集している場所にアプリケーションコンポーネントが常に適用されるようにする。
- IInstancingContext、ISelectionContextおよび IHistoryContext のインタフェースを使用して、データを編集コマンドに適合させる。
- ATF PropertyEditor コンポーネントおよび GridPropertyEditor コンポーネントを使用して、選択した UI 要素のプロパティを編集可能にする。
- ATF\Samples\SimpleDomNoXmlEditor\bin\Release にある SimpleDomNoXmlEditor.exe をダブルクリックします。
- [SimpleDomNoXmlEditor] ウィンドウが表示されます。

SimpleDomNoXmlEditor には次のペインがあります。
- [Palette]: [Event] (イベント)、[Animation] (アニメーション)、または [Geometry] (ジオメトリ) を選択します。
- [Property]: 選択したイベントまたはリソースのプロパティをリストコントロールで編集します。
- [Grid]: 選択したイベントまたはリソースのプロパティをグリッドコントロールで編集します。
- [Resources]: 選択されたイベントシーケンスファイルのリソースを一覧表示します。
- キャンバス: イベントシーケンスファイルの内容を表示します。
起動する手順を次に示します。
- イベントシーケンスファイルを作成します。起動時に表示される [Untitled.SimpleDomText] タブを使用するか、またはツールバーで [File] > [New] をクリックします。編集キャンバスに空のシーケンスファイルが開かれます。
- [Palette] から、[Event] を編集キャンバスのイベントシーケンスファイルにドラッグアンドドロップします。
- 各ペインのタブをクリックして、イベントプロパティを表示し編集します。
- リソース (アニメーションまたはジオメトリ) を [Resource] ペインにドラッグアンドドロップします。
- 各ペインのタブをクリックして、リソースプロパティを表示し編集します。
モジュールには次のような機能があります。
- Program.cs: Main プログラムを含みます。このプログラムが、使用されている ATF クラスおよび内部クラスをリストした TypeCatalog を作成します。
- DomTypes.cs: XML スキーマを使用せずに DOM データ型を定義します。
- Editor.cs: IDocumentClient を実装し、ドキュメントフレームワークを使用して、複数ドキュメントを管理し、[File] メニューコマンドを実装し、起動時にドキュメントを自動作成して開きます。
- PaletteClient.cs: IPaletteClient を実装し、IPaletteService を使用して UI パーツパレットを作成します。
- EventListEditor.cs: ListView と ListViewAdapter を使用して、イベントおよびリソースの編集可能なリストを表示します。
- ResourceListEditor.cs: 直近に選択されたイベントのリソースを表示し編集します。イベントとリソースのドラッグドロップおよび右クリックコンテキストメニューを処理します。
- EventSequenceContext.cs および EventContext.cs: IListView、IItemView、および IObservableContext インタフェースを使用して、データをリストに適合させます。
- EventSequenceContext.cs および EventContext.cs: ATF インタフェースである IInstancingContext、ISelectionContext、および IHistoryContext を実装し、ATF コマンドコンポーネントを使用して、元に戻す/やり直し、切り取り/貼り付け、および選択のコマンドを取得できるようにデータを適合させます。
- HelpAboutCommand.cs: 標準のヘルプ/バージョン情報ダイアログを実装します。