Code Search for Developers
 
 
  

HtmlUtil.java from MASE: Agile Software Engineering at Krugle


Show HtmlUtil.java syntax highlighted

// Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the GNU General Public License version 2 or later.
package ca.ucalgary.cpsc.ebe.fitClipse.render.html;

import ca.ucalgary.cpsc.ebe.fitClipse.render.wiki.*;

public class HtmlUtil
{
	public static HtmlElement BR = new RawHtml("<br/>");
	public static HtmlElement HR = new RawHtml("<hr/>");
	public static HtmlElement NBSP = new RawHtml("&nbsp;");
	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.title.use(title);
		HtmlTag span = new HtmlTag("span");
		span.addAttribute("class", "page_title");
		span.add(title);
		page.header.use(span);
	}

	public static HtmlTag makeBold(String content)
	{
		HtmlTag bold = new HtmlTag("b");
		bold.add(content);
		return bold;
	}

	public static HtmlTag makeItalic(String content)
	{
		HtmlTag italic = new HtmlTag("i");
		italic.add(content);
		return italic;
	}

	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 makeFormTag(String method, String action)
	{
		HtmlTag formTag = new HtmlTag("form");
		formTag.addAttribute("method", method);
		formTag.addAttribute("action", action);
		return formTag;
	}

	public static HtmlTag makeAnchorTag(String name)
	{
		HtmlTag anchorTag = new HtmlTag("a");
		anchorTag.addAttribute("name", name);
		return anchorTag;
	}

	public static HtmlTag makeActionLink(String action, String name, String inputName, String accessKey, boolean newWindow)
	{
		TagGroup group = new TagGroup();
		String href = action;
		if(inputName != null)
			href = href + "?" + inputName;

		HtmlTag link = new HtmlTag("a");
		link.addAttribute("href", href);
		if(newWindow)
			link.addAttribute("target", "newWindow");
		link.addAttribute("accesskey", accessKey);
		link.add(name);

		group.add(new HtmlComment(name + " button"));
		group.add(link);
		return group;
	}

	public static HtmlTag makeInputTag(String type, String name, String value)
	{
		HtmlTag input = makeInputTag(type, name);
		input.addAttribute("value", value);
		return input;
	}

	public static HtmlTag makeInputTag(String type, String name)
	{
		HtmlTag input = new HtmlTag("input");
		input.addAttribute("type", type);
		input.addAttribute("name", name);
		return input;
	}

	public static HtmlTag makeOptionTag(String value, String text)
	{
		HtmlTag option = new HtmlTag("option");
		option.addAttribute("value", value);
		option.add(text);

		return option;
	}

	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 TagGroup makeBreadCrumbsWithCurrentPageLinked(String path) throws Exception
	{
		return makeBreadCrumbsWithCurrentPageLinked(path, ".");
	}

	public static HtmlTag makeBreadCrumbsWithCurrentPageNotLinked(String trail) throws Exception
	{
		return makeBreadCrumbsWithCurrentPageNotLinked(trail, ".");
	}

	public static TagGroup makeBreadCrumbsWithCurrentPageLinked(String path, String separator) throws Exception
	{
		TagGroup tagGroup = new TagGroup();
		String[] crumbs = path.split("[" + separator + "]");
		String trail = makeAllButLastCrumb(crumbs, separator, tagGroup);
		tagGroup.add(getLastCrumbAsLink(crumbs, trail));
		return tagGroup;
	}

	public static HtmlTag makeBreadCrumbsWithCurrentPageNotLinked(String path, String separator) throws Exception
	{
		TagGroup tagGroup = new TagGroup();
		String[] crumbs = path.split("[" + separator + "]");
		makeAllButLastCrumb(crumbs, separator, tagGroup);
		tagGroup.add(getLastCrumbAsText(crumbs));
		return tagGroup;
	}

	private static HtmlTag getLastCrumbAsLink(String[] crumbs, String trail) throws Exception
	{
		String crumb = getLastCrumb(crumbs);
		HtmlTag link = makeLink("/" + trail + crumb, crumb);
		link.head = HtmlUtil.BR.html();
		link.addAttribute("class", "page_title");
		return link;
	}

	private static String getLastCrumb(String[] crumbs)
	{
		String crumb = "";
		if(crumbs.length > 0)
			crumb = crumbs[crumbs.length - 1];
		return crumb;
	}

	private static HtmlTag getLastCrumbAsText(String[] crumbs) throws Exception
	{
		String crumb = getLastCrumb(crumbs);
		HtmlTag thisPage = new HtmlTag("span", crumb);
		thisPage.addAttribute("class", "page_title");
		thisPage.head = HtmlUtil.BR.html();
		return thisPage;
	}

	public static HtmlTag makeBreadCrumbsWithPageType(String trail, String type) throws Exception
	{
		return makeBreadCrumbsWithPageType(trail, ".", type);
	}

	public static HtmlTag makeBreadCrumbsWithPageType(String trail, String separator, String type) throws Exception
	{
		TagGroup group = makeBreadCrumbsWithCurrentPageLinked(trail, separator);
		group.add(HtmlUtil.BR);
		group.add(HtmlUtil.makeSpanTag("page_type", type));
		return group;
	}

	private static String makeAllButLastCrumb(String[] crumbs, String separator, TagGroup group)
	{
		String trail = "";
		for(int i = 0; i < crumbs.length - 1; i++)
		{
			String crumb = crumbs[i];
			HtmlTag link = makeLink("/" + trail + crumb, crumb);
			link.tail = separator;
			trail = trail + crumb + separator;
			group.add(link);
		}
		return trail;
	}

//	public static HtmlTag makeActions(PageData pageData) throws Exception
//	{
//		WikiPage page = pageData.getWikiPage();
//
//		WikiPagePath localPagePath = page.getPageCrawler().getFullPath(page);
//		String localPageName = PathParser.render(localPagePath);
//		String localOrRemotePageName = localPageName;
//		boolean newWindowIfRemote = NO_NEW_WINDOW;
//		if(page instanceof ProxyPage)
//		{
//			ProxyPage proxyPage = (ProxyPage) page;
//			localOrRemotePageName = proxyPage.getThisPageUrl();
//			newWindowIfRemote = true;
//		}
//		return makeActions(pageData, localPageName, localOrRemotePageName, newWindowIfRemote);
//
//	}

	public static HtmlTag makeActions(PageData pageData, String localPageName, String localOrRemotePageName, boolean newWindowIfRemote) throws Exception
	{
		TagGroup actions = new TagGroup();
		if(pageData.hasAttribute("Test"))
			actions.add(makeActionLink(localPageName, "Test", "test", "t", NO_NEW_WINDOW));
		if(pageData.hasAttribute("Suite"))
			actions.add(makeActionLink(localPageName, "Suite", "suite", "", NO_NEW_WINDOW));
		if(pageData.hasAttribute("Test") || pageData.hasAttribute("Suite"))
			actions.add(getNavBreak());
		if(pageData.hasAttribute("Edit"))
			actions.add(makeActionLink(localOrRemotePageName, "Edit", "edit", "e", newWindowIfRemote));
		if(pageData.hasAttribute("Versions"))
			actions.add(makeActionLink(localOrRemotePageName, "Versions", "versions", "v", newWindowIfRemote));
		if(pageData.hasAttribute("Properties"))
			actions.add(makeActionLink(localOrRemotePageName, "Properties", "properties", "p", newWindowIfRemote));
		if(pageData.hasAttribute("Refactor"))
			actions.add(makeActionLink(localOrRemotePageName, "Refactor", "refactor", "r", newWindowIfRemote));
		if(pageData.hasAttribute("WhereUsed"))
			actions.add(makeActionLink(localOrRemotePageName, "Where Used", "whereUsed", "w", NO_NEW_WINDOW));
		actions.add(getNavBreak());
		if(pageData.hasAttribute("RecentChanges"))
			actions.add(makeActionLink("/RecentChanges", "RecentChanges", null, "", NO_NEW_WINDOW));
		if(pageData.hasAttribute("Files"))
			actions.add(makeActionLink("/files", "Files", null, "f", NO_NEW_WINDOW));
		if(pageData.hasAttribute("Search"))
			actions.add(makeActionLink("?searchForm", "Search", null, "s", NO_NEW_WINDOW));

		return actions;
	}

	private static HtmlTag getNavBreak() {
		HtmlTag navBreak = new HtmlTag("div");
		navBreak.addAttribute("class", "nav_break");
		navBreak.add("&nbsp;");
		return navBreak;
	}

	public static String makeNormalWikiPageContent(PageData pageData) throws Exception
	{
		String content = testableHtml(pageData.getContent());
		return addHeaderAndFooter(pageData.getWikiPage(), content);
	}

	public static String addHeaderAndFooter(WikiPage page, String content) throws Exception
	{
		StringBuffer buffer = new StringBuffer();
//		buffer.append(getHtmlOfInheritedPage("PageHeader", page));
		buffer.append(content);
//		buffer.append(getHtmlOfInheritedPage("PageFooter", page));
		return buffer.toString();
	}

	public static String testableHtml(String  pageData) throws Exception
	{
		//WikiPage wikiPage = pageData.getWikiPage();
		StringBuffer buffer = new StringBuffer();
		PageData data = new PageData(null, pageData);
		
//		if(pageData.hasAttribute("Test"))
//		{
//			WikiPage setup = PageCrawlerImpl.getInheritedPage("SetUp", wikiPage);
//			if(setup != null)
//			{
//				WikiPagePath setupPath = wikiPage.getPageCrawler().getFullPath(setup);
//				String setupPathName = PathParser.render(setupPath);
//				buffer.append("!include -setup .").append(setupPathName).append("\n");
//			}
//		}
		//buffer.append(pageData.getContent());
		buffer.append(pageData);
//		if(pageData.hasAttribute("Test"))
//		{
//			WikiPage teardown = PageCrawlerImpl.getInheritedPage("TearDown", wikiPage);
//			if(teardown != null)
//			{
//				WikiPagePath tearDownPath = wikiPage.getPageCrawler().getFullPath(teardown);
//				String tearDownPathName = PathParser.render(tearDownPath);
//				buffer.append("\n").append("!include -teardown .").append(tearDownPathName).append("\n");
//			}
//		}
		data.setContent(buffer.toString());
		return data.getHtml();
	}

//	public static String getHtmlOfInheritedPage(String pageName, WikiPage context) throws Exception
//	{
//		return getLabeledHtmlOfInheritedPage(pageName, context, "");
//	}

//	public static String getLabeledHtmlOfInheritedPage(String pageName, WikiPage context, String label) throws Exception
//	{
//		WikiPage inheritedPage = PageCrawlerImpl.getInheritedPage(pageName, context);
//		if(inheritedPage != null)
//		{
//			PageData data = inheritedPage.getData();
//			if(label != null && label.length() > 1)
//			{
//				WikiPagePath inheritedPagePath = context.getPageCrawler().getFullPath(inheritedPage);
//				String inheritedPagePathName = PathParser.render(inheritedPagePath);
//				String fullLabel = "!meta " + label + ": ." + inheritedPagePathName + "\n";
//				String newContent = fullLabel + data.getContent();
//				data.setContent(newContent);
//			}
//			return data.getHtml(context);
//		}
//		else
//			return "";
//	}

	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;
	}
}




See more files for this project here

MASE: Agile Software Engineering

The MASE project investigates methods to support the coordination and executable acceptance testing of software projects. Keywords: Agile methods, distributed teams, Extreme Programming. See http://ebe.cpsc.ucalgary.ca/ebe for more information.

Project homepage: http://sourceforge.net/projects/mase
Programming language(s): Java,XML
License: other

  BasicHtmlPage.java
  ChunkedResultsListingUtil.java
  ChunkedResultsListingUtilTest.java
  HtmlComment.java
  HtmlElement.java
  HtmlPage.java
  HtmlPageFactory.java
  HtmlTableListingBuilder.java
  HtmlTag.java
  HtmlUtil.java
  RawHtml.java
  TagGroup.java