[Yanel-commits] rev 20586 - in public/yanel/trunk/src:
contributions/resources/wiki/src/java/org/wyona/yanel/impl/resources
realms/yanel-website/content/rtd
josias at wyona.com
josias at wyona.com
Tue Dec 5 17:03:19 CET 2006
Author: josias
Date: 2006-12-05 17:03:17 +0100 (Tue, 05 Dec 2006)
New Revision: 20586
Modified:
public/yanel/trunk/src/contributions/resources/wiki/src/java/org/wyona/yanel/impl/resources/WikiResource.java
public/yanel/trunk/src/realms/yanel-website/content/rtd/wiki.rtd
Log:
global.xsl applied to wiki resource
Modified: public/yanel/trunk/src/contributions/resources/wiki/src/java/org/wyona/yanel/impl/resources/WikiResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/wiki/src/java/org/wyona/yanel/impl/resources/WikiResource.java 2006-12-05 16:00:43 UTC (rev 20585)
+++ public/yanel/trunk/src/contributions/resources/wiki/src/java/org/wyona/yanel/impl/resources/WikiResource.java 2006-12-05 16:03:17 UTC (rev 20586)
@@ -16,6 +16,8 @@
package org.wyona.yanel.impl.resources;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -42,6 +44,7 @@
import org.wyona.yanel.core.api.attributes.CreatableV2;
import org.wyona.yanel.core.attributes.viewable.View;
import org.wyona.yanel.core.attributes.viewable.ViewDescriptor;
+import org.wyona.yanel.core.transformation.I18nTransformer;
import org.wyona.yarep.core.RepositoryException;
import org.wyona.yarep.core.Repository;
@@ -60,6 +63,8 @@
private HashMap properties = new HashMap();
private String defaultWikiParserBeanId = "jspWikiParser";
+ private String language = "en";
+
/**
*
*/
@@ -99,20 +104,34 @@
transformer = TransformerFactory.newInstance().newTransformer();
defaultView.setMimeType(XML_MIME_TYPE);
} else {
- transformer = TransformerFactory.newInstance().newTransformer(getXSLTStreamSource(path, repository));
+ transformer = TransformerFactory.newInstance().newTransformer(getXSLTStreamSource(null, repository));
transformer.setParameter("yanel.path.name", path.getName());
transformer.setParameter("yanel.path", path.toString());
defaultView.setMimeType("application/xhtml+xml");
}
-
LinkChecker linkChecker = new LinkChecker(path2Resource);
SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
saxParser.parse(wikiParser.getInputStream(), linkChecker);
- java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
- transformer.transform(new StreamSource(linkChecker.getInputStream()), new StreamResult(baos));
- defaultView.setInputStream(new java.io.ByteArrayInputStream(baos.toByteArray()));
+ java.io.ByteArrayOutputStream byteArrayOutputStream = new java.io.ByteArrayOutputStream();
+ transformer.transform(new StreamSource(linkChecker.getInputStream()), new StreamResult(byteArrayOutputStream));
+ inputStream = new java.io.ByteArrayInputStream(byteArrayOutputStream.toByteArray());
+
+ transformer = TransformerFactory.newInstance().newTransformer(getXSLTStreamSource(path, repository));
+ transformer.setParameter("yanel.back2context", backToRoot(path, ""));
+ transformer.setParameter("yarep.back2realm", backToRoot(new org.wyona.yanel.core.Path(rp.getPath().toString()), ""));
+
+ byteArrayOutputStream = new ByteArrayOutputStream();
+ transformer.transform(new StreamSource(inputStream), new StreamResult(byteArrayOutputStream));
+
+ inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
+ I18nTransformer i18nTransformer = new I18nTransformer("global", language);
+ saxParser = SAXParserFactory.newInstance().newSAXParser();
+ saxParser.parse(inputStream, i18nTransformer);
+
+ defaultView.setInputStream(i18nTransformer.getInputStream());
+
return defaultView;
} catch (Exception e) {
log.error(e, e);
@@ -120,10 +139,38 @@
return null;
}
+ /**
+ *
+ */
+ private String backToRoot(Path path, String backToRoot) {
+ org.wyona.commons.io.Path parent = path.getParent();
+ if (parent != null && !isRoot(parent)) {
+ return backToRoot(new Path(parent.toString()), backToRoot + "../");
+ }
+ return backToRoot;
+ }
+
+ /**
+ *
+ */
+ private boolean isRoot(org.wyona.commons.io.Path path) {
+ if (path.toString().equals(File.separator)) return true;
+ return false;
+ }
+
/**
*
*/
public View getView(HttpServletRequest request, String viewId) {
+ String _language = language;
+ try {
+ _language = request.getParameter("yanel.meta.language");
+ } catch(Exception e) {
+ //use fallback language
+ _language = language;
+ }
+ if(_language == null || ("").equals(_language)) _language = language;
+ else language = _language;
return getView(new Path(request.getServletPath()), viewId);
}
Modified: public/yanel/trunk/src/realms/yanel-website/content/rtd/wiki.rtd
===================================================================
--- public/yanel/trunk/src/realms/yanel-website/content/rtd/wiki.rtd 2006-12-05 16:00:43 UTC (rev 20585)
+++ public/yanel/trunk/src/realms/yanel-website/content/rtd/wiki.rtd 2006-12-05 16:03:17 UTC (rev 20586)
@@ -1,2 +1,3 @@
<{http://www.wyona.org/yanel/resource/1.0}wiki/>
wiki-syntax: jspWikiParser
+xslt: /xslt/global.xsl
More information about the Yanel-commits
mailing list