-
Notifications
You must be signed in to change notification settings - Fork 263
ATF FSM Editor Sample_j
FsmEditor は、有限ステートマシン (FSM) のサンプルエディターです。データファイル形式の定義に XML スキーマを使用し、XML FSM ファイルの読み込みと書き込みを行います。また、ステートと遷移を視覚的に表示して編集できるようにします。AdaptableControl を使用して、FSM を表示および編集します。同時に複数のドキュメントを編集できます。標準の編集コマンドの実装には多くの ATF Editor コンポーネントが使用されています。FsmEditor では、ドキュメントに挿入可能な FSM フラグメントのカスタムクリップボードの作成に PrototypeLister コンポーネントが使用されています。ドキュメントキャンバスには、付箋紙のような役割を果たす注釈を追加できます。
サンプルの内容に関する詳細は、FSM Editor Programming Discussion をご覧ください。
- FSM.xsd XML スキーマを使用するデータモデルを定義します。
- DOM を使用してメモリ内にデータモデルを格納します。
- ContextRegistry を使用して、アクティブな編集コンテキストを追跡し、編集している場所にアプリケーションコンポーネントが常に適用されるようにします。
- AdaptableControl を使用して、グラフ抽象化を使い FSM を表示および編集します。
- \bin\wws_atf\Release にある FsmEditor.exe をダブルクリックします。
- [FSM Editor] ウィンドウが表示されます。
FsmEditor には以下のペインがあります。
- [パレット] ([FSM]): FSM のパーツパレットで、[State] と [Comment] があります。
- [プロパティエディター]: 選択した要素のプロパティをリストコントロールで編集します。
- [グリッドプロパティエディター]: 選択した要素のプロパティをグリッドコントロールで編集します。
- [プロトタイプ]: FSM で定義し使用するカスタム FSM フラグメントを一覧表示します。
- キャンバス: FSM を定義、表示、および編集する場所です。
- ファイル管理: [保存]、[名前を付けて保存]、および [すべて保存]。
- 配置: [左揃え]、[上揃え]、[右揃え]、[中央揃え]、[下揃え]、および [上下中央揃え]。
- 最大表示: [選択範囲] および [全体]
- ウィンドウレイアウトのロックとロック解除の切り替え。
- 編集: [切り取り]、[コピー]、[貼り付け]、[削除]、[元に戻す]、[やり直し]。
- [ファイル]: [Finite State Machine を新規作成]、[Finite State Machine を開く]、[保存]、[名前を付けて保存]、[すべて保存]、[閉じる]、[最近使用したファイル] および [終了]。
- [編集]: 標準の編集機能 ([元に戻す]/[やり直し]、[切り取り]、[コピー]、[貼り付け]、[削除]、[すべて選択]/[選択解除]、[選択対象を反転する]) のほかに、次の項目があります。
- [キーボードショートカット]: [キーボードショートカットをカスタマイズ] ウィンドウを使用して、キーボードショートカットを設定します。
- [設定を読み込み/保存]: 現在の設定を保存するか、またはファイルからアプリケーション設定を読み込みます。
- [基本設定]: コマンドアイコンのサイズや最後にアクティブになったドキュメントの自動読み込みなど、アプリケーションやドキュメントを設定します。
- [表示]: [選択範囲を最大表示] または [全体を最大表示] を選択します。
- [フォーマット]: ステート要素の配置とサイズを指定します。
- [ウィンドウ]
- [左右に並べて表示]: ウィンドウペインを水平に並べて表示します。
- [上下に並べて表示]: ウィンドウペインを上下に並べて表示します。
- [重ねて表示]: ウィンドウペインを重ねて表示します。
- [UI レイアウトをロック] および [UI レイアウトのロックを解除]: ウィンドウレイアウトのロックとロックの解除を切り替えます。
- チェックボックス付きのメニューアイテムのリスト: チェックマークをオンにすると、コントロールが表示されます。
- [ヘルプ]: [バージョン情報] ダイアログに FsmEditor の情報を表示します。
FsmEditor を開くと空のキャンバスグリッドが表示されます。[パレット] の [FSM] タブから [State] 要素を選択してグリッド上にドラッグアンドドロップし、配置位置までドラッグします。[プロパティエディター] または [グリッドプロパティエディター] をクリックして、選択したアイテムのステートプロパティを表示、編集します。
ステートを接続するには、ステート間に遷移ラインを描きます。ひとつのステートの端に、上矢印が表示されるようにカーソルを置いて他方のステートに向けてドラッグし、カーソルが再び上矢印になったらドロップします。
ステートのラベルは、ステートを選択してラベルをクリックすれば編集できます。ステートおよびステート間の遷移はコピー、貼り付けできます。また、選択したステートおよび遷移を [プロトタイプ] タブに貼り付けるとプロトタイプが作成されます。これは名前を付けて再利用できます。
[Comment] 要素をステートにドラッグして、ステートに注釈を付けます。
モジュールには次のような機能があります。
- Program.cs: Main プログラムを含みます。このプログラムが、使用されている ATF クラスおよび内部クラスをリストした TypeCatalog を作成します。
- Editor.cs: IDocumentClient を実装して、ドキュメントを開き、視覚化し、保存し、閉じることができるようにします。
- Fsm.cs: DOM ルートノードを、AdaptableControl を使用して表示するために、有限ステートマシン (FSM) および有向グラフに適合させます。
- Document.cs: FSM を IDocument に適合させます。
- TransitionRouter.cs: 遷移の変更を追跡し、検証中に経路をアップデートするアダプターです。
- ViewingContext.cs: FSM に表示機能を提供するアダプターです。
- SchemaLoader.cs: FSM スキーマをロードし、データ拡張を DOM 型に登録し、型に表示情報と PropertyDescriptors の注釈を付けます。
- EditingContext.cs: FSM を編集用に適合させます。AdaptableControl による編集のために、IselectionContext、IvalidationContext、ItransactionContext、IhistoryContext、IinstancingContext、および IEditableGraph を実装します。
- CircuitEditor: 入力ピンと出力ピンを持つモジュールとモジュール間の接続で構成される回路用のサンプルエディターです。
- CodeEditor: Actipro Software 社の SyntaxEditor を使用して編集コントロールを提供するコードエディターです。
- DiagramEditor: 回路、FSM、およびステートチャートの各エディターを 1 つのアプリケーションに組み合わせて、複数のエディターがアプリケーションシェルおよびエディターコンポーネントを共有する方法を示します。
- DOMPropertyEditor: 広範な種類のプロパティ編集コントロールおよびプロパティ記述子を備えたプロパティ編集の使用例を示します。
- FileExplorer: ディスクの内容を表示する、Windows® Explorer に似た単純なアプリケーションを作成する方法を示します。
- FSMEditor: 有限ステートマシンエディターです。
- ModelViewer: ATF の ATGI ファイルローダーと Collada ファイルローダーの使用法および、OpenGLR によるレンダリングの使用法を示します。
- SimpleDOMEditor: データモデルの定義などの、ドキュメントオブジェクトモデル (DOM) の使用例を示します。
- SimpleDOMEditorWPF: ATF SimpleDOMEditor Sample に似ていますが、ATF の WPF フレームワークを使用して実装されています。
- SimpleDOMNoXMLEditor: SimpleDOMEditor サンプルにとてもよく似ていますが、XMLを使用しません。
- StateChartEditor: ステートチャートのエディターです。
- TargetManager: ターゲットを検出、追加、構成、および選択するための TargetEnumerationService の使用方法を示します。ターゲットは、TCP/IP アドレス、PS3? 開発ツール、または PlayStationRVita 開発ツールなどのネットワークエンドポイントです。
- TimelineEditor: 比較的機能豊富で、そのコンポーネントは製品用ツールに使用されています。
- TreeListControl: TreeListControl/TreeListItemRenderer クラスを使用して、階層的なデータをツリービューに表示して編集し、詳細を列に表示する例を示します。
- TreeListEditor: 選択されたフォルダーの下層フォルダーおよびファイルを表示する階層構造リストなど、さまざまな種類のツリー構造リストの作成およびエントリー追加の方法を示しています。
- UsingDirect2D: Direct2D および Direct2D をサポートする ATF クラスの使用方法を示すサンプルアプリケーションです。
- UsingDom: DOM の基本的な使用法を簡単に示します。
- ドキュメントの検索 (英語)
- ドキュメントの使用法 (英語)
- 動画
- チュートリアル
- 手順 (英語)
- プログラマーズガイド
- リファレンス (英語)
- コードサンプル
- ドキュメント
© 2014-2015, Sony Computer Entertainment America LLC