データグラフは平均unhappinessのグラフで、HeatbugObserverSwarm内のオブジェクトの1つです。以下にオブジェクトの作成に必要なコードを示します。
// unhappinessを表示するグラフウィジットを作成 unhappyGraph = [EZGraph createBegin: [self getZone]]; [unhappyGraph setTitle: "Unhappiness of bugs vs. time"]; [unhappyGraph setAxisLabelsX: "time" Y: "unhappiness"]; unhappyGraph = [unhappyGraph createEnd] ; [unhappyGraph createAverageSequence: "unhappiness" withFeedFrom: [heatbugModelSwarm getHeatbugList] andSelector: M(getUnhappiness)] ; |
最初のステップでEZGraphのインスタンスを作成し、そのキャプションをセットします。次にそのグラフ内にSequence(この場合はAverageSequence)が作成されます。一般に、Sequenceには、ターゲットオブジェクトとそのオブジェクトから獲得するデータを伴ったメッセージが必要です。データはグラフの1行としてプロットされます。
AverageSequenceの場合、オブジェクトのコレクション全体がそれに渡されます。次にAverageSequenceは与えられたメッセージ(この場合はgetUnhappiness)を使って、そのコレクション(この場合はList)のすべてのオブジェクトからデータを取得し、それらを平均してデータポイントを生成します。