ATF Circuit Editor Sample_j - kaisu1986/ATF GitHub Wiki



Table of Contents

説明

CircuitEditor は、入力ピンと出力ピンを持つモジュールとモジュール間の接続で構成される回路用のサンプルエディターです。データファイル形式の定義に XML スキーマを使用し、XML 回路ファイルの読み込みと書き込みを行います。また、モジュールと接続を視覚的に表示して回路を編集できるようにします。AdaptableControl を使用して、回路を表示および編集します。同時に複数のドキュメントを編集できます。CircuitEditor では標準の編集コマンドの実装に、ATF Editor コンポーネントがいくつか使用されています。CircuitEditor には次の機能も含まれています。

  • プロトタイピング: ドキュメントに挿入可能な回路フラグメントのカスタムセットを作成できます。
  • レイヤー化: オン/オフ (表示/非表示) にできるレイヤーに図コンポーネントを割り当てることができます。
  • 回路グループおよび回路テンプレート
このサンプルの内容は、Circuit Editor Programming Discussion を参照してください。

CircuitEditor が示す ATF の機能

  • Circuit.xsd XML スキーマを使用するデータモデルを定義する。
  • DOM を使用してメモリ内にデータモデルを格納。
  • アダプタを使用して、Circuit データモデルを作成するために DOM を装飾する。
  • ContextRegistry を使用して、アクティブな編集コンテキストを追跡し、編集している場所にアプリケーションコンポーネントが常に適用されるようにする。
  • AdaptableControl を使用して、グラフ抽象化を使い回路を表示および編集する。
  • TransformAdapter、CanvasAdapter、および ViewingAdapter を使用して、Circuit キャンバスを実装する。
  • ScrollbarAdapter、AutoTranslateAdapter、MouseTransformManipulator、および MouseWheelManipulator を使用して、Circuit キャンバスをパンおよびズームできるようにする。
  • D2dGraphAdapter、D2dGraphNodeEditAdapter、および D2dGraphEdgeEditAdapter を使用して、回路モジュールと接続を表示し編集可能にする。
  • HoverAdapter を使用して、回路モジュールアイテム上にマウスポインタを移動したときに情報を表示する。
  • D2dAnnotationAdapter を使用して、キャンバス上に注釈を表示しそのテキストを編集する。
  • 別の ATF 回路図エディターのサンプルにコピー/貼り付けをするための、グローバル (Windows®) クリップボードの使用法を示す。
  • PropertyEditor コンポーネントおよび GridPropertyEditor コンポーネントを使用して、リストおよびグリッドプロパティコントロールのプロパティを編集可能にする。
  • 回路グループおよび回路テンプレート。詳細は、こちらを参照してください。

モジュール

  • Editor.cs が IDocumentClient を実装し、ドキュメントフレームワークを使用して複数のドキュメントを管理する。起動時に、File (ファイル) メニューコマンドの、複数ドキュメント自動作成および複数ドキュメントの自動オープンを実装する。
  • ModulePlugin.cs は、IPaletteClient の実装方法を示し、回路モジュールパーツパレットの作成に IPaletteService を使用する。
  • PrototypingContext.cs は、IPrototypingContext の実装方法を示し、プロトタイピングを可能にするために PrototypeLister コンポーネントを使用する。
  • LayeringContext.cs は、ILayeringContext の実装方法を示し、レイヤーの編集や表示/非表示を可能するために LayerLister コンポーネントを使用する。
  • GroupingCommands.cs は、グループ化/グループ化解除コマンドの実装方法を示す。これは、選択したモジュールを元のモジュールを含みすべての接続を維持する 1 つのモジュールに置き換える、またはその逆のプロセス。
  • MasteringCommands.cs は、マスター/マスター解除コマンドの実装方法を示す。これは、選択したモジュールから新しいモジュールタイプを作成し、元のモジュールを作成したインスタンスに置き換える、またはその逆のプロセス。

CircuitEditor の実行

  1. ATF\Samples\CircuitEditor\bin\Release にある CircuitEditor.exe をダブルクリックします。
  2. [CircuitEditor] ウィンドウが表示されます。
  3. Circuit Editor プロジェクトファイルのサンプルファイル data\Example.circuit を開きます。

CircuitEditor には以下のペインがあります。

  • [Palette]: Circuit パーツパレット: [Comment]、[Button]、[Light]、[Speaker]、[And]、[Or]、および [Sound]。
  • キャンバス: 回路を定義、表示、および編集する場所です。
  • [Property]: 選択したモジュールのプロパティをリストコントロールで編集します。
  • [Grid]: 選択したモジュールのプロパティをグリッドコントロールで編集します。
  • [Prototypes]: 回路での使用を定義するカスタム Circuit フラグメントを一覧表示します。
  • [Layers]: レイヤーとその回路モジュールを一覧表示します。
ツールバーに含まれるボタンは、ファイル管理用が、保存、名前を付けて保存、すべて保存。位置合わせ用が、左揃え、上揃え、右揃え、中央揃え、下揃え、上下中央揃え。フレーム用が、選択したもののみ、すべて。編集用が、切り取り、コピー、貼り付け、削除、元に戻す/やり直し、グループ化/グループ化解除です。

メニューバーには次の項目があります。

  • [File]: [New] (回路の新規作成)、[Open] (既存の回路を開く)、[Save] (保存)、[Save] (名前を付けて保存)、[Save] (すべて保存)、[Close] (閉じる)、[Recent] (最近使ったファイル)、および [Exit] (終了)。
  • [Edit]: 標準の編集機能 ([Undo]/[Redo] (元に戻す/やり直し)、[Cut] (切り取り)、[Copy] (コピー)、[Paste] (貼り付け)、[Delete] (削除)) のほかに、次の項目があります。
    • 選択: [Select] (すべて選択)、[Deselect] (すべての選択を解除)、[Invert] (選択の切り替え)。
    • [Master]/[Unmaster] (マスター/マスター解除): マスター回路を作成/分解します。
    • [Group]/[Ungroup] (グループ化/グループ化解除): 回路モジュールグループを作成/分解します。
    • [Keyboard] (キーボードショートカット): [Customize] ウィンドウを使用して、キーボードショートカットを設定します。
    • [Load] (設定の読み込み/保存): 現在の CircuitEditor の設定を保存するか、またはファイルからアプリケーション設定を読み込みます。
    • [Preferences] (設定): コマンドアイコンのサイズや最後にアクティブになったドキュメントの自動読み込みなど、アプリケーションやドキュメントを設定します。
  • [View] (表示): [Frame] または [Frame] を選択します。
  • [Format] (フォーマット): ステート要素の配置とサイズを指定します。
  • [Window] (ウィンドウ): レイアウト、ペインの配置、ペインの表示と非表示を設定します。
  • [Help] (ヘルプ): [About] ダイアログにアプリケーションの情報を表示します。

CircuitEditor の使用法

CircuitEditor を開くと空のキャンバスグリッドが表示されます。

回路の作成

  • [Palette] からグリッドに回路モジュール要素をドラッグアンドドロップします。
  • モジュールを選択してドラッグし、グリッド上に配置します。
パンとズーム
  • Alt キーとマウスの左ボタンを押したまま、キャンバス上をドラッグしてパンします。
  • Alt キーを押したままマウスホイールを回転させて、表示を縮小または拡大します。
回路モジュールを接続するには、次の手順でモジュール間に接続を描きます。
  1. 出力ピンの近くのモジュールの端に、上矢印が表示されるようにカーソルを置き、マウスの左ボタンを押したままにします。
  2. 他方のモジュールにドラッグし、入力ピンの近くでカーソルが再び上矢印になったらドロップします。ドラッグしている時は、接続先に適した要素のみが表示され、接続不可のものは白抜き表示になります。
以下の方法での接続も可能です。
  1. 出力ピン上でマウスの左ボタンをクリックします。
  2. 接続先の入力ピン上でもう一度クリックします。
この方法では、ユーザは 1 回目と 2 回目のクリックの間にキャンバスをパンまたはズームすることができます。

要素は次のようにいくつかの方法で選択できます。

  • アイテムをクリックして選択する。
  • Shift を押しながら要素をクリックして選択に加える。
  • Ctrl を押しながら要素をクリックして、選択に追加または選択から削除する。
  • 一組の要素の周囲に矩形をドラッグして選択する。
  • 矢印キーを使って選択を変更する。この方法では、選択した要素が表示されるように画面がスクロールします。
要素プロパティを変更する方法を次に示します。
  1. 要素を選択して、そのプロパティを表示します。
  2. リストビューまたはグリッドプロパティエディターでプロパティを変更します。
レイヤーを作成する手順を次に示します。
  1. レイヤーに含める回路モジュールを選択します。
  2. 選択した回路モジュールをクリップボードにコピーします。
  3. [Layer] ペインに回路モジュールを貼り付けます。
  4. [New] フィールドをクリックし、レイヤー名を入力します。
[Layers] ペインのツリービューに回路レイヤーが表示されます。「+」または「-」をクリックしてツリービューを展開または折りたたみます。レイヤーまたはそのコンポーネントの横のボックスをオン/オフにして、レイヤーまたはその要素を表示/非表示にします。

マスター回路を作成する手順を次に示します。

  1. 新しいマスター回路モジュールタイプに含める回路モジュールを選択します。
  2. [Edit] > [Master] をクリックします。回路が [MasterInstance] にまとめられます。
マスターをコピーし貼り付けて、同一の新しい回路のインスタンスを作成できます。回路のプロトタイプとして使用するには [Prototype] ペインに、レイヤーとして使用するには [Layers] ペインに貼り付けます。マスター上にマウスを置くと、マスター要素を表示するサブウィンドウが表示されます。マスターをダブルクリックするとマスターの内容を含むサブドキュメントが開き、編集が可能になります。

マスター回路モジュールタイプを元に戻す手順を次に示します。

  1. マスター回路を選択します。
  2. [Edit] > [Unmaster] をクリックします。
グループを作成する手順を次に示します。
  1. グループ化する回路モジュールを選択します。
  2. [Edit] > [Group] をクリックするか、またはツールバーの [Group] ボタンをクリックします。
回路がグループにまとめられます。グループをコピーしてほかの回路ドキュメントに貼り付けることができます。回路のプロトタイプとして使用するには [Prototype] ペインに、レイヤーとして使用するには [Layers] ペインに貼り付けます。

要素のグループを解除する手順を次に示します。

  1. グループを選択します。
  2. ツールバーの [Ungroup] ボタンをクリックします。
プロトタイプを作成する手順を次に示します。
  1. グループを含む回路要素を選択します。
  2. 選択した要素を [Prototypes] ペインに貼り付けます。
  3. [Prototype] ラベルをクリックし、プロトタイプ名を入力します。
  4. プロトタイプをキャンバスにドラッグして、プロトタイプから新しい要素をインスタンス化します。
⚠️ **GitHub.com Fallback** ⚠️