From: <jbo...@li...> - 2005-11-24 07:42:32
|
Author: szimano Date: 2005-11-24 02:42:21 -0500 (Thu, 24 Nov 2005) New Revision: 1637 Added: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CurrentTimePlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/InsertPage.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RefsManipulatingInsidePlugin.java Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiInsidePlugins.xml trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ReferringPagesPlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UndefinedPagesPlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UnusedPagesPlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/IndexInsidePlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/InsertPageInsidePlugin.java Log: new plugins + made "base" for jspwiki built-in plugins http://jira.jboss.com/jira/browse/JBWIKI-72 Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiInsidePlugins.xml =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiInsidePlugins.xml 2005-11-23 23:53:13 UTC (rev 1636) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiInsidePlugins.xml 2005-11-24 07:42:21 UTC (rev 1637) @@ -5,4 +5,5 @@ <entry key="tomek">org.jboss.wiki.plugins.TomekInsidePlugin</entry> <entry key="InsertPage">org.jboss.wiki.plugins.InsertPageInsidePlugin</entry> <entry key="IndexPlugin">org.jboss.wiki.plugins.IndexInsidePlugin</entry> +<entry key="CurrentTimePlugin">com.ecyrd.jspwiki.plugin.CurrentTimePlugin</entry> </properties> \ No newline at end of file Added: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CurrentTimePlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CurrentTimePlugin.java 2005-11-23 23:53:13 UTC (rev 1636) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CurrentTimePlugin.java 2005-11-24 07:42:21 UTC (rev 1637) @@ -0,0 +1,34 @@ +package com.ecyrd.jspwiki.plugin; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; + +import org.jboss.wiki.WikiInsidePlugin; +import org.jboss.wiki.WikiPage; +import org.jboss.wiki.WikiSession; + +public class CurrentTimePlugin extends WikiInsidePlugin { + + @Override + public String process(WikiPage wikiPage, WikiSession wikiSession, + HashMap<String, String> attributes) { + + String format = attributes.get("format"); + + if (format == null) + format = ""; + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); + + return simpleDateFormat.format(new Date()); + } + + @Override + public void init() { + // TODO Auto-generated method stub + + } + +} Added: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/InsertPage.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/InsertPage.java 2005-11-23 23:53:13 UTC (rev 1636) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/InsertPage.java 2005-11-24 07:42:21 UTC (rev 1637) @@ -0,0 +1,7 @@ +package com.ecyrd.jspwiki.plugin; + +import org.jboss.wiki.plugins.InsertPageInsidePlugin; + +public class InsertPage extends InsertPageInsidePlugin { + +} Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java 2005-11-23 23:53:13 UTC (rev 1636) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java 2005-11-24 07:42:21 UTC (rev 1637) @@ -12,7 +12,6 @@ import org.jboss.wiki.WikiInsidePlugin; import org.jboss.wiki.WikiPage; import org.jboss.wiki.WikiSession; -import org.jboss.wiki.plugins.HTMLTranslatorParts; public class RecentChangesPlugin extends WikiInsidePlugin { Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ReferringPagesPlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ReferringPagesPlugin.java 2005-11-23 23:53:13 UTC (rev 1636) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ReferringPagesPlugin.java 2005-11-24 07:42:21 UTC (rev 1637) @@ -2,16 +2,18 @@ import java.util.HashMap; import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.jboss.wiki.WikiInsidePlugin; + import org.jboss.wiki.WikiPage; import org.jboss.wiki.WikiSession; -import org.jboss.wiki.plugins.HTMLTranslatorParts; +import org.jboss.wiki.plugins.RefsManipulatingInsidePlugin; -public class ReferringPagesPlugin extends WikiInsidePlugin { +public class ReferringPagesPlugin extends RefsManipulatingInsidePlugin { + + //FIXME : FAQJBossIIOP + + @Override public String process(WikiPage wikiPage, WikiSession wikiSession, HashMap<String, String> attributes) { @@ -27,76 +29,17 @@ StringBuffer stringBuffer = new StringBuffer(); - Set<String> pageNames = wikiEngine.getAllPageNames(); - String uid = wikiEngine.getUid(wikiPage.getName()); - String pattern1 = "\\[.+\\]"; - String pattern2 = "\\[[\\w\\d]+\\|.+\\]"; - for (String pageName : pageNames) { - if (max == 0) { - // escape for - break; - } - - WikiPage page = wikiEngine.getByName(pageName, null); - - boolean fits = false; - - Matcher matcher = Pattern.compile(pattern1).matcher( - page.getContent()); - - while (matcher.find() && (!fits)) { - String pageUid = page.getContent().substring(matcher.start(), - matcher.end()); - - pageUid = pageUid.substring(1, pageUid - .indexOf(']')); - - pageUid = HTMLTranslatorParts.cleanLink(pageUid); - - if (pageUid != null && pageUid.equals(uid)) { - fits = true; - } - } - - if (!fits) { - matcher = Pattern.compile(pattern2).matcher(page.getContent()); - - while (matcher.find() && (!fits)) { - String pageUid = page.getContent().substring( - matcher.start(), matcher.end()); - - pageUid = pageUid.substring(pageUid.indexOf('|'), pageUid - .indexOf(']')); - - pageUid = HTMLTranslatorParts.cleanLink(pageUid); - - if (pageUid != null && pageUid.equals(uid)) { - fits = true; - } - } - } - - if (fits) { - stringBuffer.append(getLink(page.getName(), maxwidth)); - max--; - } - + Set<String> refsFor = getRefsFor(uid, max); + + for (String ref : refsFor) { + stringBuffer.append(getLink(ref, maxwidth)); } return stringBuffer.toString(); } - private String getLink(String pageName, Integer maxwidth) { - if ((maxwidth != null) && (pageName.length() > maxwidth)) { - return "[" + pageName.substring(0, maxwidth - 3) + "...|" - + pageName + "]\\\\"; - } else { - return "[" + pageName + "]\\\\"; - } - } - @Override public void init() { // TODO Auto-generated method stub Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UndefinedPagesPlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UndefinedPagesPlugin.java 2005-11-23 23:53:13 UTC (rev 1636) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UndefinedPagesPlugin.java 2005-11-24 07:42:21 UTC (rev 1637) @@ -2,16 +2,12 @@ import java.util.HashMap; import java.util.Set; -import java.util.TreeSet; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.jboss.wiki.WikiInsidePlugin; import org.jboss.wiki.WikiPage; import org.jboss.wiki.WikiSession; -import org.jboss.wiki.plugins.HTMLTranslatorParts; +import org.jboss.wiki.plugins.RefsManipulatingInsidePlugin; -public class UndefinedPagesPlugin extends WikiInsidePlugin { +public class UndefinedPagesPlugin extends RefsManipulatingInsidePlugin { @Override public String process(WikiPage wikiPage, WikiSession wikiSession, @@ -24,55 +20,8 @@ StringBuffer stringBuffer = new StringBuffer(); - Set<String> pageNames = wikiEngine.getAllPageNames(); - - String pattern1 = "\\[.+\\]"; - String pattern2 = "\\[[\\w\\d]+\\|.+\\]"; - - Set<String> allRefs = new TreeSet<String>(); - - for (String pageName : pageNames) { - - WikiPage page = wikiEngine.getByName(pageName, null); - - Matcher matcher = Pattern.compile(pattern1).matcher( - page.getContent()); - - while (matcher.find()) { - String pageUid = page.getContent().substring(matcher.start(), - matcher.end()); - - pageUid = pageUid.substring(1, pageUid.indexOf(']')); - - if (!HTMLTranslatorParts.isExternalLink(pageUid)) { - pageUid = HTMLTranslatorParts.cleanLink(pageUid); - - if (pageUid != null) { - allRefs.add(wikiEngine.getRealName(pageUid)); - } - } - } - - matcher = Pattern.compile(pattern2).matcher(page.getContent()); - - while (matcher.find()) { - String pageUid = page.getContent().substring(matcher.start(), - matcher.end()); - - pageUid = pageUid.substring(pageUid.indexOf('|'), pageUid - .indexOf(']')); - - if (!HTMLTranslatorParts.isExternalLink(pageUid)) { - pageUid = HTMLTranslatorParts.cleanLink(pageUid); - - if (pageUid != null) { - allRefs.add(wikiEngine.getRealName(pageUid)); - } - } - } - - } - + Set<String> allRefs = getAllRefs(); + for (String pageName : allRefs) { if (!wikiEngine.pageExists(pageName)) { @@ -83,15 +32,8 @@ return stringBuffer.toString(); } - private String getLink(String pageName, Integer maxwidth) { - if ((maxwidth != null) && (pageName.length() > maxwidth)) { - return "[" + pageName.substring(0, maxwidth - 3) + "...|" - + pageName + "]\\\\"; - } else { - return "[" + pageName + "]\\\\"; - } - } + @Override public void init() { // TODO Auto-generated method stub Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UnusedPagesPlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UnusedPagesPlugin.java 2005-11-23 23:53:13 UTC (rev 1636) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UnusedPagesPlugin.java 2005-11-24 07:42:21 UTC (rev 1637) @@ -2,16 +2,12 @@ import java.util.HashMap; import java.util.Set; -import java.util.TreeSet; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.jboss.wiki.WikiInsidePlugin; import org.jboss.wiki.WikiPage; import org.jboss.wiki.WikiSession; -import org.jboss.wiki.plugins.HTMLTranslatorParts; +import org.jboss.wiki.plugins.RefsManipulatingInsidePlugin; -public class UnusedPagesPlugin extends WikiInsidePlugin { +public class UnusedPagesPlugin extends RefsManipulatingInsidePlugin{ @Override public String process(WikiPage wikiPage, WikiSession wikiSession, @@ -25,56 +21,11 @@ StringBuffer stringBuffer = new StringBuffer(); Set<String> pageNames = wikiEngine.getAllPageNames(); + + Set<String> allRefs = getAllRefs(); - String pattern1 = "\\[.+\\]"; - String pattern2 = "\\[[\\w\\d]+\\|.+\\]"; - - Set<String> allRefs = new TreeSet<String>(); - for (String pageName : pageNames) { - WikiPage page = wikiEngine.getByName(pageName, null); - - Matcher matcher = Pattern.compile(pattern1).matcher( - page.getContent()); - - while (matcher.find()) { - String pageUid = page.getContent().substring(matcher.start(), - matcher.end()); - - pageUid = pageUid.substring(1, pageUid.indexOf(']')); - - if (!HTMLTranslatorParts.isExternalLink(pageUid)) { - pageUid = HTMLTranslatorParts.cleanLink(pageUid); - - if (pageUid != null) { - allRefs.add(wikiEngine.getRealName(pageUid)); - } - } - } - - matcher = Pattern.compile(pattern2).matcher(page.getContent()); - - while (matcher.find()) { - String pageUid = page.getContent().substring(matcher.start(), - matcher.end()); - - pageUid = pageUid.substring(pageUid.indexOf('|'), pageUid - .indexOf(']')); - - if (!HTMLTranslatorParts.isExternalLink(pageUid)) { - pageUid = HTMLTranslatorParts.cleanLink(pageUid); - - if (pageUid != null) { - allRefs.add(wikiEngine.getRealName(pageUid)); - } - } - } - - } - - for (String pageName : pageNames) { - if (!allRefs.contains(pageName)) { stringBuffer.append(getLink(pageName, maxwidth)); } @@ -83,15 +34,6 @@ return stringBuffer.toString(); } - private String getLink(String pageName, Integer maxwidth) { - if ((maxwidth != null) && (pageName.length() > maxwidth)) { - return "[" + pageName.substring(0, maxwidth - 3) + "...|" - + pageName + "]\\\\"; - } else { - return "[" + pageName + "]\\\\"; - } - } - @Override public void init() { // TODO Auto-generated method stub Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/IndexInsidePlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/IndexInsidePlugin.java 2005-11-23 23:53:13 UTC (rev 1636) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/IndexInsidePlugin.java 2005-11-24 07:42:21 UTC (rev 1637) @@ -18,14 +18,12 @@ Character chr = ' '; - String actionURL = (String)wikiSession.getAttribute("actionURL"); - for (String pageName : allPages) { if (Character.toUpperCase(pageName.charAt(0)) != chr) { chr = Character.toUpperCase(pageName.charAt(0)); - pluginContent.append("<h3>").append(chr).append("</h3>\n"); + pluginContent.append("!!").append(chr).append("\n"); } - pluginContent.append("<a href=\"").append(actionURL).append("&page=").append(pageName).append("\">").append(pageName).append("</a><br />\n"); + pluginContent.append("[").append(pageName).append("]\\\\\n"); } return pluginContent.toString(); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/InsertPageInsidePlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/InsertPageInsidePlugin.java 2005-11-23 23:53:13 UTC (rev 1636) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/InsertPageInsidePlugin.java 2005-11-24 07:42:21 UTC (rev 1637) @@ -23,7 +23,6 @@ import java.util.HashMap; -import org.jboss.wiki.WikiContext; import org.jboss.wiki.WikiInsidePlugin; import org.jboss.wiki.WikiPage; import org.jboss.wiki.WikiSession; @@ -37,20 +36,53 @@ String page = attributes.get("page"); + String style = attributes.get("style"); + + Integer maxlength = getNumericValue(attributes,"maxlength"); + + if (page == null) { - ret = "<i>There is no 'page' attribute which is mandatory for InsertPage plugin</i>"; + ret = "''There is no 'page' attribute which is mandatory for InsertPage plugin''"; } else { - WikiContext wikiContext = new WikiContext(null, wikiEngine.getWikiType("htmlClear"), wikiSession); + WikiPage about = wikiEngine.getByName(page, null); - WikiPage about = wikiEngine.getByName(page, wikiContext); - - ret = HTMLTranslatorParts.pagePartRegexStart+about.getContent()+HTMLTranslatorParts.pagePartRegexEnd; + ret = addStyle(addMaxLength(about.getContent(), page, maxlength),style); } return ret; } + + private String addMaxLength(String content, String pageName, Integer maxlength) { + if (maxlength != null) { + if (content.length() > maxlength) { + boolean insideLink = false; + + int i = 0; + + for (i = 0; (i < maxlength || insideLink); i++) { + if (content.charAt(i) == '[') { + insideLink = true; + } + else if (insideLink && content.charAt(i) == ']') { + insideLink = false; + } + } + return content.substring(0,i)+" ... \\\\\n\\\\\n[More...|"+pageName+"]"; + } + } + + return content; + } + private String addStyle(String content, String style) { + if ((style != null)&&(style.length() > 0)) { + return HTMLTranslatorParts.pagePartRegexEnd+"<div style=\""+style+"\">"+HTMLTranslatorParts.pagePartRegexStart+content+HTMLTranslatorParts.pagePartRegexEnd+"</div>"+HTMLTranslatorParts.pagePartRegexStart; + } + else + return content; + } + @Override public void init() { // TODO Auto-generated method stub Added: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RefsManipulatingInsidePlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RefsManipulatingInsidePlugin.java 2005-11-23 23:53:13 UTC (rev 1636) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RefsManipulatingInsidePlugin.java 2005-11-24 07:42:21 UTC (rev 1637) @@ -0,0 +1,138 @@ +package org.jboss.wiki.plugins; + +import java.util.Set; +import java.util.TreeSet; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.jboss.wiki.WikiInsidePlugin; +import org.jboss.wiki.WikiPage; + + +public abstract class RefsManipulatingInsidePlugin extends WikiInsidePlugin { + + private static final String pattern1 = "\\[.+\\]"; + private static final String pattern2 = "\\[[\\w\\d]+\\|.+\\]"; + + protected String getLink(String pageName, Integer maxwidth) { + if ((maxwidth != null) && (pageName.length() > maxwidth)) { + return "[" + pageName.substring(0, maxwidth - 3) + "...|" + + pageName + "]\\\\"; + } else { + return "[" + pageName + "]\\\\"; + } + } + + protected Set<String> getAllRefs() { + + Set<String> pageNames = wikiEngine.getAllPageNames(); + + Set<String> allRefs = new TreeSet<String>(); + + for (String pageName : pageNames) { + + WikiPage page = wikiEngine.getByName(pageName, null); + + Matcher matcher = Pattern.compile(pattern1).matcher( + page.getContent()); + + while (matcher.find()) { + String pageUid = page.getContent().substring(matcher.start(), + matcher.end()); + + pageUid = pageUid.substring(1, pageUid.indexOf(']')); + + if (!HTMLTranslatorParts.isExternalLink(pageUid)) { + pageUid = HTMLTranslatorParts.cleanLink(pageUid); + + if (pageUid != null) { + allRefs.add(wikiEngine.getRealName(pageUid)); + } + } + } + + matcher = Pattern.compile(pattern2).matcher(page.getContent()); + + while (matcher.find()) { + String pageUid = page.getContent().substring(matcher.start(), + matcher.end()); + + pageUid = pageUid.substring(pageUid.indexOf('|'), pageUid + .indexOf(']')); + + if (!HTMLTranslatorParts.isExternalLink(pageUid)) { + pageUid = HTMLTranslatorParts.cleanLink(pageUid); + + if (pageUid != null) { + allRefs.add(wikiEngine.getRealName(pageUid)); + } + } + } + + } + + return allRefs; + } + + protected Set<String> getRefsFor(String uid, Integer max) { + + Set<String> refsFor = new TreeSet<String>(); + + Set<String> pageNames = wikiEngine.getAllPageNames(); + + for (String pageName : pageNames) { + if (max == 0) { + // escape for + break; + } + + WikiPage page = wikiEngine.getByName(pageName, null); + + boolean fits = false; + + Matcher matcher = Pattern.compile(pattern1).matcher( + page.getContent()); + + while (matcher.find() && (!fits)) { + String pageUid = page.getContent().substring(matcher.start(), + matcher.end()); + + pageUid = pageUid.substring(1, pageUid + .indexOf(']')); + + pageUid = HTMLTranslatorParts.cleanLink(pageUid); + + if (pageUid != null && pageUid.equals(uid)) { + fits = true; + } + } + + if (!fits) { + matcher = Pattern.compile(pattern2).matcher(page.getContent()); + + while (matcher.find() && (!fits)) { + String pageUid = page.getContent().substring( + matcher.start(), matcher.end()); + + pageUid = pageUid.substring(pageUid.indexOf('|')+1, pageUid + .indexOf(']')); + + pageUid = HTMLTranslatorParts.cleanLink(pageUid); + + if (pageUid != null && pageUid.equals(uid)) { + fits = true; + } + } + } + + if (fits) { + refsFor.add(page.getName()); + max--; + } + + } + + return refsFor; + } + +} |