@Override public void indent() { if (tableLevel > 0) { appendHtml(row() + "<td>indented</td><td>"); startTableIfNeeded(true); } }
@Override public void startSection(final String title) { startTableIfNeeded(true); appendTitle(title); }
@Override public void appendln(final String label, final Object[] object) { if (object.length == 0) { appendln(label, "empty array"); } else { appendln(label, object[0]); for (int i = 1; i < object.length; i++) { appendHtml(row() + "<td></td><td>" + object[i] + "</td></tr>"); } } }
@Override public void appendTitle(final String title) { if (tableLevel > 0) { appendHtml(row() + "<th class=\"title\" colspan=\"2\" >" + title + "</th></tr>"); } else { appendHtml("<h2>" + title + "</h2>"); } }
@Override public void unindent() { if (tableLevel > 0) { endTableIfStarted(); appendHtml("</td>"); } }
@Override public void close() { endTableIfStarted(); doClose(); }
@Override public void appendException(final Throwable e) { appendTitle("Exception"); final String message = e.getMessage(); if (message != null) { appendHtml(row() + "<td class=\"error\" colspan=\"2\" >" + message + "</td></tr>"); } causingException(e); appendHtml(row() + "<td class=\"code\" colspan=\"2\" ><pre>"); final StringWriter stringWriter = new StringWriter(); final PrintWriter printWriter = new PrintWriter(stringWriter); e.printStackTrace(printWriter); appendHtml(stringWriter.toString()); appendHtml("</pre></td></tr>"); }
private void causingException(final Throwable throwable) { final Throwable cause = throwable.getCause(); if (cause != null && cause != throwable) { appendHtml(row() + "<td colspan=\"2\" >" + cause.getMessage() + "</td></tr>"); causingException(cause); } }
@Override public void appendPreformatted(final String text) { appendln("<pre>" + text + "</pre>"); }
private void startTableIfNeeded(final boolean b) { if (tableLevel == 0 || b) { appendHtml("<table class=\"debug\" width=\"100%\" summary=\"Debug details\" >"); tableLevel++; } }
@Override public void endSection() { endTableIfStarted(); }
@Override public void appendln() { if (tableLevel > 0) { appendHtml(row() + "<td class=\"error\" colspan=\"2\" >end line</td></tr>"); } else { appendHtml("<p>end line</p>"); } }
protected void footer() { endTableIfStarted(); if (createPage) { appendHtml("</body>"); appendHtml("</html>"); } }
@Override public void appendPreformatted(final String label, final String object) { final String value = object == null ? "null" : object.toString(); appendln(label, "<pre>" + value + "</pre>"); };
private void endTableIfStarted() { if (tableLevel > 0) { appendHtml("</table>"); tableLevel--; } }
private void appendln(final String name, final String value) { startTableIfNeeded(false); appendHtml(row() + "<td class=\"label\">" + name + "</td><td>" + value + "</td></tr>"); }
@Override public void appendln(final String text) { if (tableLevel > 0) { appendHtml(row() + "<td colspan=\"2\">" + text + "</td></tr>"); } else { appendHtml("<p>" + text + "</p>"); } }
@Override public void appendln(final String label, final Object object) { final String value = object == null ? "null" : object.toString(); appendln(label, value); }
protected void header() { if (createPage) { appendHtml("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); appendHtml("<html>"); appendHtml("<head>"); appendHtml("<title>Debug Details</title>"); appendHtml("<style type=\"text/css\">"); appendHtml("body { margin: 15px; }\n" + "links { font-size: 80%; padding-bottom:5px; }\n" + "td {vertical-align: top; margin-left: 15px;}\n" + "td.error {color: red; font-style: italic; }\n" + "td.code {white-space: pre; font-family: monospace;}\n" + "th.title {text-align: left; padding: 0.3em 1em; font-style: italic; background: #AED1FF; }\n" + "td.label {width: 14em; text-align: right; padding-right: 1.5em; padding-top: 0.2em; font-size: 80%; font-weight: bold; }\n" + "span.facet-type { font-weight: bold; padding-right: 10px; }\n"); appendHtml("</style>"); appendHtml("</head>"); appendHtml("<body>"); } }
@Override public void blankLine() { if (tableLevel > 0) { appendHtml(row() + "<td class=\"error\" colspan=\"2\" >blank line</td></tr>"); } else { appendHtml("<p>blank line</p>"); } }