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

SimpleDomEditor には以下のウィンドウがあります。
- [Palette] の [Events]: [Event] (イベント)、[Animation] (アニメーション)、または [Geometry] (ジオメトリ) を選択します。
- イベントシーケンスファイル: 編集中のイベントシーケンスファイルです。
- [Property] : リストコントロール内で、選択したイベントまたはリソースのプロパティを編集します。
- [Grid] : グリッドコントロール内で、選択したイベントまたはリソースのプロパティを編集します。
- [Resources]: 選択されたイベントシーケンスファイルのリソースを一覧表示します。
- キャンバス: イベントシーケンスファイルの内容を表示します。
- [Search]: 2 つのペインで、正規表現を使用して DomNode を検索、または検索して置換できます。
起動する手順を次に示します。
- イベントシーケンスファイルを作成します。起動時に表示される Untitled.xml ファイルを使用するか、またはツールバーで [File] > [New] をクリックします。[名前を付けて保存] ダイアログボックスが表示されます。イベントシーケンスファイルの保存場所と新しい名前を指定して、[保存] をクリックします。編集キャンバスに空のシーケンスファイルが開かれます。
- [Palette] から、[Event] を編集キャンバスのイベントシーケンスファイルにドラッグアンドドロップします。
- 各ペインのタブをクリックして、イベントプロパティを表示し編集します。
- リソース (アニメーションまたはジオメトリ) を [Resource] ペインにドラッグアンドドロップします。
- 各ペインのタブをクリックして、リソースプロパティを表示し編集します。
モジュールには次のような機能があります。
- Program.cs: Main プログラムを含みます。このプログラムが、使用されている ATF クラスおよび内部クラスをリストした TypeCatalog を作成します。
- 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 コマンドコンポーネントを使用して、元に戻す/やり直し、切り取り/貼り付け、および選択のコマンドを取得できるようにデータを適合させます。
- DomNodeNameSearchControl.cs: 現在アクティブなドキュメント上で DOMNode 名を検索および置換するための簡単な GUI を定義します。
- HelpAboutCommand.cs: 標準のヘルプ/バージョン情報ダイアログを実装します。