Skip to content

Commit

Permalink
解析报告中将stacktrace折叠起来
Browse files Browse the repository at this point in the history
  • Loading branch information
yushijinhun committed Jan 28, 2017
1 parent 561e655 commit 42f98ef
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ else if (element instanceof StringMismatchWarning)
stringMismatches.add((StringMismatchWarning) element);
});
// @formatter:off
int idx=0;
StringBuilder sb = new StringBuilder();
sb.append(
"<!DOCTYPE html>\n" +
Expand All @@ -34,6 +35,12 @@ else if (element instanceof StringMismatchWarning)
" <meta charset=\"utf-8\"/>\n" +
" <title>").append(translate("report.title")).append("</title>\n" +
" <link href=\"https://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css\" rel=\"stylesheet\"/>\n" +
" <style type=\"text/css\">\n"+
" .normal-hyperlink{\n"+
" color:rgb(51,51,51) !important;\n"+
" text-decoration:none;\n"+
" }\n"+
" </style>\n"+
" </head>\n" +
" <body>\n" +
" <div class=\"container\">\n");
Expand All @@ -42,16 +49,18 @@ else if (element instanceof StringMismatchWarning)
" <div>\n" +
" <h2 class=\"page-header\">").append(translate("report.resolve_failure.title")).append("</h2>\n" +
" <div>\n");
resolveFailures.forEach(failure->{
for(ResolveFailedWarning failure:resolveFailures){
idx++;
sb.append(
" <div class=\"panel panel-default\">\n" +
" <div class=\"panel-heading\">").append(escapeHtml4(failure.path)).append("</div>\n" +
" <div class=\"panel-body\">\n" +
" <p>\n" +
" <div class=\"panel-body\">\n");
sb.append(
" <div>\n" +
" <label>").append(translate("report.resolve_failure.command")).append("</label>\n" +
" <pre><code>").append(escapeHtml4(failure.text)).append("</code></pre>\n" +
" </p>\n" +
" <p>\n" +
" </div>\n" +
" <div>\n" +
" <label>").append(translate("report.resolve_failure.arguments")).append("</label>\n" +
" <table class=\"table table-condensed table-hover\">\n");
failure.arguments.forEach((k,v)->sb.append(
Expand All @@ -62,14 +71,23 @@ else if (element instanceof StringMismatchWarning)
));
sb.append(
" </table>\n" +
" </p>\n" +
" <p>\n" +
" <label>").append(translate("report.resolve_failure.stacktrace")).append("</label><br/>\n" +
" <pre><code>").append(escapeHtml4(throwableToString(failure.exception))).append("</code></pre>\n" +
" </p>\n" +
" </div>\n");
String msg=failure.exception.getMessage();
if(msg!=null){
sb.append(
" <div>\n" +
" <label>").append(translate("report.resolve_failure.error_message")).append("</label>\n" +
" <pre><code>").append(escapeHtml4(msg)).append("</code></pre>\n" +
" </div>\n");
}
sb.append(
" <div>\n" +
" <label><a class=\"normal-hyperlink\" data-toggle=\"collapse\" data-parent=\"#accordion\" href=\"#collapse").append(idx).append("\"><span class=\"icon-collapse").append(idx).append(" glyphicon glyphicon-chevron-down\" aria-hidden=\"true\"></span> ").append(translate("report.resolve_failure.stacktrace")).append("</a></label><br/>\n" +
" <pre id=\"collapse").append(idx).append("\" class=\"collapse\" relatedIcon=\"").append(idx).append("\"><code>").append(escapeHtml4(throwableToString(failure.exception))).append("</code></pre>\n" +
" </div>\n" +
" </div>\n" +
" </div>");
});
};
sb.append(
" </div>\n" +
" </div>");
Expand All @@ -79,24 +97,47 @@ else if (element instanceof StringMismatchWarning)
" <div>\n" +
" <h2 class=\"page-header\">").append(translate("report.string_mismatch.title")).append("</h2>\n" +
" <div>");
stringMismatches.forEach(mismatch->sb.append(
for(StringMismatchWarning mismatch:stringMismatches){
sb.append(
" <div class=\"panel panel-default\">\n" +
" <div class=\"panel-heading\">").append(escapeHtml4(mismatch.path)).append("</div>\n" +
" <div class=\"panel-body\">\n" +
" <p>\n" +
" <div>\n" +
" <label>").append(translate("report.string_mismatch.comparing")).append("</label><br/>\n" +
" <p><pre><code>").append(diff_prettyHtml(differ.diff_main(mismatch.origin, mismatch.current))).append("</code></pre></p>\n" +
" <pre><code>").append(diff_prettyHtml(differ.diff_main(mismatch.origin, mismatch.current))).append("</code></pre>\n"+
" </div>\n" +
" </div>\n" +
" </div>"));
" </div>");
}
sb.append(
" </div>\n" +
" </div>");
}
sb.append(
" </div>\n" +
" <script src=\"https://cdn.bootcss.com/jquery/1.11.1/jquery.min.js\"></script>\n" +
" <script src=\"https://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js\"></script>\n" +
" </body>\n" +
" </div>\n" +
" <script src=\"https://cdn.bootcss.com/jquery/1.11.1/jquery.min.js\"></script>\n" +
" <script src=\"https://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js\"></script>\n" +
" <script>\n"+
" function setCollapseIcon($this,status){\n"+
" var element=$('.icon-collapse'+$this.attr('relatedIcon'));\n"+
" if(status){\n"+
" element.addClass('glyphicon-chevron-up');\n"+
" element.removeClass('glyphicon-chevron-down');\n"+
" }else{\n"+
" element.addClass('glyphicon-chevron-down');\n"+
" element.removeClass('glyphicon-chevron-up');\n"+
" }\n"+
" }\n"+
" $(function(){\n"+
" $('.collapse').on('show.bs.collapse',function(){\n"+
" setCollapseIcon($(this),true);\n"+
" });\n"+
" $('.collapse').on('hidden.bs.collapse',function(){\n"+
" setCollapseIcon($(this),false);\n"+
" });\n"+
" });\n"+
" </script>\n" +
" </body>\n" +
"</html>\n");
// @formatter:on
return sb.toString();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
package org.to2mbn.maptranslator.model;

import java.util.LinkedHashSet;
import java.util.Set;
import org.to2mbn.maptranslator.tree.Node;

public abstract class ParsingWarning {

public final String[] pathArray;
public final String path;
public final Set<String> tags;

public ParsingWarning(Node node) {
pathArray = node.getPathArray();
path = node.getPath();
tags = new LinkedHashSet<>(node.tags());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ report.resolve_failure.title=Unresolved commands
report.resolve_failure.command=Command
report.resolve_failure.arguments=Parameters
report.resolve_failure.stacktrace=Stack trace
report.resolve_failure.error_message=Error Message
report.string_mismatch.title=Strings that cannot be ensured to be in the same format as input when outputting
report.string_mismatch.comparing=Comparing
report.export=Export as HTML
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ report.resolve_failure.title=\u65E0\u6CD5\u89E3\u6790\u7684\u547D\u4EE4
report.resolve_failure.command=\u547D\u4EE4
report.resolve_failure.arguments=\u53C2\u6570
report.resolve_failure.stacktrace=\u5806\u6808\u8DDF\u8E2A
report.resolve_failure.error_message=\u9519\u8BEF\u4FE1\u606F
report.string_mismatch.title=\u4E0D\u80FD\u4FDD\u8BC1\u8F93\u51FA\u65F6\u4E0E\u539F\u683C\u5F0F\u76F8\u540C\u7684\u5B57\u7B26\u4E32
report.string_mismatch.comparing=\u5BF9\u6BD4
report.export=\u5BFC\u51FA\u4E3AHTML
Expand Down

0 comments on commit 42f98ef

Please sign in to comment.