diff options
Diffstat (limited to 'org/madore/damlengine/TodoTitleOrSubtitle.java')
-rw-r--r-- | org/madore/damlengine/TodoTitleOrSubtitle.java | 46 |
1 files changed, 46 insertions, 0 deletions
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<Node> 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); + } + +} |