サブマネージャーの位置とサイズは、サブマネージャーに含まれるオブジェクトの位置とサイズによって異なります。したがって、サブマネージャーに含まれるオブジェクトはすべて常に表示され、サブマネージャーのサイズと位置は、このマネージャーに含まれるグラフィック・オブジェクトの位置またはサイズの変更に伴って変わることがあります。
前に使用した簡単な例 (「例: 入れ子マネージャーの追加」を参照) では、サブマネージャーの位置とサイズは指定されていません。
グラフィック・オブジェクトの場合、 moveObject または reshapeObject メソッドを使用して、サブマネージャーの移動およびサイズ変更を行うことができます。この例の場合は、次のようにできます。
toplevel.moveObject(subManager, 100,100, true)
入れ子マネージャーをサイズ変更または移動しても、
マネージャーに含まれるオブジェクトのサブマネージャーにおける座標系の位置は変わりません。サブマネージャーでアフィン変換 ( IlvTransformer) が指定され、サブマネージャーに対する新規の関連座標系が定義されるため、サブマネージャーは移動します。
subManager
を (100,100)
に移動する行では、変換は (100,100)
の単純な移動です。サブマネージャーの座標系を定義するアフィン変換を取得するには、getTransformer メソッドを使用することができます。
サブマネージャーの移動または形状変更が行われていない場合は、
同一変換が返されます。
指定したビューのサブマネージャーの描画に使用されている変換を知るには、
IlvManager
クラスの getDrawingTransformer メソッドを使用できます。このメソッドは、マネージャーのオブジェクトの描画に使用したアフィン変換を返します。指定したビューがマネージャーのビューの場合は、ビューのアフィン変換が返されます。そうでない場合は、メソッドはマネージャーの親すべての変換とビューの変換を作成し、結果を返します。