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 += "¶meters=" + 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