Update of /var/cvs/contributions/CMSContainer_Modules/glossary/src/java/com/finalist/cmsc/module/glossary In directory james.mmbase.org:/tmp/cvs-serv1696/glossary/src/java/com/finalist/cmsc/module/glossary
Modified Files: Glossary.java GlossaryFactory.java Added Files: GlossaryEventListener.java Log Message: CMSC-1304 Glossary needed some improvements See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/glossary/src/java/com/finalist/cmsc/module/glossary See also: http://www.mmbase.org/jira/browse/CMSC-1304 GlossaryEventListener.java is new Index: Glossary.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Modules/glossary/src/java/com/finalist/cmsc/module/glossary/Glossary.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -b -r1.8 -r1.9 --- Glossary.java 12 Apr 2008 14:26:33 -0000 1.8 +++ Glossary.java 20 Feb 2009 14:22:57 -0000 1.9 @@ -1,35 +1,40 @@ package com.finalist.cmsc.module.glossary; -import java.util.*; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Glossary { - public static final String LINKPATTERN = "<a href=\"#\" title=\"%s\" id=\"_glossary_%s\" onclick=\"return false;\">%s</a>"; + public static final String LINKPATTERN = "<span class=\"glossaryWord\" title=\"%s\" id=\"_glossary_%s\">%s</span>"; public static final String GLOSSARY = "glossary"; - private final Map<String, String> TERMS = new HashMap<String, String>(); + private final Map<String, String> terms = new HashMap<String, String>(); private static Glossary glossary = null; + public void addTerm(String term, String description) { + terms.put(term, description); + } - void addTerm(String term, String description) { - TERMS.put(term, description); + public void removeTerm(String term) { + terms.remove(term); } public String mark(String material) { - Set<String> keyWords = TERMS.keySet(); + Set<String> keyWords = terms.keySet(); for (String word : keyWords) { - Pattern pattern = Pattern.compile(String.format("\\b%s\\b", word)); + Pattern pattern = Pattern.compile(String.format("\\b[%s%s]%s\\b", word.substring(0,1).toLowerCase(), word.substring(0, 1).toUpperCase(), word.substring(1))); Matcher matcher = pattern.matcher(material); while (matcher.find()) { int start = matcher.start(); int end = matcher.end(); - + String found = material.substring(start, end); if (!isInFormatedFragment(material, word, start)) { - String highlight = String.format(LINKPATTERN, TERMS.get(word), word, word); + String highlight = String.format(LINKPATTERN, terms.get(word), found, found); material = (new StringBuilder()).append(material.substring(0, start)).append(highlight).append( material.substring(end, material.length())).toString(); break; @@ -65,7 +70,6 @@ public Map<String, String> getTerms() { - return TERMS; + return terms; } - } Index: GlossaryFactory.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Modules/glossary/src/java/com/finalist/cmsc/module/glossary/GlossaryFactory.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- GlossaryFactory.java 12 Apr 2008 14:26:33 -0000 1.6 +++ GlossaryFactory.java 20 Feb 2009 14:22:57 -0000 1.7 @@ -5,6 +5,7 @@ import org.mmbase.bridge.Node; import org.mmbase.bridge.NodeList; import org.mmbase.bridge.NodeManager; +import org.mmbase.module.core.MMBase; import java.util.Iterator; @@ -14,9 +15,12 @@ public class GlossaryFactory { + @SuppressWarnings("unchecked") public static Glossary getGlossary() { Glossary glossary = Glossary.instance(); + MMBase.getMMBase().addNodeRelatedEventsListener("glossary", new GlossaryEventListener(glossary)); + if (glossary.getTerms().size() > 0) return glossary; @@ -25,7 +29,7 @@ NodeManager manager = cloud.getNodeManager("glossary"); NodeList list = manager.createQuery().getList(); - Iterator<Node> nodeListIterator = list.iterator(); + Iterator<Node> nodeListIterator = (Iterator<Node>)list.iterator(); while (nodeListIterator.hasNext()) { Node node = nodeListIterator.next(); _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs