サブマネージャーのマネージャーへの追加は、以下の 2 とおりの方法で行うことができます。
この最初の方法では、サブマネージャーの塗りつぶし中に親マネージャーの境界の複数の再計算が必要です。
オブジェクトをサブマネージャーに追加すると、サブマネージャーの境界が変更されるだけでなく、その祖先マネージャーすべての境界が変更されます。
-
サブマネージャーを親マネージャーに追加する。
-
サブマネージャーを塗りつぶす。
二番目の方法では、そのすべての祖先マネージャーの境界が変更されず、常に高速です。一般的に、サブオブジェクトのすべてのカスタマイズを完了してから、サブオブジェクトをマネージャーに追加する方が高速です。
-
サブマネージャーを塗りつぶす。
-
それを親マネージャーに追加する。
ただし、オブジェクトがマネージャーに追加される順序を制御することは必ずしもできません。この場合は、次の挿入調整セッションが役立ちます。
manager.setInsertionAdjusting(true); try { ... add nested managers and nodes recursively in any order .. } finally { manager.setInsertionAdjusting(false); }
これにより、サブマネージャーおよびそのコンテンツが不正な順序で追加された場合でも、パフォーマンスが最適化されます。また、挿入調整フラグを
false
に設定したときのみ、マネージャーおよびそのすべてのサブマネージャーの境界ボックスが再計算されます。マネージャーの境界の変更に関連するイベントも、そのときまで遅延されます。挿入調整フラグは、最上位のマネージャーにのみ設定する必要があり、すべての既存および新規作成されたサブマネージャーに自動的に伝搬されます。挿入調整フラグは、オブジェクトが追加されるときのパフォーマンスにのみ影響します。オブジェクトが削除されるときには影響がありません。