summaryrefslogtreecommitdiffstats
path: root/org/madore/damlengine/TodoSubtitleElement.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/TodoSubtitleElement.java
parentbfb0b79e1682f323cb29fe89f0d1a27dcaa44d68 (diff)
downloaddamlengine-fab2da0e75bc84e0a811c31a8082e4b00769b5e5.tar.gz
damlengine-fab2da0e75bc84e0a811c31a8082e4b00769b5e5.tar.bz2
damlengine-fab2da0e75bc84e0a811c31a8082e4b00769b5e5.zip
Handle title and subtitle.
Diffstat (limited to 'org/madore/damlengine/TodoSubtitleElement.java')
-rw-r--r--org/madore/damlengine/TodoSubtitleElement.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/org/madore/damlengine/TodoSubtitleElement.java b/org/madore/damlengine/TodoSubtitleElement.java
new file mode 100644
index 0000000..a00a266
--- /dev/null
+++ b/org/madore/damlengine/TodoSubtitleElement.java
@@ -0,0 +1,44 @@
+package org.madore.damlengine;
+
+import java.util.ArrayList;
+import java.util.regex.Pattern;
+import org.w3c.dom.*;
+
+public final class TodoSubtitleElement extends TodoDefaultElement {
+
+ public static class Factory extends TodoElement.Factory {
+ @Override
+ public TodoSubtitleElement newItem(Element node,
+ Context ctx,
+ TodoItem caller) {
+ return new TodoSubtitleElement(node, ctx, caller);
+ }
+ }
+
+ public TodoSubtitleElement(Element node,
+ Context ctx,
+ TodoItem caller) {
+ super(node, ctx, caller);
+ }
+
+ @Override
+ public void handleNodeOnly() {
+ if ( ctx.subtitle != null )
+ throw new IllegalArgumentException("attempting to redefine subtitle");
+ ctx.subtitle = ctx.doc.createDocumentFragment();
+ ctx.subtitleStr = node.getTextContent();
+ ctx.subtitleLang = LangHelper.getLangRec(node);
+ String lang = LangHelper.getLangNorec(node);
+ ArrayList<Node> childList = getChildList(node);
+ for ( Node child : childList ) {
+ ctx.subtitle.appendChild(child);
+ }
+ 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);
+ }
+
+}