[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