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.gc.uriToTop==null)?"http://www.madore.org/~david/" :ctx.gc.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); } }