[jboss-svn-commits] JBL Code SVN: r19475 - in labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki: src/java/org/jboss/wiki/ui and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Apr 8 09:37:43 EDT 2008


Author: szimano
Date: 2008-04-08 09:37:43 -0400 (Tue, 08 Apr 2008)
New Revision: 19475

Modified:
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/.project
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiEdit.java
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/classes/Messages.properties
   labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_edit.xhtml
Log:
wiki preview feature

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/.project
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/.project	2008-04-08 06:38:14 UTC (rev 19474)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/.project	2008-04-08 13:37:43 UTC (rev 19475)
@@ -1,44 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
+
 <projectDescription>
-	<name>wiki-backend</name>
-	<comment>
+  <name>wiki</name>
+  <comment>
   </comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.common.project.facet.core.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.wst.validation.validationbuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.jboss.tools.common.verification.verifybuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
-		<nature>org.jboss.tools.jsf.jsfnature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-	</natures>
-	<linkedResources>
-		<link>
-			<name>WEB-ROOT</name>
-			<type>2</type>
-			<location>/Users/tomek/java/sandbox/portal-extensions/jbosswiki/forge-wiki/src/web</location>
-		</link>
-	</linkedResources>
-</projectDescription>
+  <projects>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+      <arguments>
+      </arguments>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+  </natures>
+</projectDescription>
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiEdit.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiEdit.java	2008-04-08 06:38:14 UTC (rev 19474)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/ui/WikiEdit.java	2008-04-08 13:37:43 UTC (rev 19475)
@@ -37,6 +37,8 @@
 import org.jboss.wiki.WikiContext;
 import org.jboss.wiki.WikiEngine;
 import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiType;
+import org.jboss.wiki.WikiTypeLoader;
 import org.jboss.wiki.attributesextractor.AttributesExtractor;
 import org.jboss.wiki.configuration.ConfigurationParser;
 import org.jboss.wiki.exceptions.EditSessionExpired;
@@ -73,26 +75,28 @@
 
 	private WikiEngine wikiEngine;
 
+	private boolean previewAvailable = false;
+
 	@Inject
 	public void setWikiEngine(WikiEngine wikiEngine) {
 		this.wikiEngine = wikiEngine;
-		
+
 		if (attributesExtractor != null && editSessionId == null) {
 			init();
 		}
 	}
-	
+
 	@Inject
 	public void setAttrExtractor(AttributesExtractor attrExtractor) {
 		this.attributesExtractor = attrExtractor;
-		
+
 		WikiHelper.getWikiCommonSession().update(attrExtractor);
-		
+
 		if (wikiEngine != null && editSessionId == null) {
 			init();
 		}
 	}
-	
+
 	private void init() {
 		editSessionId = wikiEngine.getEditSessionId();
 
@@ -126,7 +130,11 @@
 	}
 
 	public String getPageContent() {
-		return getWikiPage().getContent();
+		if (pageContent == null) {
+			pageContent = getWikiPage().getContent();
+		}
+
+		return pageContent;
 	}
 
 	public void setPageContent(String pageContent) {
@@ -200,7 +208,17 @@
 	}
 
 	public void setEditSessionId(String editSessionId) {
-		this.editSessionId = Integer.valueOf(editSessionId);
+		if (this.editSessionId != null) {
+			getWikiPage(true).unlock(attributesExtractor.getCredentials(),
+					this.editSessionId);
+
+			getWikiPage(true).unlock(attributesExtractor.getCredentials(),
+					Integer.valueOf(editSessionId));
+
+			init();
+		} else {
+			this.editSessionId = Integer.valueOf(editSessionId);
+		}
 	}
 
 	public File getNewFile() {
@@ -249,7 +267,8 @@
 	public List<SelectItem> getFileNames() {
 		WikiPage page = getWikiPage();
 
-		Set<String> attSet = wikiEngine.getAttachmentsSet(page, page.getLangCode());
+		Set<String> attSet = wikiEngine.getAttachmentsSet(page, page
+				.getLangCode());
 
 		List<SelectItem> attNames = new Vector<SelectItem>();
 
@@ -276,6 +295,8 @@
 		getWikiPage(true).unlock(attributesExtractor.getCredentials(),
 				editSessionId);
 
+		lockMsg = null;
+
 		return "goback";
 	}
 
@@ -287,4 +308,30 @@
 		return getWikiPage(false, "editShowHTML").getContent();
 	}
 
+	public String preview() {
+		previewAvailable = true;
+
+		return null;
+	}
+
+	public boolean isPreviewAvailable() {
+		return previewAvailable;
+	}
+
+	public String getPagePreviewContent() {
+		WikiPage previPage = null;
+
+		try {
+			previPage = (WikiPage) getWikiPage().clone();
+		} catch (CloneNotSupportedException e) {
+			// not going to happen
+			log.error(e);
+			return null;
+		}
+
+		previPage.setContent(pageContent);
+
+		return wikiEngine.getWikiType("html").process(previPage,
+				attributesExtractor.getWikiSession()).getContent();
+	}
 }

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/classes/Messages.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/classes/Messages.properties	2008-04-08 06:38:14 UTC (rev 19474)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/WEB-INF/classes/Messages.properties	2008-04-08 13:37:43 UTC (rev 19475)
@@ -2,8 +2,12 @@
 edit_cancel=Cancel
 edit_save=Save
 edit_spellcheck=Check Spelling
+edit_preview=Preview
 permaLinkButton=permaLinkButton.png
 
+preview_text=This is preview of the edited page. Please note you still have to save it !
+preview_scroll=Scroll down to see your preview !
+
 editButton=editButton.png
 recentButton=recentChanges.gif
 historyButton=historyButton.png

Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_edit.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_edit.xhtml	2008-04-08 06:38:14 UTC (rev 19474)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/forge-wiki/src/web/views/wiki_edit.xhtml	2008-04-08 13:37:43 UTC (rev 19475)
@@ -1,33 +1,49 @@
-<div  xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:ui="http://java.sun.com/jsf/facelets"
-      xmlns:c="http://java.sun.com/jstl/core"
-      xmlns:h="http://java.sun.com/jsf/html"
-      xmlns:f="http://java.sun.com/jsf/core">
-<ui:composition template="wiki_template.xhtml">
-	
-    <ui:define name="content">
-    	<h:panelGrid styleClass="wikiGreybkgSection" rendered="#{wikiEdit.lockMsg ne ''}">
-    		<h:outputText value="#{wikiEdit.lockMsg}" />
-    	</h:panelGrid>
-    	
-    	<h:outputText value="#{wikiEdit.showEditHTML}" escape="false" />
-    	<h:form acceptCharset="UTF-8">
-    		<h:panelGrid styleClass="editPageArea">
-    			<h:inputTextarea rows="40" cols="80" value="#{wikiEdit.pageContent}" styleClass="editPageArea" />
+<div xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:ui="http://java.sun.com/jsf/facelets"
+	xmlns:c="http://java.sun.com/jstl/core"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:f="http://java.sun.com/jsf/core"><ui:composition
+	template="wiki_template.xhtml">
+
+	<ui:define name="content">
+		<h:panelGrid styleClass="wikiGreybkgSection"
+			rendered="#{wikiEdit.lockMsg ne ''}">
+			<h:outputText value="#{wikiEdit.lockMsg}" />
+		</h:panelGrid>
+		
+		<h:panelGrid styleClass="wikiGreybkgSection" rendered="#{wikiEdit.previewAvailable}">
+				<h:outputText value="#{msg.preview_scroll}" />
+			</h:panelGrid>
+
+		<h:outputText value="#{wikiEdit.showEditHTML}" escape="false" />
+		<h:form acceptCharset="UTF-8">
+			<h:panelGrid styleClass="editPageArea">
+				<h:inputTextarea rows="40" cols="80" value="#{wikiEdit.pageContent}"
+					styleClass="editPageArea" />
 				<h:panelGroup styleClass="formbuttons">
-					<h:commandButton styleClass="submit" value="#{msg.edit_save}" action="#{wikiEdit.save}" />
-					<h:commandButton styleClass="submit" value="#{msg.edit_cancel}" action="#{wikiEdit.cancel}" />
-					<h:commandButton styleClass="submit" value="#{msg.edit_spellcheck}" onclick="openSpellChecker(); return false;" />
+					<h:commandButton styleClass="submit" value="#{msg.edit_save}"
+						action="#{wikiEdit.save}" />
+					<h:commandButton styleClass="submit" value="#{msg.edit_preview}"
+						action="#{wikiEdit.preview}" />
+					<h:commandButton styleClass="submit" value="#{msg.edit_cancel}"
+						action="#{wikiEdit.cancel}" />
+					<h:commandButton styleClass="submit" value="#{msg.edit_spellcheck}"
+						onclick="openSpellChecker(); return false;" />
 				</h:panelGroup>
 			</h:panelGrid>
 			<h:inputHidden value="#{wikiEdit.editSessionId}" />
-    	</h:form>
-    	
-    	<pre>
+		</h:form>
+
+		<pre>
     		<h:outputText value="#{msg.edit_instruction}" />
     	</pre>
-    </ui:define>
 
-</ui:composition>
+		<h:panelGroup rendered="#{wikiEdit.previewAvailable}">
+			<h:panelGrid styleClass="wikiGreybkgSection">
+				<h:outputText value="#{msg.preview_text}" />
+			</h:panelGrid>
+			<h:outputText value="#{wikiEdit.pagePreviewContent}" escape="false" />
+		</h:panelGroup>
+	</ui:define>
 
-</div>
+</ui:composition></div>




More information about the jboss-svn-commits mailing list