実体インタラクション・モード
選択インタラクター (IlvSelectInteractor) およびオブジェクトを移動または形状変更することができるその他のいくつかのインタラクター (IlvPolyPointsEdition、IlvReshapeSelection、IlvMoveRectangleInteractor、およびそのサブクラスなど) は、実体モードを備えています。実体モードとは、ユーザーがグラフィック・オブジェクト全体をその移動または変更中に見ることができるという意味です。実体モードがオフに切り替えられると、ユーザーは、インタラクションが完了するまで (例えば、ユーザーがドラッグしているマウスを放すまで) オブジェクトのゴースト描画しか見ることができません。
ゴーストの描画は、実体オブジェクトの描画より効率的です (特に移動するオブジェクトが多い場合)。パフォーマンスを改善するには、実体モードをサポートするインタラクターで
setOpaqueMove(false)
または setOpaqueMode(false)
を呼び出します。ヒット・テスト
一定位置にどのオブジェクトが存在するかを判別するために非常に頻繁に実行される操作です。これは、選択されたオブジェクトを見つけるために選択インタラクターによって使用されます。ただし時に、マウス移動操作のたびにも使用されます。1 例は、グラフィック・オブジェクトにツールチップがある場合です。
正しいツールチップを表示するには、ツールチップ・マネージャーがマウス移動中にマウス・ポインターの下にあるオブジェクトを判別する必要があります。
別の例として、オブジェクトにオブジェクト・インタラクターがあり、イベントを受け取るオブジェクト・インタラクターをシステムが判別しなければならない場合です。
クワッドツリーは、ヒット・テストを最適化するためのデータ構造です。
各マネージャー・レイヤーはクワッドツリーを持つことができます。クワッドツリーはデフォルトでは最適化されたモードで有効になります。また多数のグラフィック・オブジェクトを含むアプリケーションは、クワッドツリーを無効にすることも、非最適化モードに切り替えることもしないでください。
クワッドツリーは、ズーム可能オブジェクト (zoomable が true を返す) についてのみヒット・テストを最適化します (ズーム可能およびズーム不可オブジェクト を参照)。アプリケーションが多数のオブジェクトを使用する場合、ズーム可能オブジェクトを使用するように強くお勧めします。ズーム不可オブジェクトの場合のヒット・テストは、ズーム可能オブジェクトの場合よりかなり低速です。
ツールチップ
ツールチップは、IlvToolTipManager 中央マネージャーによって処理されます。ビューがツールチップ・マネージャーで登録されている場合、ツールチップ・マネージャーはマウス移動ごとに分析を行い、表示するツールチップを判別します。これにより、すべてのマウス移動が遅くなる可能性があります。多くのオブジェクトを使用する場合で、ズーム不可オブジェクトがあるか、クワッドツリーが無効になっている場合も、マウス移動が過度に遅くなることがあります。この場合、ツールチップを使用しないでください。次のコード例は、特定のマネージャー・ビューでこれを実行する方法を示しています。
javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { IlvToolTipManager.unregisterView(dashDiag.getView()); } });