複合コンポーネントとは、いくつかのコンポーネントをグループ化して1
つのコンポーネントのように扱うもので、複数のコンポーネントから新たにコンポーネントを構築する仕組みです。
具体的にはイベント伝播によって関係付けられた複数のコンポーネント群を新たに1
つのコンポーネントとして切り出し、その複合コンポーネントについて、外部に公開するメソッドや、発生させるイベントなどを定義します。
通常のプログラミングのモジュール分割や共通ライブラリ作成のような考え方を、コンポーネント指向的に実装したものです。
下図で示すとおり、複合コンポーネントでは内部構造と外部のインターフェイスを定義します。
1)コンポーネント構造
複合コンポーネント内のコンポーネント構造を管理します。通常のアプリケーション同様、コンポーネント間はイベントによるメソッド起動によって接続されます。
2)外部インターフェイス
①外部公開メソッド
複合コンポーネントが外部に公開するメソッドを設定します。
複合コンポーネント内にあるすべてのコンポーネントのメソッドを公開するとアプリケーション構築作業が
非効率的になるため、外部に公開するメソッドを選択する機能を提供します。
また、メソッド名の重複を回避するために、メソッド名の別名機能を提供します。
②発生イベント
複合コンポーネントから外部に伝播させるイベントを設定します。
複合コンポーネント内にあるコンポーネントから発生するイベントのうち、外部に伝播させるイベント のみを選択します。
このとき、複数の内部コンポーネントから発生するイベントを識別させるために、イベント番号を設定する機能を提供します。
複合コンポーネントはその用途によって、以下の2種類があります。
1)GUI複合コンポーネント
複合コンポーネント自身がGUIコンポーネントとして、他のウィンドウやパネルに貼り付け可能なコンポーネントです。
構築時に画面構成も設定します。
2)非GUI複合コンポーネント
複合コンポーネント自身はGUIコンポーネントではなく、他のウィンドウやパネルに貼り付けられないコンポーネントです。
ただし、非GUI複合コンポーネント から別ウィンドウを表示することは可能です。