// Print build result table
stream.print("<table border=\"1\">\n"); //$NON-NLS-1$
stream.print("<tr><td><b>Build Id</b></td>"); //$NON-NLS-1$
int dimLength = this.dimensions.length;
for (int d=0; d<dimLength; d++) {
Dim dim = this.dimensions[d];
stream.print("<td><a href=\"#" + dim.getLabel() + "\"><b>" + dim.getName() + "</b></a></td>");
}
stream.print("</tr>\n");
// Write build lines
printTableLine(stream, currentBuildResults);
printTableLine(stream, configResults.getBaselineBuildResults());
// Write difference line
printDifferenceLine(stream, configResults);
// End of table
stream.print("</table>\n");
stream.print("*Delta values in red and green indicate degradation > 10% and improvement > 10%,respectively.<br><br>\n");
stream.print("<br><hr>\n\n");
// print text legend.
stream.print("Black and yellow points plot values measured in integration and last seven nightly builds.<br>\n" + "Magenta points plot the repeated baseline measurement over time.<br>\n"
+ "Boxed points represent previous releases, milestone builds, current reference and current build.<br><br>\n"
+ "Hover over any point for build id and value.\n");
// print image maps of historical
for (int d=0; d<dimLength; d++) {
Dim dim = this.dimensions[d];
TimeLineGraph lineGraph = getLineGraph(scenarioResults, configResults, dim, highlightedPoints, this.buildIDStreamPatterns);
if (subMonitor.isCanceled()) throw new OperationCanceledException();
String dimShortName = dim.getLabel();
String imgFileName = scenarioFileName + "_" + dimShortName;
File imgFile = createFile(outputDir, "graphs", imgFileName, "gif");
saveGraph(lineGraph, imgFile);
stream.print("<br><a name=\"" + dimShortName + "\"></a>\n");
stream.print("<br><b>" + dim.getName() + "</b><br>\n");
stream.print(dim.getDescription() + "<br><br>\n");
stream.print("<img src=\"graphs/");
stream.print(imgFile.getName());
stream.print("\" usemap=\"#" + lineGraph.fTitle + "\">");
stream.print("<map name=\"" + lineGraph.fTitle + "\">");
stream.print(lineGraph.getAreas());