// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved. // Released under the terms of the CPL Common Public License version 1.0. package fitnesse.html; import fitnesse.responders.templateUtilities.HtmlPage; import fitnesse.responders.templateUtilities.PageTitle; import fitnesse.wiki.PageData; import fitnesse.wiki.WikiPageUtil; public class HtmlUtil { public static final String BRtag = "<br/>"; public static final String HRtag = "<hr/>"; public static HtmlElement BR = new RawHtml(BRtag); public static HtmlElement HR = new RawHtml(HRtag); public static HtmlElement NBSP = new RawHtml(" "); public static HtmlElement P = new RawHtml("<p>"); public static final boolean NO_NEW_WINDOW = false; public static final String ENDL = System.getProperty("line.separator"); public static HtmlTag makeDivTag(String divClass) { HtmlTag div = new HtmlTag("div"); div.addAttribute("class", divClass); div.add(""); return div; } public static void addTitles(HtmlPage page, String title) { page.setTitle(title); page.setPageTitle(new PageTitle(title)); } public static HtmlTag makeBold(String content) { HtmlTag bold = new HtmlTag("b"); bold.add(content); return bold; } public static HtmlTag makeSpanTag(String spanClass, String content) { HtmlTag span = new HtmlTag("span"); span.addAttribute("class", spanClass); span.add(content); return span; } public static HtmlTag makeLink(String href, String text) { return makeLink(href, new RawHtml(text)); } public static HtmlTag makeLink(String href, HtmlElement content) { HtmlTag link = new HtmlTag("a"); link.addAttribute("href", href); link.add(content); return link; } public static String makeNormalWikiPageContent(PageData pageData) { SetupTeardownAndLibraryIncluder.includeInto(pageData); return makePageHtml(pageData); } public static String makePageHtml(PageData pageData) { StringBuffer buffer = new StringBuffer(); buffer.append(WikiPageUtil.getHeaderPageHtml(pageData.getWikiPage())); buffer.append(pageData.getHtml()); return buffer.toString(); } public static String makePageFooterHtml(PageData pageData) { return WikiPageUtil.getFooterPageHtml(pageData.getWikiPage()); } public static String metaText(String text) { return "<span class=\"meta\">" + text + "</span>"; } public static HtmlTag makeJavascriptLink(String jsFile) { HtmlTag scriptTag = new HtmlTag("script"); scriptTag.addAttribute("src", jsFile); scriptTag.addAttribute("type", "text/javascript"); scriptTag.use(""); return scriptTag; } public static String escapeHtmlForJavaScript(String html) { html = html.replaceAll("\"", "\\\\\""); html = html.replaceAll("\t", "\\\\t"); html = html.replaceAll("\n", "\\\\n"); html = html.replaceAll("\r", "\\\\r"); html = html.replaceAll(HtmlElement.endl, "\\\\n"); return html; } public static HtmlTag makeAppendElementScript(String idElementToAppend, String htmlToAppend) { HtmlTag scriptTag = new HtmlTag("script"); String getElement = "document.getElementById(\"" + idElementToAppend + "\")"; String escapedHtml = escapeHtmlForJavaScript(htmlToAppend); StringBuffer script = new StringBuffer(); script.append("var existingContent = ").append(getElement).append(".innerHTML;"); script.append(HtmlTag.endl); script.append(getElement).append(".innerHTML = existingContent + \"").append(escapedHtml).append("\";"); script.append(HtmlTag.endl); scriptTag.add(script.toString()); return scriptTag; } public static HtmlTag makeReplaceElementScript(String idElement, String newHtmlForElement) { HtmlTag scriptTag = new HtmlTag("script"); String escapedHtml = escapeHtmlForJavaScript(newHtmlForElement); scriptTag.add("document.getElementById(\"" + idElement + "\").innerHTML = \"" + escapedHtml + "\";"); return scriptTag; } public static HtmlTag makeSilentLink(String href, HtmlElement content) { HtmlTag link = new HtmlTag("a"); link.addAttribute("href", "#"); link.addAttribute("onclick", "doSilentRequest('" + href + "')"); link.add(content); return link; } }