/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.dataprocess.gui.launcher.result; import java.text.MessageFormat; import javax.swing.JEditorPane; /** * */ public class HTMLReport extends JEditorPane { private HTMLPart[] parts = {}; private String headerPattern = null; private Object[] headerArguments = {}; public HTMLReport() { setContentType("text/html"); setEditable(false); } public void setHTMLParts(HTMLPart[] parts) { this.parts = parts; for (HTMLPart part : parts) { part.setHtmlReport(this); } } public void setHeaderArguments(Object[] headerArguments) { this.headerArguments = headerArguments; } public void setHeaderPattern(String headerPattern) { this.headerPattern = headerPattern; } public Object[] getHeaderArguments() { return headerArguments; } public String getHeaderPattern() { return headerPattern; } private String buildReport() { StringBuilder buffer = new StringBuilder("<html><body bgcolor=\"F5F5F5\">"); buffer.append(getHeaderReport()); buffer.append("<table border=\"0\" cellspacing=\"2\" width=\"100%\">"); for (HTMLPart part : parts) { buffer.append(part.buildReport()); } buffer.append("</table></body></html>"); return buffer.toString(); } void updateGui() { setText(buildReport()); } private String getHeaderReport() { if (getHeaderPattern() != null && getHeaderArguments() != null) { return MessageFormat.format(getHeaderPattern(), getHeaderArguments()) + "<p>"; } else { return ""; } } }