+ if (renderAsHtml)
+ {
+ ((JEditorPane) ((JScrollPane) jobPanes.get(which)).getViewport()
+ .getComponent(0)).setText(ensureHtmlTagged(text));
+ }
+ else
+ {
+ ((JTextArea) ((JScrollPane) jobPanes.get(which)).getViewport()
+ .getComponent(0)).setText(text);
+ }
+ }
+
+ /**
+ * extract content from <body> content </body>
+ *
+ * @param text
+ * @param leaveFirst
+ * - set to leave the initial html tag intact
+ * @param leaveLast
+ * - set to leave the final html tag intact
+ * @return
+ */
+ private String getHtmlFragment(String text, boolean leaveFirst,
+ boolean leaveLast)
+ {
+ if (text == null)
+ {
+ return null;
+ }
+ String lowertxt = text.toLowerCase();
+ int htmlpos = leaveFirst ? -1 : lowertxt.indexOf("<body");
+
+ int htmlend = leaveLast ? -1 : lowertxt.indexOf("</body");
+ int htmlpose = lowertxt.indexOf(">", htmlpos),
+ htmlende = lowertxt.indexOf(">", htmlend);
+ if (htmlend == -1 && htmlpos == -1)
+ {
+ return text;
+ }
+ if (htmlend > -1)
+ {
+ return text.substring((htmlpos == -1 ? 0 : htmlpose + 1), htmlend);
+ }
+ return text.substring(htmlpos == -1 ? 0 : htmlpose + 1);
+ }
+
+ /**
+ * very simple routine for adding/ensuring html tags are present in text.
+ *
+ * @param text
+ * @return properly html tag enclosed text
+ */
+ private String ensureHtmlTagged(String text)
+ {
+ if (text == null)
+ {
+ return "";
+ }
+ String lowertxt = text.toLowerCase();
+ int htmlpos = lowertxt.indexOf("<body");
+ int htmlend = lowertxt.indexOf("</body");
+ int doctype = lowertxt.indexOf("<!doctype");
+ int xmltype = lowertxt.indexOf("<?xml");
+ if (htmlend == -1)
+ {
+ text = text + "</body></html>";
+ }
+ if (htmlpos > -1)
+ {
+ if ((doctype > -1 && htmlpos > doctype)
+ || (xmltype > -1 && htmlpos > xmltype))
+ {
+ text = "<html><head></head><body>\n" + text.substring(htmlpos - 1);
+ }
+ }
+ else
+ {
+ text = "<html><head></head><body>\n" + text;
+ }
+ if (text.indexOf("<meta") > -1)
+ {
+ System.err
+ .println("HTML COntent: \n" + text + "<< END HTML CONTENT\n");
+
+ }
+ return text;