commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r9387 - in trunk/gnue-forms/src: . GFObjects


From: reinhard
Subject: [gnue] r9387 - in trunk/gnue-forms/src: . GFObjects
Date: Tue, 20 Feb 2007 12:50:51 -0600 (CST)

Author: reinhard
Date: 2007-02-20 12:50:47 -0600 (Tue, 20 Feb 2007)
New Revision: 9387

Modified:
   trunk/gnue-forms/src/GFInstance.py
   trunk/gnue-forms/src/GFObjects/GFBlock.py
   trunk/gnue-forms/src/GFObjects/GFOptions.py
   trunk/gnue-forms/src/GFParser.py
Log:
Added handling of translation gfd's.


Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py  2007-02-20 18:49:52 UTC (rev 9386)
+++ trunk/gnue-forms/src/GFInstance.py  2007-02-20 18:50:47 UTC (rev 9387)
@@ -169,14 +169,6 @@
                     moduleName=moduleName)
 
         assert gDebug(4, "Loading default form")
-        # Find out about the languages to load.
-        lang = i18n.getlanguage()
-        filenames = ["default.gfd"]
-        if lang != "C":
-            filenames.append(os.path.join("default", lang[:2] + ".gfd"))
-            if len(lang) > 2:
-                filenames.append(os.path.join("default", lang + ".gfd"))
-
         dirnames = [os.path.join(paths.data, 
"share","gnue","forms","defaults")]
         dirnames.append(paths.config)
         if os.environ.has_key("HOME"):
@@ -184,22 +176,15 @@
 
         self.__default_form = GFForm.GFForm()
         for dirname in dirnames:
-            for filename in filenames:
-                self.__merge_form(self.__default_form,
-                        os.path.join(dirname, filename))
+            filename = os.path.join(dirname, "default.gfd")
+            if os.path.isfile(filename):
+                self.__default_form.merge(
+                        self.__load_file_with_translations(filename, False),
+                        overwrite=True)
 
         assert gLeave(4)
 
-    # -------------------------------------------------------------------------
 
-    def __merge_form(self, form, filename):
-        if os.path.isfile(filename):
-            filehandle = FileUtils.openResource(filename)
-            new_form = loadFile(filehandle, self, initialize=0, url=filename)
-            form.merge(new_form, overwrite=True)
-            filehandle.close()
-
-
     # -------------------------------------------------------------------------
     # Deprecated functions
     # -------------------------------------------------------------------------
@@ -222,7 +207,7 @@
         """
 
         assert gDebug(1, "DEPRECATED: GFInstance.addFormFromFile()")
-        form = self.__load_file(fileName)
+        form = self.__load_file_with_translations(fileName, True)
         self.__loaded_forms.append(form)
         self._main_form = form
 
@@ -283,7 +268,7 @@
         @param parameters: Parameter dictionary to pass to the form.
         """
 
-        form = self.__load_file(filename)
+        form = self.__load_file_with_translations(filename, True)
         self.__loaded_forms.append(form)
         self.__run(form, parameters)
         return form
@@ -298,7 +283,7 @@
 
         try:
             filehandle = FileUtils.openBuffer(buffer)
-            form = self.__load(filehandle, None)
+            form = self.__load(filehandle, None, True)
             filehandle.close()
             return form
         except IOError:
@@ -306,19 +291,45 @@
 
     # -------------------------------------------------------------------------
 
-    def __load_file(self, filename):
+    def __load_file_with_translations(self, filename, check_required):
 
+        # Load base form
+        form = self.__load_file(filename, check_required)
+
+        (base, ext) = os.path.splitext(filename)
+
+        # Find out about the languages to load.
+        lang = i18n.getlanguage()
+        filenames = []
+        if lang != "C":
+            filenames.append(base + os.path.extsep + lang[:2] + ext)
+            filenames.append(os.path.join(base, lang[:2] + ext))
+            if len(lang) > 2:
+                filenames.append(base + os.path.extsep + lang + ext)
+                filenames.append(os.path.join(base, lang + ext))
+
+        # Merge language specific versions
+        for fn in filenames:
+            if os.path.isfile(fn):
+                form.merge(self.__load_file(fn, False), overwrite=True)
+
+        return form
+
+    # -------------------------------------------------------------------------
+
+    def __load_file(self, filename, check_required):
+
         try:
             if filename.startswith('appserver://'):
                 param = {'language': i18n.language, 'formwidth': 80,
                         'formheight': 20}
                 filehandle = getAppserverResource(filename, param,
                         self.connections)
-                form = self.__load(filehandle, filename)
+                form = self.__load(filehandle, filename, check_required)
                 filehandle.close()
             else:
                 filehandle = FileUtils.openResource(filename)
-                form = self.__load(filehandle, filename)
+                form = self.__load(filehandle, filename, check_required)
                 filehandle.close()
 
             return form
@@ -328,12 +339,13 @@
 
     # -------------------------------------------------------------------------
 
-    def __load(self, filehandle, url):
+    def __load(self, filehandle, url, check_required):
 
         # Load the file bypassing the initialization We bypass the
         # initialization because <dialog>s are really <form>s and they don't
         # like being children of another form
-        return loadFile(filehandle, self, initialize=0, url=url)
+        return loadFile(filehandle, self, initialize=0, url=url,
+                check_required=check_required)
 
     # -------------------------------------------------------------------------
 

Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2007-02-20 18:49:52 UTC (rev 
9386)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2007-02-20 18:50:47 UTC (rev 
9387)
@@ -828,6 +828,9 @@
         'modified', or 'deleted', or C{None} if there is no current record.
         """
 
+        if self.mode == 'query':
+            return None
+
         if self.__resultset is None:
             return None
 

Modified: trunk/gnue-forms/src/GFObjects/GFOptions.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFOptions.py 2007-02-20 18:49:52 UTC (rev 
9386)
+++ trunk/gnue-forms/src/GFObjects/GFOptions.py 2007-02-20 18:50:47 UTC (rev 
9387)
@@ -24,13 +24,13 @@
 Options container support
 """
 
-from gnue.forms.GFObjects.GFObj import GFObj
+from gnue.common.definitions.GObjects import GObj
 
 # =============================================================================
 # Collection of options
 # =============================================================================
 
-class GFOptions(GFObj):
+class GFOptions(GObj):
 
     # -------------------------------------------------------------------------
     # Constructor
@@ -38,4 +38,4 @@
 
     def __init__(self, parent=None):
 
-        GFObj.__init__(self, parent, 'GFOptions')
+        GObj.__init__(self, parent, 'GFOptions')

Modified: trunk/gnue-forms/src/GFParser.py
===================================================================
--- trunk/gnue-forms/src/GFParser.py    2007-02-20 18:49:52 UTC (rev 9386)
+++ trunk/gnue-forms/src/GFParser.py    2007-02-20 18:50:47 UTC (rev 9387)
@@ -51,7 +51,7 @@
 ##
 ##
 ##
-def loadFile (buffer, instance, initialize=True, url = None):
+def loadFile (buffer, instance, initialize=True, url=None, 
check_required=True):
   """
   This method loads a form from an XML file and returns
   a GFForm object.  If initialize is 1 (default), then
@@ -65,7 +65,7 @@
            initialize,
            attributes={"_instance": instance,
                "_connections": instance.connections},
-           url = url)
+           url=url, checkRequired=check_required)
 
 
 xmlElements = None





reply via email to

[Prev in Thread] Current Thread [Next in Thread]