From: <jbo...@li...> - 2005-08-24 19:34:45
|
Author: szimano Date: 2005-08-24 15:33:54 -0400 (Wed, 24 Aug 2005) New Revision: 947 Added: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java Modified: trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/WikiTypes.xml trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPlugin.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/AttachmentListPlugin.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/DiffPlugin.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/TrailPlugin.java trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/Wiki.jsp Log: friendly links Modified: trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/WikiTypes.xml =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/WikiTypes.xml 2005-08-24 19:27:57 UTC (rev 946) +++ trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/WikiTypes.xml 2005-08-24 19:33:54 UTC (rev 947) @@ -20,6 +20,10 @@ <name>attachmentList</name> <class>org.jboss.wiki.plugins.AttachmentListPlugin</class> </plugin> + <plugin> + <name>friendlyLinks</name> + <class>org.jboss.wiki.plugins.FriendlyLinkPlugin</class> + </plugin> </wikiType> <wikiType> <name>DIFF</name> Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPlugin.java 2005-08-24 19:27:57 UTC (rev 946) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPlugin.java 2005-08-24 19:33:54 UTC (rev 947) @@ -50,11 +50,6 @@ * * @return */ - public abstract void next(); -/** - * <p></p> - * - */ public abstract void init(); Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-08-24 19:27:57 UTC (rev 946) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-08-24 19:33:54 UTC (rev 947) @@ -9,9 +9,11 @@ package org.jboss.wiki; import java.io.File; +import java.io.IOException; import java.util.Date; import java.util.Iterator; import java.util.List; +import java.util.Properties; import javax.portlet.*; import org.jboss.portlet.*; @@ -183,6 +185,7 @@ public void doView(JBossRenderRequest rReq, JBossRenderResponse rRes) throws PortletException, java.io.IOException { + WikiPage noSuchPage = new WikiPage("", new Credentials(""), "There is no such page. Click on EDIT to start it.", 0, 0, null, wikiEngine.getMediaDataSource()); @@ -334,6 +337,13 @@ rReq.setAttribute("defaultPage", defaultPage); + // FIXME make this more elegant (ie. plugin) + // pass friendly link + Properties props = new Properties(); + props.load(WikiPlugin.class.getResourceAsStream("wikiPlugins.properties")); + rReq.setAttribute("firendlyLink", props.getProperty("htmlTranslatorURL")+"wiki/"+pageToShow.getName()); + + rRes.setTitle("Wiki"); if (javax.portlet.WindowState.NORMAL.equals(rReq.getWindowState()) || javax.portlet.WindowState.MAXIMIZED.equals(rReq Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/AttachmentListPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/AttachmentListPlugin.java 2005-08-24 19:27:57 UTC (rev 946) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/AttachmentListPlugin.java 2005-08-24 19:33:54 UTC (rev 947) @@ -47,12 +47,7 @@ return newPage; } - @Override - public void next() { - // TODO Auto-generated method stub - } - @Override public void init() { host = getProperty("htmlTranslatorURL")+"wiki/"; Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/DiffPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/DiffPlugin.java 2005-08-24 19:27:57 UTC (rev 946) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/DiffPlugin.java 2005-08-24 19:33:54 UTC (rev 947) @@ -36,11 +36,6 @@ } @Override - public void next() { - - } - - @Override public void init() { differenceEngine = new DifferenceEngine("ISO-8859-1"); Added: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java 2005-08-24 19:27:57 UTC (rev 946) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java 2005-08-24 19:33:54 UTC (rev 947) @@ -0,0 +1,62 @@ +package org.jboss.wiki.plugins; + +import java.util.Vector; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.jboss.wiki.WikiPage; +import org.jboss.wiki.WikiPlugin; +import org.jboss.wiki.WikiSession; + +public class FriendlyLinkPlugin extends WikiPlugin { + + private String url; + private String pattern; + + private String translateLinks(String content) { + //<a href="http://localhost:8080/portal/index.html?ctrl:id=window.default.WikiPortletWindow&ctrl:type=action&page=JBossWiki"> + String newContent = content; + Vector<String> replaces = new Vector<String>(); + + Matcher matcher = Pattern.compile(pattern).matcher(newContent); + + while (matcher.find()) { + String link = content.substring(matcher.start(), matcher.end()); + replaces.add("<a href=\""+url+link.substring(link.lastIndexOf("&page=")+("&page=".length()), link.length()-2)+"\" >"); + } + + for (int i = 0; i < replaces.size(); i++) { + matcher = Pattern.compile(pattern).matcher(newContent); + newContent = matcher.replaceFirst(replaces.get(i)); + } + + //System.out.println(content); + + return newContent; + } + + @Override + public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) { + WikiPage newPage = null; + + try { + newPage = (WikiPage) wikiPage.clone(); + } catch (CloneNotSupportedException cl) { + System.err.println(cl); + } + + newPage.setPageContent(translateLinks(newPage.getPageContent())); + + return newPage; + } + + @Override + public void init() { + url = getProperty("htmlTranslatorURL")+"wiki/"; + + pattern = "<a href=\""+((getProperty("htmlTranslatorURL")+"portal/"+getProperty("wikiHome")).replaceAll("\\.","\\\\.").replaceAll("\\?", "\\\\?"))+"&page=\\w+\">"; + + System.out.println(pattern); + } + +} Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/TrailPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/TrailPlugin.java 2005-08-24 19:27:57 UTC (rev 946) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/TrailPlugin.java 2005-08-24 19:33:54 UTC (rev 947) @@ -37,12 +37,6 @@ } @Override - public void next() { - // TODO Auto-generated method stub - - } - - @Override public void init() { // TODO Auto-generated method stub Modified: trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/Wiki.jsp =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/Wiki.jsp 2005-08-24 19:27:57 UTC (rev 946) +++ trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/Wiki.jsp 2005-08-24 19:33:54 UTC (rev 947) @@ -12,6 +12,7 @@ String wikiContent = (String)request.getAttribute("wikiContent"); String wikiPage = (String)request.getAttribute("wikiPage"); String defaultPage = (String)request.getAttribute("defaultPage"); + String firendlyLink = (String)request.getAttribute("firendlyLink"); java.util.Date editDate = (java.util.Date)request.getAttribute("editDate"); org.jboss.wiki.Credentials author = (org.jboss.wiki.Credentials)request.getAttribute("author"); %> @@ -19,8 +20,15 @@ <h2><a href="<%=actionURL%>&page=<%=defaultPage%>"><%=wikiName%></a>/ <%=wikiPage%> </h2> <!--<a href="<%=actionURL%>&page=<%=defaultPage%>"><%=defaultPage%></a><br />--> -<div style="text-align: right;"> +<form method="post" action="<%=actionURL%>"> +<table style="width: 100%" border="0"> +<tr style="vertical-align: bottom;"> +<td style="vertical-align: bottom; align-bottom: 0px;"> +PERM LINK:<a href="<%=firendlyLink%>"><%=firendlyLink%></a> +</td> +<td style="text-align: right;vertical-align: bottom; align-bottom: 0px;"> + <% String logedIn = (String)request.getAttribute("logedIn"); @@ -32,17 +40,18 @@ } else { - out.print("<i><div style='font-size: xx-small'>Login to edit pages and attach files</div></i>"); + out.print("<div style='font-size: xx-small'><i>Login to edit pages and attach files</i></div>"); } %> - <a href="<%=actionURL%>&action=Info&page=<%=wikiPage%>"><img alt="HISTORY" src="/file-access/default/members/jbosswiki/images/historyButton.png"</img></a> -<form method="post" action="<%=actionURL%>"> + <a href="<%=actionURL%>&action=Info&page=<%=wikiPage%>"><img alt="HISTORY" src="/file-access/default/members/jbosswiki/images/historyButton.png"</img></a><br /> <input type="text" name="page" /> <input type="submit" value="GO" /> +</td> +</tr> +</table> </form> -</div> <hr /> |