From f58d15f93fe1f9dda09d7b564a49d9fd4c53a08d Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Sat, 9 Oct 2010 22:06:05 +0200 Subject: Footer handler. --- org/madore/damlengine/TodoFooter.java | 51 +++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 org/madore/damlengine/TodoFooter.java (limited to 'org/madore/damlengine/TodoFooter.java') diff --git a/org/madore/damlengine/TodoFooter.java b/org/madore/damlengine/TodoFooter.java new file mode 100644 index 0000000..8c45eeb --- /dev/null +++ b/org/madore/damlengine/TodoFooter.java @@ -0,0 +1,51 @@ +package org.madore.damlengine; + +import java.util.ArrayList; +import java.util.regex.Pattern; +import org.w3c.dom.*; + +public final class TodoFooter extends TodoElement { + + public TodoFooter(Element node, + Context ctx, + TodoItem caller) { + super(node, ctx, caller); + } + + @Override + public void handle() { + ArrayList toProcess = new ArrayList(2); + Element hr = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "hr"); + hr.setAttributeNS(null, "class", "cleared"); + node.getParentNode().insertBefore(hr, node); + node.getParentNode().insertBefore(ctx.doc.createTextNode("\n"), node); + toProcess.add(TodoElement.getTodoElement(hr, this.ctx, this)); + Element addr = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "address"); + node.getParentNode().insertBefore(addr, node); + node.getParentNode().insertBefore(ctx.doc.createTextNode("\n"), node); + toProcess.add(TodoElement.getTodoElement(addr, this.ctx, this)); + Element a = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "a"); + a.setAttributeNS(null, "href", + (ctx.uriToTop==null)?"http://www.madore.org/~david/" + :ctx.uriToTop); + addr.appendChild(a); + a.appendChild(ctx.doc.createTextNode("David Madore")); + addr.appendChild(ctx.doc.createTextNode(" (")); + Element email = ctx.doc.createElementNS(DamlEngine.DAML_NS, "d:email-despammed"); + addr.appendChild(email); + addr.appendChild(ctx.doc.createTextNode(")")); + email.appendChild(ctx.doc.createTextNode("david+www")); + email.appendChild(ctx.doc.createElementNS(DamlEngine.DAML_NS, "d:email-at")); + email.appendChild(ctx.doc.createTextNode("madore")); + email.appendChild(ctx.doc.createElementNS(DamlEngine.DAML_NS, "d:email-dot")); + email.appendChild(ctx.doc.createTextNode("org")); + Node ws = node.getNextSibling(); + if ( ( ws.getNodeType() == Node.TEXT_NODE + || ws.getNodeType() == Node.CDATA_SECTION_NODE ) + && Pattern.matches("^\\s*$",((CharacterData)ws).getData()) ) + node.getParentNode().removeChild(ws); + node.getParentNode().removeChild(node); + this.ownerDeque.registerAtStart(toProcess); + } + +} -- cgit v1.2.3