Author: saminda
Date: Tue Jan 15 11:20:15 2008
New Revision: 12292

Log:

Adding attribute support 


Modified:
   
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/js/data_service.js
   
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/xslt/data_service_add_edit_result_mapping.xsl
   
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/xslt/data_service_add_query.xsl

Modified: 
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/js/data_service.js
==============================================================================
--- 
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/js/data_service.js 
    (original)
+++ 
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/js/data_service.js 
    Tue Jan 15 11:20:15 2008
@@ -1113,7 +1113,7 @@
         break;
     }
     var mappingValue = mappingObj[mappingObj.selectedIndex].value;
-    if (mappingValue == 'Element') {
+    if (mappingValue == 'Element' || mappingValue == 'Attribute') {
         var name = 
document.getElementById('txtDataServiceOMElementName').value;
         var column = 
document.getElementById('txtDataServiceOMColumnName').value;
         if (name == null || name.length == 0) {
@@ -1124,7 +1124,15 @@
             wso2.wsf.Util.alertWarning("SQL column name is required");
             return;
         }
-        var eEleArray = resultEle.getElementsByTagName('element');
+        var eEleArray = null;
+        if (mappingValue == 'Element') {
+            eEleArray = resultEle.getElementsByTagName('element');
+        } else if (mappingValue == 'Attribute') {
+            eEleArray = resultEle.getElementsByTagName('attribute');
+        } else {
+            wso2.wsf.Util.alertWarning("Mapping Type is not available");
+            return;
+        }
         var eEle1 = null;
         if (name == oldOutputFieldName) {
             //same elements and in the editing stage
@@ -1152,7 +1160,11 @@
                     wso2.wsf.Util.alertWarning("Element already exist with the 
name " + name);
                     return;
                 }
-                eEle1 = rootDocument.createElement("element");
+                if (mappingValue == 'Element') {
+                   eEle1 = rootDocument.createElement("element");
+                } else {
+                   eEle1 = rootDocument.createElement("attribute");
+                }
                 eEle1.setAttribute("name", name);
                 eEle1.setAttribute("column", column);
                 resultEle.appendChild(eEle1);
@@ -1174,7 +1186,11 @@
                         }
                     }
                     resultEle.removeChild(eEle1);
-                    eEle1 = rootDocument.createElement("element");
+                    if (mappingValue == 'Element') {
+                        eEle1 = rootDocument.createElement("element");
+                    } else {
+                        eEle1 = rootDocument.createElement("attribute");
+                    }
                     eEle1.setAttribute("name", name);
                     eEle1.setAttribute("column", column);
                     resultEle.appendChild(eEle1);
@@ -1346,6 +1362,13 @@
     showYUIPanel("Edit Output Mapping ", divInnerHtml, "600px", 
"step2Inner10", "divADDEditOutputMapping");
 }
 
+//TODO: note edit query output mapping attribute
+function editQueryOutputMappingAttribute(queryId, atName, colName) {
+    var divInnerHtml = yuiTransformer(dataServiceObj, 
"data_service_add_edit_result_mapping.xsl", false, 
[["queryId",queryId],["atName",atName],["colName", colName]]);
+    showYUIPanel("Edit Output Mapping ", divInnerHtml, "600px", 
"step2Inner10", "divADDEditOutputMapping");
+
+}
+
 function editQueryOutputMappingCallQuery(queryId, queryHref) {
     var divInnerHtml = yuiTransformer(dataServiceObj, 
"data_service_add_edit_result_mapping.xsl", false, 
[["queryId",queryId],["queryHref", queryHref]]);
     showYUIPanel("Add New Output Mapping ", divInnerHtml, "600px", 
"step2Inner10", "divADDEditOutputMapping");
@@ -1505,6 +1528,16 @@
             }
         }
         resultEle.removeChild(cqEle);
+    } else if (mappingType == "Attribute") {
+       var atArray = resultEle.getElementsByTagName('attribute');
+        var atEle = null;
+        for (i = 0; i < eArray.length; i++) {
+            if (atArray[i].getAttribute('name') == commonName) {
+                atEle = atArray[i];
+                break;
+            }
+        }
+        resultEle.removeChild(atEle);
     }
     var currentDiv = document.getElementById("divADDEditOutputMapping");
     currentDiv.style.display = "none";

Modified: 
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/xslt/data_service_add_edit_result_mapping.xsl
==============================================================================
--- 
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/xslt/data_service_add_edit_result_mapping.xsl
  (original)
+++ 
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/xslt/data_service_add_edit_result_mapping.xsl
  Tue Jan 15 11:20:15 2008
@@ -3,6 +3,7 @@
 
     <xsl:param name="queryId"/>
     <xsl:param name="eleName"/>
+    <xsl:param name="atName"/>
     <xsl:param name="colName"/>
     <xsl:param name="queryHref"/>
 
@@ -21,6 +22,9 @@
                         <xsl:when test="[EMAIL PROTECTED]/result/[EMAIL 
PROTECTED]">
                               <xsl:text>Element</xsl:text>
                         </xsl:when>
+                        <xsl:when test="[EMAIL PROTECTED]/result/[EMAIL 
PROTECTED]">
+                              <xsl:text>Attribute</xsl:text>
+                        </xsl:when>
                         <xsl:when test="[EMAIL PROTECTED]/result/[EMAIL 
PROTECTED]">
                               <xsl:text>Query</xsl:text>
                         </xsl:when>
@@ -57,7 +61,7 @@
                         <select>
                             <xsl:attribute 
name="id">cmbDataServiceOMType</xsl:attribute>
                             <xsl:attribute 
name="onchange">changeToNextMapping('<xsl:value-of select="$queryId"/>', 
this);return false;</xsl:attribute>
-                            <xsl:if test="$eleName or $colName or $queryHref">
+                            <xsl:if test="$eleName or $atName or $colName or 
$queryHref">
                                 <xsl:attribute 
name="disabled">true</xsl:attribute>
                             </xsl:if>
                             <option>
@@ -67,6 +71,13 @@
                                 </xsl:if>
                                 Element
                             </option>
+                            <option>
+                                <xsl:attribute 
name="value">Attribute</xsl:attribute>
+                                <xsl:if test="$mappingType='Attribute'">
+                                     <xsl:attribute 
name="selected">true</xsl:attribute>
+                                </xsl:if>
+                                Attribute
+                            </option>
                             <xsl:if test="$dataSourceType!='CSV' and 
count($queries)&gt;1">
                                 <option>
                                     <xsl:attribute 
name="value">Query</xsl:attribute>
@@ -82,7 +93,7 @@
                         <xsl:if test="$mappingType='Query'">
                             <xsl:attribute name="style">display: 
inline;</xsl:attribute>
                         </xsl:if>
-                        <xsl:if test="$mappingType='Element'">
+                        <xsl:if test="$mappingType='Element' or 
$mappingType='Attribute'">
                             <xsl:attribute name="style">display: 
none;</xsl:attribute>
                         </xsl:if>
                         <div>
@@ -127,7 +138,7 @@
                         <xsl:if test="$mappingType='Query'">
                             <xsl:attribute name="style">display: 
none;</xsl:attribute>
                         </xsl:if>
-                        <xsl:if test="$mappingType='Element'">
+                        <xsl:if test="$mappingType='Element' or 
$mappingType='Attribute'">
                             <xsl:attribute name="style">display: 
inline;</xsl:attribute>
                         </xsl:if>
                         <div>
@@ -135,8 +146,17 @@
                             <input type="text">
                                 <xsl:attribute name="size">30</xsl:attribute>
                                 <xsl:attribute 
name="id">txtDataServiceOMElementName</xsl:attribute>
-                                <xsl:attribute name="value"><xsl:value-of 
select="$eleName"/></xsl:attribute>
-                                <xsl:if test="$eleName">
+                                <xsl:attribute name="value">
+                                    <xsl:choose>
+                                        <xsl:when test="$eleName">
+                                             <xsl:value-of select="$eleName"/>
+                                        </xsl:when>
+                                        <xsl:when test="$atName">
+                                             <xsl:value-of select="$atName"/>
+                                        </xsl:when>
+                                    </xsl:choose>
+                                </xsl:attribute>
+                                <xsl:if test="$eleName or $atName">
                                     <xsl:attribute 
name="style">background-color:#E4E8F5;</xsl:attribute>
                                 </xsl:if>
                             </input>
@@ -186,7 +206,17 @@
                                         </xsl:otherwise>
                                     </xsl:choose>
                                 </xsl:for-each>
-                                addEditSpecificOutputMapping('<xsl:value-of 
select="$queryId"/>', 
document.getElementById('cmbDataServiceOMType'),'<xsl:value-of 
select="$eleName"/>', cqmObj);return false;
+                                <xsl:variable name="oldOutputFieldName">
+                                    <xsl:choose>
+                                        <xsl:when test="$eleName">
+                                             <xsl:value-of select="$eleName"/>
+                                        </xsl:when>
+                                        <xsl:when test="$atName">
+                                             <xsl:value-of select="$atName"/>
+                                        </xsl:when>
+                                    </xsl:choose>
+                                </xsl:variable>
+                                addEditSpecificOutputMapping('<xsl:value-of 
select="$queryId"/>', 
document.getElementById('cmbDataServiceOMType'),'<xsl:value-of 
select="$oldOutputFieldName"/>', cqmObj);return false;
                             </xsl:attribute>
                         </input>
                         <input type="button" 
onclick="closeContainer('divADDEditOutputMapping'); 
refreshParentQueryContainer('{$queryId}', 'data_service_add_query.xsl', 
'divDSAddQuery', 'Add New Query'); return false;" value="Cancel"/>

Modified: 
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/xslt/data_service_add_query.xsl
==============================================================================
--- 
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/xslt/data_service_add_query.xsl
        (original)
+++ 
branches/wsas/java/2.2/wsas/java/modules/www/extensions/core/xslt/data_service_add_query.xsl
        Tue Jan 15 11:20:15 2008
@@ -167,7 +167,7 @@
                                         </xsl:when>
                                         <xsl:otherwise>
                                             <xsl:choose>
-                                                <xsl:when test="[EMAIL 
PROTECTED]/result/element or [EMAIL PROTECTED]/result/call-query">
+                                                <xsl:when test="[EMAIL 
PROTECTED]/result/element or [EMAIL PROTECTED]/result/attribute or [EMAIL 
PROTECTED]/result/call-query">
                                                     <div>Output Mappings</div>
                                                     <div>
                                                         <table class="styled" 
width="460px;" style="margin-left:20px;">
@@ -250,6 +250,7 @@
     <xsl:template match="result">
         <xsl:apply-templates select="call-query"/>
         <xsl:apply-templates select="element"/>
+        <xsl:apply-templates select="attribute"/>
     </xsl:template>
 
     <xsl:template match="call-query">
@@ -305,6 +306,34 @@
         </tr>
     </xsl:template>
 
+    <xsl:template match="attribute">
+        <tr>
+            <td>Attribute</td>
+            <td>
+                <xsl:value-of select="@name"/>
+            </td>
+            <td>
+                <xsl:value-of select="@column"/>
+            </td>
+            <td style="width:50px;">
+                <a alt="Delete">
+                    <xsl:attribute name="title">Delete</xsl:attribute>
+                    <xsl:attribute 
name="onclick">javascript:removeQueryOutputMapping('<xsl:value-of 
select="$queryId"/>','Attribute','<xsl:value-of select="@name"/>');return 
false;</xsl:attribute>
+                    <xsl:attribute name="id">cancel_link</xsl:attribute>
+                    <xsl:attribute name="href">#</xsl:attribute>
+                    <xsl:text>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:text>
+                </a>
+                <a alt="Edit">
+                    <xsl:attribute name="title">Edit</xsl:attribute>
+                    <xsl:attribute 
name="onclick">javascript:editQueryOutputMappingAttribute('<xsl:value-of 
select="$queryId"/>','<xsl:value-of select="@name"/>', '<xsl:value-of 
select="@column"/>');return false;</xsl:attribute>
+                    <xsl:attribute name="id">edit_link</xsl:attribute>
+                    <xsl:attribute name="href">#</xsl:attribute>
+                    <xsl:text>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:text>
+                </a>
+            </td>
+        </tr>
+    </xsl:template>
+
     <xsl:template match="param">
         <tr>
             <td>

_______________________________________________
Wsas-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/wsas-java-dev

Reply via email to