入れ子マネージャーに格納されたグラフィック・オブジェクトの操作に使用する API は、上位レベルのマネージャーでの操作に使用するものと同じです。例えば、入れ子マネージャー内でオブジェクトの移動または形状変更を行うには、
IlvManager
クラスの moveObject または reshapeObject メソッドを使用します。またグラフィック・オブジェクトのバウンディング・ボックスを変更するグラフィック・オブジェクトのプロパティーを変更する場合、IlvManager
の applyToObject メソッドを使用します。入れ子マネージャーに対する唯一の相違点は、グラフィック・オブジェクトが入れ子マネージャーに格納されている場合には、そのサイズを変更したり移動するとマネージャーそのもののサイズも、マネージャーの階層を上へ再帰的に進んで変更される点です。IlvManager
クラスは、入れ子マネージャーでグラフィック・オブジェクトを処理する際の便利なメソッドを提供します。これらのメソッドには、true
に設定することでそのメソッドがこのマネージャーの入れ子マネージャーにも適用される、traverse
パラメーターがあります。traverse
パラメーターを true
に設定して次のメソッドを使用すると、マネージャーの階層にあるすべてのオブジェクトにアクセスできます。- 階層のオブジェクトの総数を返すには、次のメソッドを使用します。
int getCardinal(boolean traverse)
- すべてのオブジェクトの列挙を返すには、次のメソッドを使用します。
IlvGraphicEnumeration getObjects(boolean traverse)
- 特定の点の下にオブジェクトを配置する場合は、次のメソッドを使用します。
IlvGraphic getObject(IlvPoint p, IlvManagerView view, boolean traverse)
- 最後に、オブジェクトの階層を走査して、 次の関数を適用します。
void map(IlvApplyObject f, Object arg, boolean traverse)
このメソッドは、traverse
パラメーターがtrue
に設定されている場合、階層のすべてのオブジェクトに関数f
を適用します。void mapIntersects(IlvApplyObject f, Object arg,IlvRect rect, IlvTransformer t, boolean traverse)
このメソッドは、入れ子マネージャーの階層にある指定の矩形と交差するすべてのグラフィック・オブジェクトに関数を適用します。void mapInside(IlvApplyObject f, Object arg, IlvRect rect, IlvTransformer t, boolean traverse)
このメソッドは、入れ子マネージャーの階層にある指定の矩形内にあるすべてのグラフィック・オブジェクトに関数を適用します。
メソッドの中には、入れ子マネージャーの階層にあるオブジェクトの選択と選択解除ができるものがあります。詳細は、「入れ子マネージャーの選択」を参照してください。