マネージャーの概要
マネージャーは、複数ビューでのグラフィック・オブジェクトの
表示の切り替えや複数格納場所でのグラフィック・オブジェクトの
編成 をコーディネートします。
Figure 1.1は、この関係を図示したものです。
図 1.1 マネージャーの概念
マネージャーに関連する重要な概念を、以下の項目に分けて説明します。
レイヤー
IlvManager クラスのインスタンスは、IlvGraphic という Rogue Wave® Views クラスから派生したグラフィック・オブジェクトのセットを処理します。マネージャーがコーディネートするグラフィック・オブジェクトを編成するには、無制限の数のグラフィック・オブジェクトを作成して複数の保管場所に格納します。これらの保管場所は層を成すレイヤーで表示できます。このため、マネージャー・レイヤーと呼ばれます。
このため、マネージャーはさまざまな優先度レベル で配置されたオブジェクトを処理するように設計されています。ここでの優先度レベルとは、上位の画面レイヤーに保存されたオブジェクトは下位レイヤーのオブジェクトの前に表示されるということを意味します。
レイヤーに保存された各レイヤーはそのレイヤーに対して固有のもので、そのレイヤーにのみ保存できます。
マネージャーで格納されるグラフィック・オブジェクトはすべて、同じ座標系を共有します。
ビュー
マネージャーはグラフィック・オブジェクトのセットを表示するために、1 つまたは複数のビューを使用します。これらのビューはクラス
IlvView のインスタンスで、マネージャーに無制限に関連付けることができます。
ビューのトランスフォーマー
ジオメトリー変換 (クラス
IlvTransformer) をマネージャーに関連付けられたそれぞれのビューに関連付けることができます。ビューでグラフィック・オブジェクトを描画するときに、マネージャーはビューのトランスフォーマーを使用することにより、それぞれのビューで同一オブジェクトの異なる表現 (拡大、縮小、差分移動、回転、その他) を行います。
イベント処理
すべてのイベントは、イベント・フック、ビュー・インタラクター、オブジェクト・インタラクターまたはアクセラレーターで処理されます。ここではこれらの概要を扱います。詳細については、
マネージャー・イベント処理で説明します。
イベント・フック
IlvManagerEventHook クラスはマネージャーにディスパッチされたイベントの監視またはフィルターリングを目的としています。
インタラクター
インタラクターとは、単一または複合イベントを伴うユーザー・インタラクションを処理するために設計されたクラスです。
オブジェクト・インタラクターとは
IlvInteractor から派生し、単一グラフィック・オブジェクトまたはグラフィック・オブジェクトのセットを伴うユーザー・インタラクションを処理します。
アクセラレーター
アクセラレーターとは、イベント記述とユーザー定義アクションを関連付けたものです。つまり、イベントが発生すると、マネージャーはアクションを呼び出します。この非常に基本的な対話メカニズムは、ダブルクリック、マウスの左クリック、Ctrl-F などの単一イベントへの単一応答に制限されます。
IlvManager の主な機能
IlvContainer クラスには、グラフィック・オブジェクトを処理する方法が既に提供されています。しかし、さらに強力な機能が必要になる場合もあります。次のような状況ではマネージャーを使用しなければならない可能性があります。
多数のグラフィック・オブジェクト (数百または数千) を処理する必要があり、
IlvContainer の使用時にパフォーマンスが低下した。
特定の動作をビューに関連付けたいが、特定のグラフィック・オブジェクトには関連付けたくない。
同じグラフィック・ビューに複数のビューを使用したいが、重複させたくない。
IlvGraphic クラスのオブジェクトは特定の
IlvView には一切リンクされないことに注意してください。
プロパティーが異なる複数のグラフィック・オブジェクトを表示したい。
個別のオブジェクトまたはグループ内のオブジェクトに補足プロパティーを追加し、表示または選択可能にしたい。
グラフィック・オブジェクトを保存したい。
マネージャーを使うと、これらの問題を解決できます。また、複雑なグラフィック・アプリケーションで必要となる高度な機能も提供します。
コマンド
IlvManagerCommand クラスのインスタンスにより、オブジェクトを操作したりビューを変更することができます。このクラスは、変更を元に戻したりやり直したりする機能を
IlvManager に提供するために設計されています。
入出力
IlvGraphic クラスのインスタンスは入出力を処理します。同様に、
IlvManager クラスには、オブジェクトの記述を読み書きできるメンバー関数のセットがあります。レイヤーまたはオブジェクト名などのマネージャー・プロパティーも読み書きができます。
ダブル・バッファリング
数千もの重複オブジェクトを操作している場合、再描画操作は非常に時間がかかります。また、それぞれの再描画要素が画面に順番に再表示されると、見栄えもよくありません。これらの問題は、
IlvManager に導入されたダブル・バッファリング技術を使用することで回避できます。この機能をアクティブにすると、すべての再描画機能は非表示で実行されます。その領域が完全に更新されてから、作業領域で画像が一度に再描画されます。
オブザーバー
この機構はクラス
IlvManagerObserver と
IlvManagerObservable に基づいており、マネージャーに特定の変更が行われるとアプリケーションに通知できます
(ビューの追加または削除、ビューへのトランスフォーマーの設定、グラフィック・オブジェクトの追加、レイヤーの追加または削除など)。
ビュー・フック
定義済みの状況下で、特定のアクションをトリガーできます。マネージャー・ビュー・フックにより、実行すべきアクションにマネージャーで発生したイベントを結び付けることができます。詳細については、
ビュー・フックで説明します。ビュー・フックで実行されるアプリケーション・タスクの一部は、オブザーバーで実装できます。
グリッド
このツールを使用すると、スナップ・グリッドで定義された場所に限ってマウス・イベントが実行されるよう強制できます。
Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.