[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>&#160;</td>
                         <td class="samplevalue">
-                          (i.e. <xsl:value-of select="@samplevalue"/>)
+                          (i.e. <xsl:value-of select="@yanel:samplevalue"/>)
                         </td>
                         <td>&#160;</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="{.}"/>:&#160;</td><td><input type="text" name="{.}"/><xsl:if test="@required='true'">*</xsl:if></td></tr>
-    <tr><td>&#160;</td><td>(i.e. <xsl:value-of select="@samplevalue"/>)</td></tr>
+  <xsl:template match="yanel:input">
+    <tr><td><i18n:message key="{.}"/>:&#160;</td><td><input type="text" name="{.}"/><xsl:if test="@yanel:required='true'">*</xsl:if></td></tr>
+    <tr><td>&#160;</td><td>(i.e. <xsl:value-of select="@yanel:samplevalue"/>)</td></tr>
   </xsl:template>
     
 </xsl:stylesheet>




More information about the Yanel-commits mailing list