|
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 />
|