From: <jbo...@li...> - 2005-08-17 12:22:08
|
Author: szimano Date: 2005-08-17 08:21:58 -0400 (Wed, 17 Aug 2005) New Revision: 878 Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/Credentials.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/FileDataSource.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/MediaDataSource.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.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/WikiTypeHandler.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiTypes.xml trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/HTMLTranslator.java trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/Edit.jsp trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/Wiki.jsp Log: editing (real one) and loging fixed Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/Credentials.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/Credentials.java 2005-08-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/Credentials.java 2005-08-17 12:21:58 UTC (rev 878) @@ -1,5 +1,14 @@ - package org.jboss.wiki; +/************************************************** + * * + * JBoss Labs: Creating Professional Open Source * + * * + * Distributable under LGPL license. * + * See terms of license at gnu.org. * + * * + *************************************************/ +package org.jboss.wiki; + /** * <p></p> * Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/FileDataSource.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/FileDataSource.java 2005-08-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/FileDataSource.java 2005-08-17 12:21:58 UTC (rev 878) @@ -1,3 +1,11 @@ +/************************************************** + * * + * JBoss Labs: Creating Professional Open Source * + * * + * Distributable under LGPL license. * + * See terms of license at gnu.org. * + * * + *************************************************/ package org.jboss.wiki; import java.io.File; @@ -2,2 +10,4 @@ import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; @@ -20,7 +30,7 @@ * </p> * */ - private final String propFileName = "filedatasource.properties";//"/home/tomek/java/sandbox/new_svn/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/filedatasource.properties"; + private final String propFileName = "filedatasource.properties";// "/home/tomek/java/sandbox/new_svn/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/filedatasource.properties"; private String pathToMedia; @@ -32,7 +42,8 @@ fileDSProps = new Properties(); try { - fileDSProps.load(FileDataSource.class.getResourceAsStream(propFileName)); + fileDSProps.load(FileDataSource.class + .getResourceAsStream(propFileName)); } catch (IOException ioe) { System.err.println("Can't load the file " + propFileName + "\n" + ioe); @@ -59,8 +70,70 @@ } public boolean savePage(WikiPage page, String languageCode) { - // TODO Auto-generated method stub - return false; + // TODO Languages + + boolean status = false; + + Properties pageProps = getPageProps(page.getName()); + + pageProps.setProperty(page.getLastVersion() + ".author", page + .getLastAuthor().getName()); + + try { + pageProps.store(new FileOutputStream(new File(pathToMedia + "/OLD/" + + page.getName() + "/page.properties")), + "Saved by FileDataSource of JBoss Wiki"); + } catch (Exception e) { + System.err.println("[FILEDATASOURCE]: Cannot save property file: " + + e.toString()); + } + + System.out.println("Opening files"); + File pageFile = new File(pathToMedia + "/OLD/" + page.getName() + "/" + + (page.getLastVersion() - 1) + ".txt"); + File pageOldFile = new File(pathToMedia + "/" + page.getName() + ".txt"); + + FileOutputStream pageFileWriter; + FileInputStream pageFileReader; + + try { + pageFileWriter = new FileOutputStream(pageFile); + pageFileReader = new FileInputStream(pageOldFile); + + int b; + + while ((b = pageFileReader.read()) != -1) { + pageFileWriter.write(b); + } + + pageFileWriter.close(); + + pageOldFile.delete(); + + pageFileWriter = new FileOutputStream(pageOldFile); + + String pageContent = page.getContent(); + + for (int i = 0; i < pageContent.length(); i++) { + pageFileWriter.write((int) pageContent.charAt(i)); + } + + pageFileWriter.close(); + status = true; + } catch (FileNotFoundException fnfe) { + System.err.println("[FILEDATASOURCE]: Cannot save page: " + + fnfe.toString()); + } catch (IOException ioe) { + System.err.println("[FILEDATASOURCE]: Cannot save page: " + + ioe.toString()); + } + + /* + * while () String pageContent = page.getContent(); + * + * for (int i = 0; i < page.) pageFileWriter.w + */ + return status; } public boolean postSave() { @@ -90,8 +163,9 @@ } public WikiPage getPage(String pageName) { - System.out.println("[WIKI:FileDataSource]: Getting new page: "+pageName); - + System.out.println("[WIKI:FileDataSource]: Getting new page: " + + pageName); + WikiPage page = null; File pageFile = new File(pathToMedia + "/" + pageName + ".txt"); @@ -128,7 +202,7 @@ } page = new WikiPage(pageName, author, pageContent, i, - new Date()); + new Date(), this); } } @@ -170,15 +244,15 @@ if (page != null) { if (page.getLastVersion() < version) { - System.out.println("There is no version " + version + " of page " - + pageName); + System.out.println("There is no version " + version + + " of page " + pageName); return null; } - + page.setPageContent(getContentAtVersion(pageName, version)); - + page.setLastAuthor(getAuthorAtVersion(pageName, version)); - + } return page; } @@ -234,16 +308,15 @@ System.out .println("Page WhatIsJBossForge doesn't exist at version 7"); } - + page = fds.getPageAtVersion("Dupa", 7); if (page != null) { page.showPage(); } else { - System.out - .println("Page Dupa doesn't exist at version 7"); + System.out.println("Page Dupa doesn't exist at version 7"); } - + page = fds.getPageAtVersion("WhatIsJBossForge", 70); if (page != null) { @@ -259,8 +332,7 @@ if (pageFile.exists()) { return true; - } - else { + } else { return false; } } Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/MediaDataSource.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/MediaDataSource.java 2005-08-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/MediaDataSource.java 2005-08-17 12:21:58 UTC (rev 878) @@ -1,4 +1,12 @@ - package org.jboss.wiki; +/************************************************** + * * + * JBoss Labs: Creating Professional Open Source * + * * + * Distributable under LGPL license. * + * See terms of license at gnu.org. * + * * + *************************************************/ +package org.jboss.wiki; /** * <p></p> * Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java 2005-08-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java 2005-08-17 12:21:58 UTC (rev 878) @@ -58,6 +58,7 @@ private MediaDataSource mediaDataSource; + private String wikiID = (new Date()).toString(); /** * <p> * Does ... @@ -120,7 +121,7 @@ * @param wikiContext */ public WikiPage getByName(String pageName, WikiContext wikiContext) { - + WikiPage ret = null; if (pages.containsKey(pageName)) { @@ -286,6 +287,10 @@ init(); } + public MediaDataSource getMediaDataSource() { + return mediaDataSource; + } + public static void main(String[] args) { WikiEngine we = new WikiEngine(); @@ -294,7 +299,7 @@ WikiContext wc = new WikiContext(null, wt); WikiPage wp = new WikiPage("name", new Credentials("tomek"), - "[content|ble sme]", 1, new Date()); + "[content|ble sme]", 1, new Date(), we.getMediaDataSource()); wp = wc.process(wp); Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java 2005-08-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java 2005-08-17 12:21:58 UTC (rev 878) @@ -105,41 +105,15 @@ private String pageContent; - /** - * <p> - * Does ... - * </p> - * - * - * @return - * @param pageName - * @param data - * @param pageAuthor - * @param pageDate - */ - public static WikiPage createPage(String pageName, Object data, - String pageAuthor, java.util.Date pageDate) { - // your code here - return null; - } - /** - * <p> - * Does ... - * </p> - * - * - * @param pageName - * @param pageAuthor - * @param path - */ public WikiPage(String pageName, Credentials pageAuthor, - String pageContent, int pageVersion, Date editDate) { + String pageContent, int pageVersion, Date editDate, MediaDataSource mediaDataSource) { name = pageName; lastAuthor = pageAuthor; this.pageContent = pageContent; lastVersion = pageVersion; this.editDate = editDate; + this.mediaDataSource = mediaDataSource; } /** @@ -162,7 +136,7 @@ * */ public void save() { - // your code here + mediaDataSource.savePage(this, null); } /** @@ -187,9 +161,8 @@ * @return * @param mds */ - public boolean setMediaDataSource(MediaDataSource mds) { - // your code here - return false; + public void setMediaDataSource(MediaDataSource mds) { + mediaDataSource = mds; } /** @@ -317,7 +290,7 @@ @Override public Object clone() throws CloneNotSupportedException { WikiPage clonedPage = new WikiPage(getName(), getLastAuthor(), - getPageContent(), getLastVersion(), getEditDate()); + getPageContent(), getLastVersion(), getEditDate(), mediaDataSource); return clonedPage; } 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-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-08-17 12:21:58 UTC (rev 878) @@ -38,8 +38,9 @@ public void processAction(JBossActionRequest rReq, JBossActionResponse rResp) { - WikiContext wikiContext = new WikiContext(rReq.getUser(), wikiEngine - .getWikiType("HTML")); + // wikiContext is null - to get refernece to actual page + + WikiContext wikiContext = null; if (rReq.getParameter("action") != null) { rResp.setRenderParameter("action", rReq.getParameter("action")); @@ -71,7 +72,7 @@ if (edPage == null) { edPage = new WikiPage(rReq.getParameter("editedPage"), - credentials, "", 0, new Date()); + credentials, "", 0, new Date(), wikiEngine.getMediaDataSource()); } // set new content @@ -96,8 +97,9 @@ 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, null); - + WikiPage noSuchPage = new WikiPage("", new Credentials(""), + "There is no such page. Click on EDIT to start it.", 0, null, wikiEngine.getMediaDataSource()); + String page = "Wiki.jsp"; String wikiPage = defaultPage; @@ -122,7 +124,7 @@ // wikiPage = defaultPage; pageToShow = new WikiPage(wikiPage, new Credentials(rReq - .getUser().getUserName()), "", 0, new Date()); + .getUser().getUserName()), "", 0, new Date(), wikiEngine.getMediaDataSource()); // wikiEngine.getByName(wikiPage, wikiContext); } @@ -148,12 +150,11 @@ if (pageToShow == null) { try { - pageToShow = (WikiPage)noSuchPage.clone(); - } - catch (CloneNotSupportedException cnse){ + pageToShow = (WikiPage) noSuchPage.clone(); + } catch (CloneNotSupportedException cnse) { System.out.println(cnse); } - + pageToShow.setName(wikiPage); } Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiTypeHandler.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiTypeHandler.java 2005-08-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiTypeHandler.java 2005-08-17 12:21:58 UTC (rev 878) @@ -133,6 +133,7 @@ try { wikiType = (WikiType)Class.forName(s).newInstance(); + wikiType.setWikiEngine(wikiEngine); } catch(Exception e) { System.err.println("Cannot load WikiType class: "+e); @@ -140,7 +141,7 @@ if (wikiTypeName != null) { wikiType.setName(wikiTypeName); - wikiType.setWikiEngine(wikiEngine); + wikiTypeName = null; } Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiTypes.xml =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiTypes.xml 2005-08-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiTypes.xml 2005-08-17 12:21:58 UTC (rev 878) @@ -1,3 +1,9 @@ +<!-- + JBoss, the OpenSource J2EE webOS + Distributable under LGPL license. + See terms of license at gnu.org. + --> + <wikiTypes> <wikiType> <name>HTML</name> Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/HTMLTranslator.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/HTMLTranslator.java 2005-08-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/HTMLTranslator.java 2005-08-17 12:21:58 UTC (rev 878) @@ -1,3 +1,12 @@ +/************************************************** + * * + * JBoss Labs: Creating Professional Open Source * + * * + * Distributable under LGPL license. * + * See terms of license at gnu.org. * + * * + *************************************************/ + package org.jboss.wiki.plugins; /** Modified: trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/Edit.jsp =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/Edit.jsp 2005-08-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/Edit.jsp 2005-08-17 12:21:58 UTC (rev 878) @@ -1,3 +1,9 @@ +<!-- + JBoss, the OpenSource J2EE webOS + Distributable under LGPL license. + See terms of license at gnu.org. + --> + <%@ page language="java" extends="org.jboss.portal.core.servlet.jsp.PortalJsp" %> <%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="n" %> <%@ taglib uri="/WEB-INF/tld/forge.tld" prefix="forge" %> @@ -29,6 +35,7 @@ </textarea> <input type="hidden" name="editedPage" value="<%=wikiPage%>" /> +<input type="hidden" name="page" value="<%=wikiPage%>" /> <input type="submit" value="Save" name="editAction" /> <input type="submit" value="Preview" name="editAction" /> <input type="submit" value="Cancel" name="editAction" /> 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-16 23:10:25 UTC (rev 877) +++ trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/jsp/Wiki.jsp 2005-08-17 12:21:58 UTC (rev 878) @@ -1,3 +1,9 @@ +<!-- + JBoss, the OpenSource J2EE webOS + Distributable under LGPL license. + See terms of license at gnu.org. + --> + <%@ page language="java" extends="org.jboss.portal.core.servlet.jsp.PortalJsp" %> <%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="n" %> <%@ taglib uri="/WEB-INF/tld/forge.tld" prefix="forge" %> @@ -60,7 +66,7 @@ -<a href="<%=actionURL%>">More info...</a> <a href="<%=actionURL%>">Attach file...</a> +<a href="<%=actionURL%>&action=Info&page=<%=wikiPage%>">More info...</a> <a href="<%=actionURL%>">Attach file...</a> </td> </tr> </table> |