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&parameters=%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&parameters=%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

Reply via email to