Author: remi
Date: 2009-03-23 14:03:28 +0100 (Mon, 23 Mar 2009)
New Revision: 4180
Added:
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/WebGadgetTools.py
Modified:
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/Gadget.py
Log:
* added WebGadgetTools class
Modified:
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/Gadget.py
===================================================================
---
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/Gadget.py
2009-03-23 12:12:50 UTC (rev 4179)
+++
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/Gadget.py
2009-03-23 13:03:28 UTC (rev 4180)
@@ -18,28 +18,6 @@
from GadgetParameter import GadgetParameter
from GadgetToken import GadgetToken
-# Base code of a google gadget
-GOOGLE_GADGET_BASE_CODE = '''<?xml version="1.0" encoding="UTF-8"?>
-<Module>
-<ModulePrefs
- title="Tux Droid : %s"
- title_url="http://www.kysoh.com"
- height="300"
- scaling="false"
- 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">
-</ModulePrefs>
-<Content type="html"><![CDATA[
-<body>
- <iframe src='%s' width=800 height=300 frameborder=0 scrolling=false>
-</body>
-]]></Content>
-</Module>
-'''
-
#
------------------------------------------------------------------------------
# Gadget class.
#
------------------------------------------------------------------------------
@@ -505,86 +483,3 @@
if self.__gadgetInterpreter != None:
self.__gadgetInterpreter.abort()
self.__interpreterMutex.release()
-
- # TODO: Create a class with the following functionalities.
- '''
- #
==========================================================================
- # WEB GADGET Generators
- #
==========================================================================
-
- #
--------------------------------------------------------------------------
- # Generate a web gadget structure.
- #
--------------------------------------------------------------------------
- def generateWebGadgetStructure(self, command, parameters = {}):
- """Generate a web gadget structure.
- @param command: Gadget command.
- @param parameters: Parameters dictionary.
- """
- framework = self.getContainer().getFramework()
- if not framework.isStarted():
- return None
- import copy
- structure = copy.deepcopy(self.getStructure())
- del structure['commands']
- # Serialize enum values
- for key in structure['parameters']:
- param = structure['parameters'][key]
- if param['type'] == 'enum':
- values = param['enum_values'].split(",")
- enums = {}
- for i, value in enumerate(values):
- dName = "enum_%.2d" % i
- if value != '':
- enums[dName] = value
- param['enum_values'] = enums
- # Insert the command
- structure['command'] = command
- # Fill the parameters
- for key in parameters:
- if key in self.getParametersName():
- for sKey in structure['parameters']:
- param = structure['parameters'][sKey]
- if param['name'] == key:
- param['default_value'] = parameters[key]
- param['category'] = 'internals'
- return structure
-
- #
--------------------------------------------------------------------------
- # Get the url for a web gadget.
- #
--------------------------------------------------------------------------
- def getWebGadgetUrl(self, baseUrl, command, parameters = {}):
- """Get the url for a web gadget.
- @param baseUrl: Base url of the web gadgets.
- @param command: Gadget command.
- @param parameters: Parameters dictionary.
- """
- params = ""
- for key in parameters:
- params += "%s=%s|" % (key, parameters[key])
- uuid = self.getDescription().getUuid()
- url = "%suuid=%s&command=%s¶meters=%s" % (baseUrl, uuid, command,
- params)
- return url
-
- #
--------------------------------------------------------------------------
- # Generate the code of a google gadget.
- #
--------------------------------------------------------------------------
- def generateGoogleGadgetCode(self, baseUrl, command, parameters = {}):
- """Generate the code of a google gadget.
- @param baseUrl: Base url of the web gadgets.
- @param command: Gadget command.
- @param parameters: Parameters dictionary.
- """
- framework = self.getContainer().getFramework()
- if not framework.isStarted():
- return None
- url = self.getWebGadgetUrl(baseUrl, command, parameters)
- result = GOOGLE_GADGET_BASE_CODE % (
- self.getDescription().getName(),
- self.getDescription().getAuthor(),
- self.getDescription().getDescription(),
- self.getDescription().getIconFile(),
- self.getDescription().getIconFile(),
- url)
- return result
- '''
Added:
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/WebGadgetTools.py
===================================================================
---
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/WebGadgetTools.py
(rev 0)
+++
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/WebGadgetTools.py
2009-03-23 13:03:28 UTC (rev 4180)
@@ -0,0 +1,160 @@
+# Copyright (C) 2009 C2ME Sa
+# Remi Jocaille <[email protected]>
+# Distributed under the terms of the GNU General Public License
+# http://www.gnu.org/copyleft/gpl.html
+
+# Base code of a google gadget
+# Parameters are:
+# 1 : Gadget name.
+# 2 : Gadget author.
+# 3 : Gadget description
+# 4 : Gadget icon file.
+# 5 : Gadget icon file.
+# 6 : Gadget url of the complete request.
+GOOGLE_GADGET_BASE_CODE = '''<?xml version="1.0" encoding="UTF-8"?>
+<Module>
+<ModulePrefs
+ title="Tux Droid : %s"
+ title_url="http://www.kysoh.com"
+ height="300"
+ scaling="false"
+ 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">
+</ModulePrefs>
+<Content type="html"><![CDATA[
+<body>
+ <iframe src='%s' width=800 height=300 frameborder=0 scrolling=false>
+</body>
+]]></Content>
+</Module>
+'''
+
+class WebGadgetTools(object):
+ """
+ """
+
+ #
--------------------------------------------------------------------------
+ # Get the url for a web gadget.
+ #
--------------------------------------------------------------------------
+ def getWebGadgetUrl(gadget, baseUrl, command, parameters = {}):
+ """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.
+ @return: A web url.
+ """
+ params = ""
+ for key in parameters:
+ if len(params) > 0:
+ params += "|"
+ params += "%s=%s" % (key, parameters[key])
+ uuid = gadget.getDescription().getUuid()
+ url = "%suuid=%s&command=%s¶meters=%s" % (baseUrl, uuid, command,
+ params)
+ return url
+
+ #
--------------------------------------------------------------------------
+ # Generate a web gadget structure.
+ #
--------------------------------------------------------------------------
+ def generateWebGadgetStructure(gadget, baseUrl, command, parameters = {}):
+ """Generate a web gadget structure.
+ @param gadget: Gadget object.
+ @param baseUrl: Base url.
+ @param command: Gadget command.
+ @param parameters: Parameters dictionary.
+ @return: A dictionary.
+ """
+ structure = {}
+ # Get the language
+ if parameters.has_key('language'):
+ language = parameters['language']
+ else:
+ language = gadget.getContainer().getLanguage()
+ # Add the gadget description.
+ description = gadget.getDescription()
+ structure['description'] = {}
+ structure['description']['name'] = description.getName()
+ structure['description']['translated_name'] =
description.getTranslatedName(language)
+ structure['description']['uuid'] = description.getUuid()
+ structure['description']['version'] = description.getVersion()
+ structure['description']['author'] = description.getAuthor()
+ structure['description']['description'] =
description.getDescription(language)
+ structure['description']['google_gadget_code'] =
"/%s/google_gadget_code.txt" % description.getUuid()
+ if language == 'en':
+ helpFile = "/%s/help.html" % description.getUuid()
+ else:
+ helpFile = "/%s/help_%s.html" % (description.getUuid(), language)
+ structure['description']['help_file'] = helpFile
+ structure['description']['icon_file'] = "/%s/gadget.png" %
description.getUuid()
+ structure['description']['working_path'] = gadget.getWorkingPath()
+ structure['description']['tgf_file'] = gadget.getTgfFile()
+ webGadgetUrl = WebGadgetTools.getWebGadgetUrl(gadget, baseUrl,
command, parameters)
+ structure['description']['web_gadget_url'] = webGadgetUrl
+ # Add the parameters
+ structure['parameters'] = {}
+ gadgetParameters = gadget.getParameters()
+ for i, parameter in enumerate(gadgetParameters):
+ nodeName = "parameter_%.3d" % i
+ structure['parameters'][nodeName] = {}
+ structure['parameters'][nodeName]['name'] = parameter.getName()
+ structure['parameters'][nodeName]['translated_name'] =
parameter.getTranslatedName(language)
+ structure['parameters'][nodeName]['description'] =
parameter.getDescription(language)
+ structure['parameters'][nodeName]['category'] =
parameter.getCategory()
+ structure['parameters'][nodeName]['type'] = parameter.getType()
+ structure['parameters'][nodeName]['default_value'] =
parameter.getDefaultValue(language)
+ structure['parameters'][nodeName]['enum_values'] =
parameter.getEnumValues()
+ structure['parameters'][nodeName]['min_value'] =
parameter.getMinValue()
+ structure['parameters'][nodeName]['max_value'] =
parameter.getMaxValue()
+ # Serialize enum values
+ for key in structure['parameters']:
+ param = structure['parameters'][key]
+ if param['type'] == 'enum':
+ values = param['enum_values'].split(",")
+ enums = {}
+ for i, value in enumerate(values):
+ dName = "enum_%.2d" % i
+ if value != '':
+ enums[dName] = value
+ param['enum_values'] = enums
+ # Insert the command
+ structure['command'] = command
+ # Fill the parameters
+ for key in parameters:
+ if key in self.getParametersName():
+ for sKey in structure['parameters']:
+ param = structure['parameters'][sKey]
+ if param['name'] == key:
+ param['default_value'] = parameters[key]
+ param['category'] = 'internals'
+ return structure
+
+ #
--------------------------------------------------------------------------
+ # Generate the code of a google gadget.
+ #
--------------------------------------------------------------------------
+ def generateGoogleGadgetCode(gadget, baseUrl, command, parameters = {}):
+ """Generate the code of a google gadget.
+ @param baseUrl: Base url of the web gadgets.
+ @param command: Gadget command.
+ @param parameters: Parameters dictionary.
+ """
+ url = WebGadgetTools.getWebGadgetUrl(gadget, baseUrl, command,
parameters)
+ if parameters.has_key('language'):
+ language = parameters['language']
+ else:
+ language = gadget.getContainer().getLanguage()
+ result = GOOGLE_GADGET_BASE_CODE % (
+ gadget.getDescription().getName(),
+ gadget.getDescription().getAuthor(),
+ gadget.getDescription().getDescription(language),
+ gadget.getDescription().getIconFile(),
+ gadget.getDescription().getIconFile(),
+ url)
+ return result
+
+ getWebGadgetUrl = staticmethod(getWebGadgetUrl)
+ generateWebGadgetStructure = staticmethod(generateWebGadgetStructure)
+ generateGoogleGadgetCode = staticmethod(generateGoogleGadgetCode)
Property changes on:
software_suite_v2/tuxware/tuxdroidserver/trunk/util/applicationserver/gadget/WebGadgetTools.py
___________________________________________________________________
Name: svn:keywords
+ Id
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn