package etm.contrib.console.util;
import etm.contrib.console.ConsoleRequest;
import etm.contrib.console.ConsoleResponse;
import etm.contrib.util.ExecutionAggregateComparator;
import etm.core.aggregation.Aggregate;
import etm.core.monitor.EtmException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Map;
/**
* Renders a expanded view.
*
* @author void.fm
* @version $Revision$
*/
public class ExpandedResultRenderer extends ConsoleRenderer {
/**
* Constructs a CollapsedResultRenderer that writes results to
* the given response.
*
* @param aRequest The current request
* @param aResponse The current respone
* @param aComparator A comparator used for sorting results
*/
public ExpandedResultRenderer(ConsoleRequest aRequest, ConsoleResponse aResponse, ExecutionAggregateComparator aComparator) {
super(aRequest, aResponse, aComparator);
}
public void render(Map points) {
Object[] values = points.values().toArray();
try {
writeHtmlHead(true);
response.write("<table>\n");
writeTableHeader();
if (points.isEmpty()) {
response.write(NO_RESULTS);
} else {
Arrays.sort(values, comparator);
for (int i = 0; i < values.length; i++) {
SortedExecutionGraph graphSorted = new SortedExecutionGraph((Aggregate) values[i], comparator);
response.write(" <tr>\n");
response.write(" <td>");
writeName(graphSorted, 0);
response.write("</td>\n");
response.write(" <td>");
writeMeasurements(graphSorted, 0);
response.write("</td>\n");
response.write(" <td>");
writeAverage(graphSorted, 0);
response.write("</td>\n");
response.write(" <td>");
writeMin(graphSorted, 0);
response.write("</td>\n");
response.write(" <td>");
writeMax(graphSorted, 0);
response.write("</td>\n");
response.write(" <td>");
writeTotals(graphSorted, 0);
response.write("</td>\n");
response.write(" </tr>\n");
}
}
response.write(FOOTER);
response.write("</table>\n");
response.write(" </body>\n</html>");
} catch (IOException e) {
throw new EtmException("Unable to write to writer: " + e);
}
}
}