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 _______________________________________________ commit-gnue mailing list commit-gnue@gnu.org http://lists.gnu.org/mailman/listinfo/commit-gnue