package vebugger.templates;
import vebugger.VebuggerTemplate;
import vebugger.VisualDebuggerAid;
public class ArrayTemplate extends VebuggerTemplate {
@Override
public Class<?> getType() {
return Object[].class;
}
@Override
public void render(StringBuilder sb, Object obj) {
Object[] array = (Object[]) obj;
sb.append("<style>");
sb.append("table.array {border-collapse: collapse; font-size: 12px;}");
sb.append("table.array > * > tr > * {padding: 4px;}");
sb.append("table.array > thead > tr {border-bottom: 2px solid black;}");
sb.append("table.array > thead > tr > th.array-index, table.array > tbody > tr > th {border-right: 1px dotted silver;}");
sb.append("table.array > tbody > tr > * {border-bottom: 1px dotted silver;}");
sb.append("table.array > tbody > tr:last-child > * {border-bottom: none;}");
sb.append("</style>");
if (array.length > 0) {
sb.append("<table class=\"array\"><thead><tr><th class=\"array-index\">Index</th><th>Value</th></tr></thead><tbody>");
for (int i = 0; i < array.length; i++) {
sb.append("<tr><th>").append(i).append("</th><td>").append(VisualDebuggerAid.toString(array[i], false))
.append("</td></tr>");
}
sb.append("</tbody></table>");
} else {
sb.append("[] <span style=\"color: gray; font-style: italic;\">(empty array)</span>");
}
}
}