package vebugger.templates;
import java.util.Iterator;
import java.util.Set;
import vebugger.VebuggerTemplate;
import vebugger.VisualDebuggerAid;
public class SetTemplate extends VebuggerTemplate {
@Override
public Class<?> getType() {
return Set.class;
}
@Override
public void render(StringBuilder sb, Object obj) {
Set<?> set = (Set<?>) obj;
int size = set.size();
int cloudSpan = (int) Math.ceil(Math.sqrt(size));
Iterator<?> iterator = set.iterator();
sb.append("<style>");
sb.append("table.java-util-Set > tbody > tr > td > div {border: 1px dotted silver; -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; padding: 10px}");
sb.append("</style>");
sb.append("<table class=\"java-util-Set\"><tbody>");
for (int i = 0; i < cloudSpan; i++) {
sb.append("<tr>");
for (int j = 0; j < cloudSpan; j++) {
if (iterator.hasNext()) {
sb.append("<td><div>").append(VisualDebuggerAid.toString(iterator.next())).append("</div></td>");
} else {
sb.append("<td></td>");
}
}
sb.append("</tr>");
}
sb.append("</tbody></table>");
}
}