[Yanel-commits] rev 23330 - in
public/yanel/trunk/src/resources/add-realm:
src/java/org/wyona/yanel/impl/resources xslt
michi at wyona.com
michi at wyona.com
Tue Mar 20 15:42:57 CET 2007
Author: michi
Date: 2007-03-20 15:42:56 +0100 (Tue, 20 Mar 2007)
New Revision: 23330
Modified:
public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource.java
public/yanel/trunk/src/resources/add-realm/xslt/add-realm.xsl
Log:
generate XML on thy fly and namespace added
Modified: public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource.java
===================================================================
--- public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource.java 2007-03-20 13:23:47 UTC (rev 23329)
+++ public/yanel/trunk/src/resources/add-realm/src/java/org/wyona/yanel/impl/resources/AddRealmResource.java 2007-03-20 14:42:56 UTC (rev 23330)
@@ -43,6 +43,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.transform.Transformer;
@@ -53,6 +55,8 @@
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
/**
*
@@ -125,8 +129,8 @@
}
File XSLTFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xslt" + File.separator + "add-realm.xsl");
- File inputXMLFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xml" + File.separator + "input-screen.xml");
- File statusXMLFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xml" + File.separator + "status-screen.xml");
+ //File inputXMLFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xml" + File.separator + "input-screen.xml");
+ //File statusXMLFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xml" + File.separator + "status-screen.xml");
transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(XSLTFile));
// Add HashMap keys with dummy values for form fields
@@ -204,7 +208,10 @@
}
}
- transformer.transform(new javax.xml.transform.stream.StreamSource(statusXMLFile), new StreamResult(byteArrayOutputStream));
+ Document document = getInputDocument();
+
+ transformer.transform(new javax.xml.transform.dom.DOMSource(document), new StreamResult(byteArrayOutputStream));
+ //transformer.transform(new javax.xml.transform.stream.StreamSource(statusXMLFile), new StreamResult(byteArrayOutputStream));
} else if (session.getAttribute(SESSION_ATTR_EVENT_LOG) != null) {
@@ -236,16 +243,22 @@
session.removeAttribute(SESSION_ATTR_REALM_NAME);
}
}
- transformer.transform(new javax.xml.transform.stream.StreamSource(statusXMLFile), new StreamResult(byteArrayOutputStream));
+ Document document = getInputDocument();
+ transformer.transform(new javax.xml.transform.dom.DOMSource(document), new StreamResult(byteArrayOutputStream));
+ //transformer.transform(new javax.xml.transform.stream.StreamSource(statusXMLFile), new StreamResult(byteArrayOutputStream));
+
} else {
while (keysIterator.hasNext()) {
parameterName = (String) keysIterator.next();
transformer.setParameter(parameterName, parameters.get(parameterName).toString());
}
+
+ Document document = getInputDocument();
- transformer.transform(new javax.xml.transform.stream.StreamSource(inputXMLFile), new StreamResult(byteArrayOutputStream));
+ transformer.transform(new javax.xml.transform.dom.DOMSource(document), new StreamResult(byteArrayOutputStream));
+ //transformer.transform(new javax.xml.transform.stream.StreamSource(inputXMLFile), new StreamResult(byteArrayOutputStream));
}
@@ -322,4 +335,60 @@
public String getMimeType(String viewId) {
return "application/xhtml+xml";
}
+
+ /**
+ *
+ */
+ public Document getInputDocument() {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ String NAMESPACE = "http://www.wyona.org/yanel/1.0";
+ Document document = null;
+ try {
+ DocumentBuilder parser = dbf.newDocumentBuilder();
+ document = parser.parse(new java.io.StringBufferInputStream("<yanel:form xmlns:yanel=\""+NAMESPACE+"\" xmlns=\""+NAMESPACE+"\"/>"));
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ }
+ Element rootElement = document.getDocumentElement();
+ Element inputFieldsElement = (Element) rootElement.appendChild(document.createElementNS(NAMESPACE, "inputfields"));
+
+ Element realmIdFieldElement = (Element) inputFieldsElement.appendChild(document.createElementNS(NAMESPACE, "input"));
+ realmIdFieldElement.setAttributeNS(NAMESPACE, "name", "realmid");
+ realmIdFieldElement.setAttributeNS(NAMESPACE, "required", "true");
+ realmIdFieldElement.setAttributeNS(NAMESPACE, "samplevalue", "my-realm");
+ realmIdFieldElement.appendChild(document.createTextNode("realmid"));
+
+ Element realmNameFieldElement = (Element) inputFieldsElement.appendChild(document.createElementNS(NAMESPACE, "input"));
+ realmNameFieldElement.setAttributeNS(NAMESPACE, "name", "realmname");
+ realmNameFieldElement.setAttributeNS(NAMESPACE, "required", "true");
+ realmNameFieldElement.setAttributeNS(NAMESPACE, "samplevalue", "My Realm");
+ realmNameFieldElement.appendChild(document.createTextNode("realmname"));
+
+ Element urlFieldElement = (Element) inputFieldsElement.appendChild(document.createElementNS(NAMESPACE, "input"));
+ urlFieldElement.setAttributeNS(NAMESPACE, "name", "url");
+ urlFieldElement.setAttributeNS(NAMESPACE, "required", "true");
+ urlFieldElement.setAttributeNS(NAMESPACE, "samplevalue", "http://www.foo.bar");
+ urlFieldElement.appendChild(document.createTextNode("url"));
+
+ Element fsLocationFieldElement = (Element) inputFieldsElement.appendChild(document.createElementNS(NAMESPACE, "input"));
+ fsLocationFieldElement.setAttributeNS(NAMESPACE, "name", "fslocation");
+ fsLocationFieldElement.setAttributeNS(NAMESPACE, "required", "true");
+ fsLocationFieldElement.setAttributeNS(NAMESPACE, "samplevalue", "D:/realms");
+ fsLocationFieldElement.appendChild(document.createTextNode("fslocation"));
+
+ Element crawlDepthFieldElement = (Element) inputFieldsElement.appendChild(document.createElementNS(NAMESPACE, "input"));
+ crawlDepthFieldElement.setAttributeNS(NAMESPACE, "name", "crawldepth");
+ crawlDepthFieldElement.setAttributeNS(NAMESPACE, "required", "true");
+ crawlDepthFieldElement.setAttributeNS(NAMESPACE, "samplevalue", "3");
+ crawlDepthFieldElement.appendChild(document.createTextNode("crawldepth"));
+
+ Element crawlMaxPagesFieldElement = (Element) inputFieldsElement.appendChild(document.createElementNS(NAMESPACE, "input"));
+ crawlMaxPagesFieldElement.setAttributeNS(NAMESPACE, "name", "crawlmaxpages");
+ crawlMaxPagesFieldElement.setAttributeNS(NAMESPACE, "required", "true");
+ crawlMaxPagesFieldElement.setAttributeNS(NAMESPACE, "samplevalue", "100");
+ crawlMaxPagesFieldElement.appendChild(document.createTextNode("crawlmaxpages"));
+
+ return document;
+ }
}
Modified: public/yanel/trunk/src/resources/add-realm/xslt/add-realm.xsl
===================================================================
--- public/yanel/trunk/src/resources/add-realm/xslt/add-realm.xsl 2007-03-20 13:23:47 UTC (rev 23329)
+++ public/yanel/trunk/src/resources/add-realm/xslt/add-realm.xsl 2007-03-20 14:42:56 UTC (rev 23330)
@@ -5,6 +5,7 @@
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:i18n="http://www.wyona.org/yanel/i18n/1.0"
xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:yanel="http://www.wyona.org/yanel/1.0"
>
<xsl:output method="xhtml" encoding="UTF-8"/>
@@ -82,7 +83,7 @@
<!--
<form method="post">
<table cellpadding="0" cellspacing="0" border="0">
- <xsl:apply-templates select="form/inputfields/input"/>
+ <xsl:apply-templates select="/yanel:form/yanel:inputfields/yanel:input"/>
</table>
</form>
<br/><br/>
@@ -90,7 +91,7 @@
<form method="post">
<table cellpadding="0" cellspacing="0" border="0">
- <xsl:for-each select="form/inputfields/input">
+ <xsl:for-each select="/yanel:form/yanel:inputfields/yanel:input">
<div>
<xsl:choose>
<xsl:when test="position()='1' and $realmid-prop-exists = 'true'">
@@ -227,7 +228,7 @@
</xsl:otherwise>
</xsl:choose>
</td>
- <td><xsl:if test="@required = 'true'">*</xsl:if></td>
+ <td><xsl:if test="@yanel:required = 'true'">*</xsl:if></td>
<xsl:choose>
<xsl:when test="position()='1' and contains($realmid, 'ERROR:')">
<td>
@@ -310,7 +311,7 @@
<tr>
<td> </td>
<td class="samplevalue">
- (i.e. <xsl:value-of select="@samplevalue"/>)
+ (i.e. <xsl:value-of select="@yanel:samplevalue"/>)
</td>
<td> </td>
</tr>
@@ -340,9 +341,9 @@
<xsl:attribute name="style">display:none;</xsl:attribute>
</xsl:template>
- <xsl:template match="input">
- <tr><td><i18n:message key="{.}"/>: </td><td><input type="text" name="{.}"/><xsl:if test="@required='true'">*</xsl:if></td></tr>
- <tr><td> </td><td>(i.e. <xsl:value-of select="@samplevalue"/>)</td></tr>
+ <xsl:template match="yanel:input">
+ <tr><td><i18n:message key="{.}"/>: </td><td><input type="text" name="{.}"/><xsl:if test="@yanel:required='true'">*</xsl:if></td></tr>
+ <tr><td> </td><td>(i.e. <xsl:value-of select="@yanel:samplevalue"/>)</td></tr>
</xsl:template>
</xsl:stylesheet>
More information about the Yanel-commits
mailing list