summaryrefslogtreecommitdiffstats
path: root/org/madore/damlengine/TodoTitleOrSubtitle.java
diff options
context:
space:
mode:
authorDavid A. Madore <david+git@madore.org>2010-10-10 00:29:18 +0200
committerDavid A. Madore <david+git@madore.org>2010-10-10 00:29:18 +0200
commitfab2da0e75bc84e0a811c31a8082e4b00769b5e5 (patch)
treee9f459897c3367b23060b263fed3098b1835ba1c /org/madore/damlengine/TodoTitleOrSubtitle.java
parentbfb0b79e1682f323cb29fe89f0d1a27dcaa44d68 (diff)
downloaddamlengine-fab2da0e75bc84e0a811c31a8082e4b00769b5e5.tar.gz
damlengine-fab2da0e75bc84e0a811c31a8082e4b00769b5e5.tar.bz2
damlengine-fab2da0e75bc84e0a811c31a8082e4b00769b5e5.zip
Handle title and subtitle.
Diffstat (limited to 'org/madore/damlengine/TodoTitleOrSubtitle.java')
-rw-r--r--org/madore/damlengine/TodoTitleOrSubtitle.java46
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);
+ }
+
+}