次に作成するハンドラーである CalculationResultsHandler は、以前に作成したロジックである MortgageCalculatorHandler が発行した詳細を図示する円グラフを作成します。
これらの 2 つのハンドラーを仲介するコードは、com.ibm.egl.rui プロジェクト内の EGL ライブラリーである InfoBus です。
InfoBus の動作は以下のとおりです。
- CalculationResultsHandler などのハンドラーが、指定された名前のイベントにサブスクライブします。
このハンドラーはサブスクリプション時に、指定のイベントが発生した際にデータを受け取る関数の名前も指定します。
このサブスクリプションの結果、InfoBus により関数が登録され、この関数を後で呼び出す際に必要な詳細が保守されます。
- 適宜、この同じハンドラーまたは別のハンドラーがイベントをパブリッシュします。
このハンドラーは、イベント名とイベント固有データの両方を指定し、登録されている関数を呼び出すように InfoBus に指示します。
この演習ではまず、この 2 番目のステップから処理します。
リモート・サービスから新しい計算が返された場合に InfoBus の publish 関数を呼び出すように、以前に作成した MortgageCalculatorHandler ハンドラーを更新します。
次に、CalculationResultsHandler ハンドラーをイベントにサブスクライブさせます。
このパブリッシュ/サブスクライブにより、円グラフの表示が可能になります。