From fab2da0e75bc84e0a811c31a8082e4b00769b5e5 Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Sun, 10 Oct 2010 00:29:18 +0200 Subject: Handle title and subtitle. --- org/madore/damlengine/TodoTitleOrSubtitle.java | 46 ++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 org/madore/damlengine/TodoTitleOrSubtitle.java (limited to 'org/madore/damlengine/TodoTitleOrSubtitle.java') diff --git a/org/madore/damlengine/TodoTitleOrSubtitle.java b/org/madore/damlengine/TodoTitleOrSubtitle.java new file mode 100644 index 0000000..5e92f41 --- /dev/null +++ b/org/madore/damlengine/TodoTitleOrSubtitle.java @@ -0,0 +1,46 @@ +package org.madore.damlengine; + +import java.util.ArrayList; +import org.w3c.dom.*; + +public final class TodoTitleOrSubtitle extends TodoElement { + + public enum Type { + TITLE("h1","title"), + SUBTITLE("p","subtitle"); + final String eltName; + final String eltClass; + Type(String eltName, String eltClass) { + this.eltName = eltName; + this.eltClass = eltClass; + } + } + + final Type t; + + public TodoTitleOrSubtitle(Type t, + Element node, + Context ctx, + TodoItem caller) { + super(node, ctx, caller); + this.t = t; + } + + @Override + public void handle() { + Element elt = ctx.doc.createElementNS(DamlEngine.XHTML_NS, t.eltName); + String expLang = (t==Type.TITLE)?ctx.titleLang:ctx.subtitleLang; + if ( expLang != null ) + LangHelper.setLangNorec(node, expLang); + elt.setAttributeNS(null, "class", t.eltClass); + node.getParentNode().replaceChild(elt, node); + ArrayList childList + = TodoDefaultElement.getChildList((t==Type.TITLE)?ctx.title:ctx.subtitle); + for ( Node child : childList ) + elt.appendChild(child.cloneNode(true)); + TodoElement it + = TodoElement.getTodoElement(elt, this.ctx, this); + this.ownerDeque.registerAtStart(it); + } + +} -- cgit v1.2.3