From e1a28d91563986bb6bd8866f7df68a4b0569ec9b Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Thu, 8 Sep 2011 16:45:01 +0200 Subject: Display lists of categories, with appropriate links. --- org/madore/damlengine/TodoEntryElement.java | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'org/madore/damlengine/TodoEntryElement.java') diff --git a/org/madore/damlengine/TodoEntryElement.java b/org/madore/damlengine/TodoEntryElement.java index 7365b88..db78c06 100644 --- a/org/madore/damlengine/TodoEntryElement.java +++ b/org/madore/damlengine/TodoEntryElement.java @@ -45,6 +45,18 @@ public final class TodoEntryElement extends TodoDefaultElement { String entryMonthStr = entryDateMatcher.group(2); String entryDayStr = entryDateMatcher.group(3); String entryDowStr = node.getAttributeNS(null, "day_of_week"); + String entryCatStr = node.getAttributeNS(null, "cat"); + ArrayList entryCatList; + if ( entryCatStr.equals("") ) { + entryCatList = new ArrayList(0); + } else { + String[] temp = entryCatStr.split("\\s+"); + entryCatList = new ArrayList(temp.length); + for ( String cat : temp ) { + if ( ! cat.equals("") ) + entryCatList.add(cat); + } + } String entryIdStr = "d."+entryDateStr+"."+entryNumberStr; div.setAttributeNS(null, "id", entryIdStr); @@ -76,7 +88,7 @@ public final class TodoEntryElement extends TodoDefaultElement { Context ctx2 = ctx.clone(); ctx2.ent = new Context.EntryContext(entryYearStr, entryMonthStr, entryDayStr, - entryNumberStr, entryDowStr); + entryNumberStr, entryDowStr, entryCatList); ctx2.ent.headerNode = header; ctx2.ent.headlinkNode = headlink; @@ -95,11 +107,21 @@ public final class TodoEntryElement extends TodoDefaultElement { toProcess.add(it); } } + Element footer = ctx.doc.createElementNS(DamlEngine.XHTML_NS, "footer"); + div.appendChild(footer); + div.appendChild(ctx.doc.createTextNode("\n")); + if ( entryCatList.size() > 0 ) { + Element token = ctx.doc.createElementNS(DamlEngine.DAML_NS, + "d:implicit-do-categories"); + footer.appendChild(token); + footer.appendChild(ctx.doc.createTextNode("\n")); + toProcess.add(new TodoCategories(token, ctx2, this)); + } if ( node.getAttributeNS(null, "nocomments").equals("") ) { Element token = ctx.doc.createElementNS(DamlEngine.DAML_NS, "d:implicit-do-comments"); - div.appendChild(token); - div.appendChild(ctx.doc.createTextNode("\n")); + footer.appendChild(token); + footer.appendChild(ctx.doc.createTextNode("\n")); toProcess.add(new TodoComments(token, ctx2, this)); } this.ownerDeque.registerAtStart(toProcess); -- cgit v1.2.3