Author: remi
Date: 2009-03-29 11:30:05 +0200 (Sun, 29 Mar 2009)
New Revision: 4245

Added:
   software_suite_v2/tuxware/tuxdroidserver/trunk/data/css/
   software_suite_v2/tuxware/tuxdroidserver/trunk/data/css/gadget.css
   software_suite_v2/tuxware/tuxdroidserver/trunk/data/gif/
   software_suite_v2/tuxware/tuxdroidserver/trunk/data/gif/button.gif
Modified:
   software_suite_v2/tuxware/tuxdroidserver/trunk/TDSResourcesManager.py
   software_suite_v2/tuxware/tuxdroidserver/trunk/TuxDroidServer.py
   software_suite_v2/tuxware/tuxdroidserver/trunk/data/xsl/gadgets.xsl
   software_suite_v2/tuxware/tuxdroidserver/trunk/data/xsl/web_gadget.xsl
   
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/01_robot_system/resourceGadgetFramework.py
   
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/WebGadgetTools.py
Log:
* big improvement of the web gadgets look. Now uses XML + XSL + JScript + CSS.

Modified: software_suite_v2/tuxware/tuxdroidserver/trunk/TDSResourcesManager.py
===================================================================
--- software_suite_v2/tuxware/tuxdroidserver/trunk/TDSResourcesManager.py       
2009-03-28 19:03:10 UTC (rev 4244)
+++ software_suite_v2/tuxware/tuxdroidserver/trunk/TDSResourcesManager.py       
2009-03-29 09:30:05 UTC (rev 4245)
@@ -288,6 +288,10 @@
             headers = [['Content-type', 'image/png; charset="utf-8"'],]
         elif fileName.lower().rfind(".js") != -1:
             headers = [['Content-type', 'js; charset="utf-8"'],]
+        elif fileName.lower().rfind(".css") != -1:
+            headers = [['Content-type', 'text/css; charset="utf-8"'],]
+        elif fileName.lower().rfind(".gif") != -1:
+            headers = [['Content-type', 'image/gif; charset="utf-8"'],]
         else:
             return
         try:
@@ -318,6 +322,10 @@
             headers = [['Content-type', 'js; charset="utf-8"'],]
         elif destUrl.lower().rfind(".xml") != -1:
             headers = [['Content-type', 'text/xml; charset="utf-8"'],]
+        elif fileName.lower().rfind(".css") != -1:
+            headers = [['Content-type', 'text/css; charset="utf-8"'],]
+        elif fileName.lower().rfind(".gif") != -1:
+            headers = [['Content-type', 'image/gif; charset="utf-8"'],]
         else:
             return
         headers.append(['Content-Length', str(len(content))])
@@ -358,6 +366,10 @@
                 headers = [['Content-type', 'html; charset="utf-8"'],]
             elif file.lower().rfind(".js") != -1:
                 headers = [['Content-type', 'js; charset="utf-8"'],]
+            elif file.lower().rfind(".gif") != -1:
+                headers = [['Content-type', 'image/gif; charset="utf-8"'],]
+            elif file.lower().rfind(".css") != -1:
+                headers = [['Content-type', 'text/css; charset="utf-8"'],]
             else:
                 continue
             filePath = os.path.join(diskPath, file)

Modified: software_suite_v2/tuxware/tuxdroidserver/trunk/TuxDroidServer.py
===================================================================
--- software_suite_v2/tuxware/tuxdroidserver/trunk/TuxDroidServer.py    
2009-03-28 19:03:10 UTC (rev 4244)
+++ software_suite_v2/tuxware/tuxdroidserver/trunk/TuxDroidServer.py    
2009-03-29 09:30:05 UTC (rev 4245)
@@ -61,6 +61,8 @@
     resourcesManager.addDirectoryToServe("/data/xsl/")
     resourcesManager.addDirectoryToServe("/data/js/")
     resourcesManager.addDirectoryToServe("/data/html/")
+    resourcesManager.addDirectoryToServe("/data/css/")
+    resourcesManager.addDirectoryToServe("/data/gif/")
     resourcesManager.start()
     # Start the clients manager
     clientsManager.start()

Added: software_suite_v2/tuxware/tuxdroidserver/trunk/data/css/gadget.css
===================================================================
--- software_suite_v2/tuxware/tuxdroidserver/trunk/data/css/gadget.css          
                (rev 0)
+++ software_suite_v2/tuxware/tuxdroidserver/trunk/data/css/gadget.css  
2009-03-29 09:30:05 UTC (rev 4245)
@@ -0,0 +1,70 @@
+a.button{
+       width:80px; 
+    height:25px; 
+    float:center;
+    display:table;
+    vertical-align:middle;
+    color:#DDDDDD; 
+    font-size:12px; 
+    font-weight:bold; 
+    text-decoration:none; 
+    font-family:Verdana, Bitstream Vera Sans, Arial, Helvetica, sans-serif; 
+    text-align:center; 
+    line-height:20px; 
+    background-image:url(/data/gif/button.gif); 
+}
+
+a.button:hover{
+    color:#FFFFFF; 
+}
+
+span.title{
+    font-weight:bold;
+    font-size:9pt;
+    font-family:Verdana, Bitstream Vera Sans;
+    color:#DDDDDD;
+}
+
+span.paramName{
+    font-weight:bold;
+    font-size:8pt;
+    font-family:Verdana, Bitstream Vera Sans;
+    color:#444444;
+}
+
+span.author{
+    font-size:6pt;
+    font-family:Verdana, Bitstream Vera Sans;
+    color:#000000;
+}
+
+input.text{
+    font-family:Verdana, Bitstream Vera Sans;
+    font-size:8pt;
+    font-weight:none;
+    background-color:#D7D8DA;
+    border-color:#838588;
+    border-style:solid;
+    border-width:0px;
+    color:#000000;
+    width:177px;
+}
+
+input.checkbox{
+    border: 1px solid black; 
+    background-color:#D7D8DA;
+    border-color:#838588;
+    border-style:solid;
+    border-width:0px;
+    color:#000000; 
+}
+
+select.select{
+    font-family:Verdana, Bitstream Vera Sans;
+    font-size:8pt;
+    background-color:#D7D8DA;
+    border-color:#838588;
+    border-style:solid;
+    border-width:0px;
+    width:177px;
+}
\ No newline at end of file


Property changes on: 
software_suite_v2/tuxware/tuxdroidserver/trunk/data/css/gadget.css
___________________________________________________________________
Name: svn:keywords
   + Id

Added: software_suite_v2/tuxware/tuxdroidserver/trunk/data/gif/button.gif
===================================================================
(Binary files differ)


Property changes on: 
software_suite_v2/tuxware/tuxdroidserver/trunk/data/gif/button.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Name: svn:keywords
   + Id

Modified: software_suite_v2/tuxware/tuxdroidserver/trunk/data/xsl/gadgets.xsl
===================================================================
--- software_suite_v2/tuxware/tuxdroidserver/trunk/data/xsl/gadgets.xsl 
2009-03-28 19:03:10 UTC (rev 4244)
+++ software_suite_v2/tuxware/tuxdroidserver/trunk/data/xsl/gadgets.xsl 
2009-03-29 09:30:05 UTC (rev 4245)
@@ -1,5 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns="http://www.w3.org/1999/xhtml";>
+    <head>
+        <script language="javascript">
+        <![CDATA[
+            function setpng(img)
+            {
+                if (document.all && 
(IEver=parseFloat(navigator.appVersion.split("MSIE")[1])) && (IEver>=5.5) && 
(IEver<7) && document.body.filters && img)
+                {
+                    imgName = img.src.toUpperCase();
+                    if (imgName.substring(imgName.length-3,imgName.length) == 
"PNG")
+                    {
+                        img.outerHTML= "<span "+(img.id?"id='"+img.id+"' 
":"")+(img.className?"class='"+img.className+"' 
":"")+(img.title?"title=\""+img.title+"\" ":"")
+                        
+"style=\"width:"+img.width+"px;height:"+img.height+"px;"+(img.align=="left"?"float:left;":(img.align=="right"?"float:right;":""))
+                        
+(img.parentElement.href?"cursor:hand;":"")+"display:inline-block;"+img.style.cssText+";"
+                        
+"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img.src+"',sizingMethod='scale');\"></span>";
+                    }
+                }
+            }
+        ]]>
+        </script>
+    </head>
+
     <body style="font-family:Arial;font-size:12pt;background-color:#FFFFFF">
         <div 
style="margin-bottom:1em;margin-top:1em;font-size:14pt;font-weight:bold;background-color:#CCCCCC">
             <span style="font-weight:bold">Gadgets list</span>
@@ -16,7 +37,7 @@
                     <xsl:attribute name="src">
                         <xsl:value-of select="description/icon_file"/>
                     </xsl:attribute>
-                    gadget.png
+                    <xsl:attribute 
name="onload">javascript:setpng(this);</xsl:attribute>
                 </xsl:element>
             </div>
             <div 
style="margin-left:0px;margin-bottom:1em;margin-top:1em;font-size:12pt;background-color:#FFFFFF;font-weight:bold">

Modified: software_suite_v2/tuxware/tuxdroidserver/trunk/data/xsl/web_gadget.xsl
===================================================================
--- software_suite_v2/tuxware/tuxdroidserver/trunk/data/xsl/web_gadget.xsl      
2009-03-28 19:03:10 UTC (rev 4244)
+++ software_suite_v2/tuxware/tuxdroidserver/trunk/data/xsl/web_gadget.xsl      
2009-03-29 09:30:05 UTC (rev 4245)
@@ -5,6 +5,7 @@
 <xsl:template match="/">
 <html>
     <head>
+        <LINK href="/data/css/gadget.css" rel="stylesheet" type="text/css"/>
         <script language="javascript">
         <![CDATA[
             function startGadget()
@@ -14,11 +15,21 @@
                 var uuid = document.getElementById("uuid").value;
                 
                 var parameters = document.getElementsByTagName("input");
+                
                 for (var i = 0; i < parameters.length; i++)
                 {
                     var param = parameters[i];
-                    if (param.type != 'button')
+                    if (param.id == 'internals')
                     {
+                        parametersString += param.name + '=' + param.value + 
'|';
+                    }
+                }
+                
+                for (var i = 0; i < parameters.length; i++)
+                {
+                    var param = parameters[i];
+                    if ((param.type != 'button') && (param.id != 'internals')) 
+                    {
                         if (param.type == 'checkbox')
                         {
                             parametersString += param.name + '=' + 
param.checked + '|';
@@ -37,7 +48,7 @@
                     parametersString += param.name + '=' + param.value + '|';
                 }
                 
-                var url = 
"http://127.0.0.1:270/gadget_framework/start_gadget_by_uuid?command=";;
+                var url = "/gadget_framework/start_gadget_by_uuid?command=";
                 url += command + "&uuid=" + uuid;
                 url += "&parameters=" + parametersString;
                 url += "&rndTag=" + Math.random();
@@ -47,37 +58,31 @@
             function stopGadget()
             {
                 var uuid = document.getElementById("uuid").value;
-                var url = 
"http://127.0.0.1:270/gadget_framework/stop_gadget_by_uuid?";;
+                var url = "/gadget_framework/stop_gadget_by_uuid?";
                 url += "uuid=" + uuid;
                 url += "&rndTag=" + Math.random();
                 document.getElementById("fake_image").src = url;
             }
+            
+            function setpng(img)
+            {
+                if (document.all && 
(IEver=parseFloat(navigator.appVersion.split("MSIE")[1])) && (IEver>=5.5) && 
(IEver<7) && document.body.filters && img)
+                {
+                    imgName = img.src.toUpperCase();
+                    if (imgName.substring(imgName.length-3,imgName.length) == 
"PNG")
+                    {
+                        img.outerHTML= "<span "+(img.id?"id='"+img.id+"' 
":"")+(img.className?"class='"+img.className+"' 
":"")+(img.title?"title=\""+img.title+"\" ":"")
+                        
+"style=\"width:"+img.width+"px;height:"+img.height+"px;"+(img.align=="left"?"float:left;":(img.align=="right"?"float:right;":""))
+                        
+(img.parentElement.href?"cursor:hand;":"")+"display:inline-block;"+img.style.cssText+";"
+                        
+"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img.src+"',sizingMethod='scale');\"></span>";
+                    }
+                }
+            }
         ]]>
         </script>
     </head>
     <body>
         <xsl:for-each select="root/data">
-            <!-- Show the gadget icon --> 
-            <div 
style="margin-left:0px;font-size:12pt;background-color:#FFFFFF">
-                <xsl:element name="img">
-                    <xsl:attribute name="src">
-                        <xsl:value-of select="description/icon_file"/>
-                    </xsl:attribute>
-                </xsl:element>
-            </div>
-            <div 
style="margin-left:0px;margin-bottom:1em;font-size:12pt;background-color:#FFFFFF">
-                <xsl:value-of select="description/description"/>
-            </div>
-            <!-- Show the Author --> 
-            <div 
style="margin-left:0px;font-size:10pt;background-color:#FFFFFF">
-                <span style="font-weight:bold">Author : </span>
-                <xsl:value-of select="description/author"/>
-            </div>
-            <!-- Show the Version --> 
-            <div 
style="margin-left:0px;margin-bottom:1em;font-size:10pt;background-color:#FFFFFF">
-                <span style="font-weight:bold">Version : </span>
-                <xsl:value-of select="description/version"/>
-            </div>
             <!-- Gadget UUID --> 
             <xsl:element name="input">
                 <xsl:attribute name="type">hidden</xsl:attribute>
@@ -95,18 +100,47 @@
                 </xsl:attribute>
             </xsl:element>
             <!-- A table for the parameters --> 
-            <table border="0" CELLPADDING="5">
+            <table border="0" cellpadding="1" width="360" bgcolor="#838588">
+            <tr>
+                <td align="center" colspan="2">
+                    <table border="0" cellpadding="0" width="360" height="60">
+                        <tr>
+                            <xsl:element name="img">
+                                <xsl:attribute name="style">
+                                    position:absolute;text-align: left;margin: 
0 auto; padding: 0; 
+                                </xsl:attribute>
+                                <xsl:attribute name="src">
+                                    <xsl:value-of 
select="description/icon_file"/>
+                                </xsl:attribute>
+                                <xsl:attribute 
name="onload">javascript:setpng(this);</xsl:attribute>
+                            </xsl:element>
+                            <td align="center" valign="center">
+                                <div 
style="margin-left:55px;margin-right:55px;">
+                                    <span class="title">
+                                        <xsl:value-of 
select="description/description"/>
+                                    </span>
+                                    <xsl:element name="br"></xsl:element>
+                                    <span class="author">- by <xsl:value-of 
select="description/author"/> -</span>
+                                </div>
+                            </td>
+                        </tr>
+                    </table>
+                </td>
+            </tr>
             <!-- For all parameters --> 
             <xsl:for-each select="parameters/*">
                 <xsl:if test="category != 'internals'">
-                    <tr>
-                        <td>
-                            <xsl:value-of select="translated_name"/> : 
+                    <tr bgcolor="#D7D8DA">
+                        <td align="right" width="180">
+                            <span class="paramName">
+                                <xsl:value-of select="description"/> : 
+                            </span>
                         </td>
                         <td>
                             <!-- Parameter is "string" then show it as "input" 
--> 
                             <xsl:if test="type = 'string'">
                                 <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"/>
@@ -117,10 +151,11 @@
                                     <xsl:attribute 
name="size">20</xsl:attribute>
                                 </xsl:element>
                             </xsl:if>
-                            <!-- Parameter is "string" then show it as "input" 
--> 
-                            <xsl:if test="type = 'password'">
+                            <!-- Parameter is "integer" then show it as 
"input" --> 
+                            <xsl:if test="type = 'integer'">
                                 <xsl:element name="input">
-                                    <xsl:attribute 
name="type">password</xsl:attribute>
+                                    <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>
@@ -130,9 +165,22 @@
                                     <xsl:attribute 
name="size">20</xsl:attribute>
                                 </xsl:element>
                             </xsl:if>
+                            <!-- Parameter is "password" then show it as 
"input" --> 
+                            <xsl:if test="type = 'password'">
+                                <xsl:element name="input">
+                                    <xsl:attribute 
name="class">text</xsl:attribute>
+                                    <xsl:attribute 
name="type">password</xsl:attribute>
+                                    <xsl:attribute name="name">
+                                        <xsl:value-of select="name"/>
+                                    </xsl:attribute>
+                                    <xsl:attribute 
name="value">********</xsl:attribute>
+                                    <xsl:attribute 
name="size">20</xsl:attribute>
+                                </xsl:element>
+                            </xsl:if>
                             <!-- Parameter is "boolean" then show it as 
"checkbox" --> 
                             <xsl:if test="type = 'boolean'">
                                 <xsl:element name="input">
+                                    <xsl:attribute 
name="class">checkbox</xsl:attribute>
                                     <xsl:attribute 
name="type">checkbox</xsl:attribute>
                                     <xsl:attribute name="name">
                                         <xsl:value-of select="name"/>
@@ -145,6 +193,7 @@
                             <!-- Parameter is "enum" then show it as "input" 
--> 
                             <xsl:if test="type = 'enum'">
                                 <xsl:element name="select">
+                                    <xsl:attribute 
name="class">select</xsl:attribute>
                                     <xsl:attribute name="name">
                                         <xsl:value-of select="name"/>
                                     </xsl:attribute>
@@ -173,26 +222,28 @@
                         <xsl:attribute name="value">
                             <xsl:value-of select="default_value"/>
                         </xsl:attribute>
+                        <xsl:attribute name="id">internals</xsl:attribute>
                     </xsl:element>
                 </xsl:if>
             </xsl:for-each>
             <tr>
-                <td>
+                <td colspan="2" height="0"></td>
+            </tr>
+            <tr>
+                <td align="right">
                     <!-- Add the start button -->
-                    <xsl:element name="input">
-                        <xsl:attribute name="type">button</xsl:attribute>
-                        <xsl:attribute name="value">Start</xsl:attribute>
+                    <xsl:element name="a">
+                        <xsl:attribute name="class">button</xsl:attribute>
                         <xsl:attribute 
name="onclick">javascript:startGadget();</xsl:attribute>
-                        <xsl:attribute name="size">30</xsl:attribute>
+                        <xsl:attribute name="href">#</xsl:attribute>Start
                     </xsl:element>
                 </td>
-                <td>
+                <td align="left">
                     <!-- Add the stop button -->
-                    <xsl:element name="input">
-                        <xsl:attribute name="type">button</xsl:attribute>
-                        <xsl:attribute name="value">Stop</xsl:attribute>
+                    <xsl:element name="a">
+                        <xsl:attribute name="class">button</xsl:attribute>
                         <xsl:attribute 
name="onclick">javascript:stopGadget();</xsl:attribute>
-                        <xsl:attribute name="size">30</xsl:attribute>
+                        <xsl:attribute name="href">#</xsl:attribute>Stop
                     </xsl:element>
                 </td>
             </tr>

Modified: 
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/01_robot_system/resourceGadgetFramework.py
===================================================================
--- 
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/01_robot_system/resourceGadgetFramework.py
 2009-03-28 19:03:10 UTC (rev 4244)
+++ 
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/01_robot_system/resourceGadgetFramework.py
 2009-03-29 09:30:05 UTC (rev 4245)
@@ -122,7 +122,7 @@
             resourcesManager.addFileToServe(helpFile, helpUrl)
         googleGadgetUrl = '/%s/google_gadget_code.txt' % uuid
         googleGadgetCode = WebGadgetTools.generateGoogleGadgetCode(gadget,
-            "http://127.0.0.1:270/gadget_framework/web_gadget?";,
+            "/gadget_framework/web_gadget?",
             gadget.getCommands()[0].getName(), {})
         resourcesManager.addContentToServe(googleGadgetCode,
             googleGadgetUrl)
@@ -453,7 +453,7 @@
         for i, gadget in enumerate(gadgets):
             d_name = "data|%d" % i
             structure = WebGadgetTools.generateWebGadgetStructure(gadget,
-                'http://127.0.0.1:270/gadget_framework/web_gadget?',
+                '/gadget_framework/web_gadget?',
                 gadget.getCommands()[0].getName(), {})
             #del structure['command']
             structure['commands'] = {}
@@ -502,7 +502,7 @@
         structure = None
         if gadget != None:
             structure = WebGadgetTools.generateWebGadgetStructure(gadget,
-                'http://127.0.0.1:270/gadget_framework/web_gadget?',
+                '/gadget_framework/web_gadget?',
                 parameters['command'], params)
         if structure == None:
             contentStruct['root']['result'] = getStrError(E_TDREST_FAILED)

Modified: 
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/WebGadgetTools.py
===================================================================
--- 
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/WebGadgetTools.py
      2009-03-28 19:03:10 UTC (rev 4244)
+++ 
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/WebGadgetTools.py
      2009-03-29 09:30:05 UTC (rev 4245)
@@ -23,8 +23,8 @@
     author="%s"
     author_link="http://www.kysoh.com";
     description="%s"
-    screenshot="http://127.0.0.1:270%s";
-    thumbnail="http://127.0.0.1:270%s";>
+    screenshot="%s"
+    thumbnail="%s">
 </ModulePrefs>
 <Content type="html"><![CDATA[
 <body>


------------------------------------------------------------------------------
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to