Author: remi
Date: 2009-04-21 10:53:34 +0200 (Tue, 21 Apr 2009)
New Revision: 4567

Modified:
   softwares_suite_v3/kysoh/tuxware/server/trunk/data/css/gadget.css
   softwares_suite_v3/kysoh/tuxware/server/trunk/data/xsl/web_gadget.xsl
   
softwares_suite_v3/kysoh/tuxware/server/trunk/resources/01_robot_system/resourceGadgetFramework.py
   
softwares_suite_v3/kysoh/tuxware/server/trunk/util/applicationserver/gadget/WebGadgetTools.py
Log:
* improved web gadgets parameters

Modified: softwares_suite_v3/kysoh/tuxware/server/trunk/data/css/gadget.css
===================================================================
--- softwares_suite_v3/kysoh/tuxware/server/trunk/data/css/gadget.css   
2009-04-21 08:52:46 UTC (rev 4566)
+++ softwares_suite_v3/kysoh/tuxware/server/trunk/data/css/gadget.css   
2009-04-21 08:53:34 UTC (rev 4567)
@@ -67,4 +67,4 @@
     border-style:solid;
     border-width:0px;
     width:177px;
-}
\ No newline at end of file
+}

Modified: softwares_suite_v3/kysoh/tuxware/server/trunk/data/xsl/web_gadget.xsl
===================================================================
--- softwares_suite_v3/kysoh/tuxware/server/trunk/data/xsl/web_gadget.xsl       
2009-04-21 08:52:46 UTC (rev 4566)
+++ softwares_suite_v3/kysoh/tuxware/server/trunk/data/xsl/web_gadget.xsl       
2009-04-21 08:53:34 UTC (rev 4567)
@@ -28,12 +28,19 @@
                 for (var i = 0; i < parameters.length; i++)
                 {
                     var param = parameters[i];
-                    if ((param.type != 'button') && (param.id != 'unvisible'))
+                    if ((param.type != 'button') && (param.id != 'unvisible') 
&& (param.name != ''))
                     {
                         if (param.type == 'checkbox')
                         {
                             parametersString += param.name + '=' + 
param.checked + '|';
                         }
+                        else if (param.type == 'radio')
+                        {
+                            if (param.checked)
+                            {
+                                parametersString += param.name + '=' + 
param.value.replace('&', '&&') + '|';
+                            }
+                        }
                         else
                         {
                             parametersString += param.name + '=' + 
param.value.replace('&', '&&') + '|';
@@ -51,6 +58,7 @@
                 var url = "/gadget_framework/start_gadget_by_uuid?command=";
                 url += command + "&uuid=" + uuid;
                 url += "&parameters=" + parametersString;
+                alert(url);
                 url += "&rndTag=" + Math.random();
                 document.getElementById("fake_image").src = url;
             }
@@ -133,11 +141,11 @@
                     <tr bgcolor="#D7D8DA">
                         <td align="right" width="180">
                             <span class="paramName">
-                                <xsl:value-of select="description"/> :
+                                <xsl:value-of select="description"/>:
                             </span>
                         </td>
                         <td>
-                            <!-- Parameter is "string" then show it as "input" 
-->
+                            <!-- Parameter is "string" then show it as "text" 
-->
                             <xsl:if test="type = 'string'">
                                 <xsl:element name="input">
                                     <xsl:attribute 
name="class">text</xsl:attribute>
@@ -151,6 +159,67 @@
                                     <xsl:attribute 
name="size">20</xsl:attribute>
                                 </xsl:element>
                             </xsl:if>
+                            <!-- Parameter is "file" then show it as "text" -->
+                            <xsl:if test="type = 'file'">
+                                <xsl:element name="input">
+                                    <xsl:attribute 
name="class">text</xsl:attribute>
+                                    <xsl:attribute 
name="type">text</xsl:attribute>
+                                    <xsl:attribute name="name">
+                                        <xsl:value-of select="name"/>
+                                    </xsl:attribute>
+                                    <xsl:attribute name="value">
+                                        <xsl:value-of select="default_value"/>
+                                    </xsl:attribute>
+                                    <xsl:attribute 
name="size">20</xsl:attribute>
+                                </xsl:element>
+                            </xsl:if>
+                            <!-- Parameter is "directory" then show it as 
"text" -->
+                            <xsl:if test="type = 'directory'">
+                                <xsl:element name="input">
+                                    <xsl:attribute 
name="class">text</xsl:attribute>
+                                    <xsl:attribute 
name="type">text</xsl:attribute>
+                                    <xsl:attribute name="name">
+                                        <xsl:value-of select="name"/>
+                                    </xsl:attribute>
+                                    <xsl:attribute name="value">
+                                        <xsl:value-of select="default_value"/>
+                                    </xsl:attribute>
+                                    <xsl:attribute 
name="size">20</xsl:attribute>
+                                </xsl:element>
+                            </xsl:if>
+                            <!-- Parameter is "increment" then show it as 
"text" -->
+                            <xsl:if test="type = 'increment'">
+                                <xsl:element name="input">
+                                    <xsl:attribute 
name="class">text</xsl:attribute>
+                                    <xsl:attribute 
name="type">text</xsl:attribute>
+                                    <xsl:attribute name="name">
+                                        <xsl:value-of select="name"/>
+                                    </xsl:attribute>
+                                    <xsl:attribute name="value">
+                                        <xsl:value-of select="default_value"/>
+                                    </xsl:attribute>
+                                    <xsl:attribute 
name="size">20</xsl:attribute>
+                                </xsl:element>
+                            </xsl:if>
+                            <!-- Parameter is "booleans" then show it as 
"radio buttons" -->
+                            <xsl:if test="type = 'booleans'">
+                                <xsl:for-each select="enum_values/*">
+                                    <xsl:element name="input">
+                                        <xsl:attribute 
name="type">radio</xsl:attribute>
+                                        <xsl:attribute 
name="class">checkbox</xsl:attribute>
+                                        <xsl:attribute name="name">
+                                            <xsl:value-of select="../../name"/>
+                                        </xsl:attribute>
+                                        <xsl:attribute name="value">
+                                            <xsl:value-of select="."/>
+                                        </xsl:attribute>
+                                        <xsl:if test=". = ../../default_value">
+                                            <xsl:attribute 
name="checked">true</xsl:attribute>
+                                        </xsl:if>
+                                    </xsl:element>
+                                    <xsl:value-of select="."/><xsl:element 
name="br"/>
+                                </xsl:for-each>
+                            </xsl:if>
                             <!-- Parameter is "integer" then show it as 
"input" -->
                             <xsl:if test="type = 'integer'">
                                 <xsl:element name="input">
@@ -173,7 +242,9 @@
                                     <xsl:attribute name="name">
                                         <xsl:value-of select="name"/>
                                     </xsl:attribute>
-                                    <xsl:attribute 
name="value">********</xsl:attribute>
+                                    <xsl:attribute name="value">
+                                        <xsl:value-of select="default_value"/>
+                                    </xsl:attribute>
                                     <xsl:attribute 
name="size">20</xsl:attribute>
                                 </xsl:element>
                             </xsl:if>
@@ -192,7 +263,7 @@
                                     </xsl:if>
                                 </xsl:element>
                             </xsl:if>
-                            <!-- Parameter is "enum" then show it as "input" 
-->
+                            <!-- Parameter is "enum" then show it as 
"combobox" -->
                             <xsl:if test="type = 'enum'">
                                 <xsl:element name="select">
                                     <xsl:attribute 
name="class">select</xsl:attribute>

Modified: 
softwares_suite_v3/kysoh/tuxware/server/trunk/resources/01_robot_system/resourceGadgetFramework.py
===================================================================
--- 
softwares_suite_v3/kysoh/tuxware/server/trunk/resources/01_robot_system/resourceGadgetFramework.py
  2009-04-21 08:52:46 UTC (rev 4566)
+++ 
softwares_suite_v3/kysoh/tuxware/server/trunk/resources/01_robot_system/resourceGadgetFramework.py
  2009-04-21 08:53:34 UTC (rev 4567)
@@ -511,7 +511,7 @@
             d_name = "data|%.3d" % i
             structure = WebGadgetTools.generateWebGadgetStructure(gadget,
                 '/gadget_framework/web_gadget?',
-                gadget.getDefaultRunCommandName(), {})
+                gadget.getDefaultRunCommandName(), {}, [])
             structure['commands'] = {}
             for j, command in enumerate(gadget.getCommands()):
                 c_name = "command_%.3d" % j
@@ -548,7 +548,7 @@
             d_name = "data|%d" % i
             structure = WebGadgetTools.generateWebGadgetStructure(gadget,
                 '/gadget_framework/web_gadget?',
-                gadget.getDefaultRunCommandName(), {})
+                gadget.getDefaultRunCommandName(), {}, [])
             #del structure['command']
             structure['commands'] = {}
             for j, command in enumerate(gadget.getCommands()):
@@ -573,6 +573,7 @@
             'uuid' : 'string',
             'command' : 'string',
             'parameters' : 'string',
+            'hiddenlist' : 'string',
         }
         self.minimalUserLevel = TDS_CLIENT_LEVEL_ANONYMOUS
         self.exclusiveExecution = False
@@ -591,13 +592,14 @@
             param = paramStruct.split("=")
             if len(param) == 2:
                 params[param[0]] = param[1]
+        hList = parameters['hiddenlist'].split("|")
         uuid = parameters['uuid']
         gadget = 
resourceGadgetFramework.getGadgetsContainer().getGadgetByUuid(uuid)
         structure = None
         if gadget != None:
             structure = WebGadgetTools.generateWebGadgetStructure(gadget,
-                '/gadget_framework/web_gadget?',
-                parameters['command'], params)
+                '/gadget_framework/web_gadget?', parameters['command'], params,
+                hList)
         if structure == None:
             contentStruct['root']['result'] = getStrError(E_TDREST_FAILED)
         else:

Modified: 
softwares_suite_v3/kysoh/tuxware/server/trunk/util/applicationserver/gadget/WebGadgetTools.py
===================================================================
--- 
softwares_suite_v3/kysoh/tuxware/server/trunk/util/applicationserver/gadget/WebGadgetTools.py
       2009-04-21 08:52:46 UTC (rev 4566)
+++ 
softwares_suite_v3/kysoh/tuxware/server/trunk/util/applicationserver/gadget/WebGadgetTools.py
       2009-04-21 08:53:34 UTC (rev 4567)
@@ -41,12 +41,14 @@
     # 
--------------------------------------------------------------------------
     # Get the url for a web gadget.
     # 
--------------------------------------------------------------------------
-    def getWebGadgetUrl(gadget, baseUrl, command, parameters = {}):
+    def getWebGadgetUrl(gadget, baseUrl, command, parameters = {},
+        hiddenList = []):
         """Get the url for a web gadget.
         @param gadget: Gadget object.
         @param baseUrl: Base url of the web gadgets.
         @param command: Gadget command.
         @param parameters: Parameters dictionary.
+        @param hiddenList: List of parameters to hide.
         @return: A web url.
         """
         params = ""
@@ -54,20 +56,27 @@
             if len(params) > 0:
                 params += "|"
             params += "%s=%s" % (key, parameters[key])
+        hList = ""
+        for h in hiddenList:
+            if len(hList) > 0:
+                hList += "|"
+            hList += h
         uuid = gadget.getDescription().getUuid()
-        url = "%suuid=%s&command=%s&parameters=%s" % (baseUrl, uuid, command,
-            params)
+        url = "%suuid=%s&command=%s&parameters=%s&hiddenlist=%s" % (baseUrl,
+            uuid, command, params, hList)
         return url
 
     # 
--------------------------------------------------------------------------
     # Generate a web gadget structure.
     # 
--------------------------------------------------------------------------
-    def generateWebGadgetStructure(gadget, baseUrl, command, parameters = {}):
+    def generateWebGadgetStructure(gadget, baseUrl, command, parameters = {},
+        hiddenList = []):
         """Generate a web gadget structure.
         @param gadget: Gadget object.
         @param baseUrl: Base url.
         @param command: Gadget command.
         @param parameters: Parameters dictionary.
+        @param hiddenList: List of parameters to hide.
         @return: A dictionary.
         """
         structure = {}
@@ -124,13 +133,13 @@
         # Serialize enum values
         for key in structure['parameters']:
             param = structure['parameters'][key]
-            if param['type'] == 'enum':
+            if param['type'] in ['enum', 'booleans']:
                 values = param['enum_values'].split(",")
                 enums = {}
                 for i, value in enumerate(values):
                     dName = "enum_%.2d" % i
                     if value != '':
-                        enums[dName] = value
+                        enums[dName] = value.strip()
                 param['enum_values'] = enums
         # Insert the command
         structure['command'] = command
@@ -141,19 +150,27 @@
                     param = structure['parameters'][sKey]
                     if param['name'] == key:
                         param['default_value'] = parameters[key]
-                        param['visible'] = 'false'
+        # Hide parameters from the hidden list
+        for sKey in structure['parameters']:
+            param = structure['parameters'][sKey]
+            if param['name'] in hiddenList:
+                param['visible'] = 'false'
         return structure
 
     # 
--------------------------------------------------------------------------
     # Generate the code of a google gadget.
     # 
--------------------------------------------------------------------------
-    def generateGoogleGadgetCode(gadget, baseUrl, command, parameters = {}):
+    def generateGoogleGadgetCode(gadget, baseUrl, command, parameters = {},
+        hiddenList = []):
         """Generate the code of a google gadget.
         @param baseUrl: Base url of the web gadgets.
         @param command: Gadget command.
         @param parameters: Parameters dictionary.
+        @param hiddenList: List of parameters to hide.
+        @return: The google gadget html code.
         """
-        url = WebGadgetTools.getWebGadgetUrl(gadget, baseUrl, command, 
parameters)
+        url = WebGadgetTools.getWebGadgetUrl(gadget, baseUrl, command,
+            parameters, hiddenList)
         if parameters.has_key('language'):
             language = parameters['language']
         else:


------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to