commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r9277 - trunk/gnue-forms/src


From: reinhard
Subject: [gnue] r9277 - trunk/gnue-forms/src
Date: Fri, 12 Jan 2007 05:58:25 -0600 (CST)

Author: reinhard
Date: 2007-01-12 05:58:24 -0600 (Fri, 12 Jan 2007)
New Revision: 9277

Modified:
   trunk/gnue-forms/src/GFInstance.py
Log:
Slight restructuring.


Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py  2007-01-12 11:04:58 UTC (rev 9276)
+++ trunk/gnue-forms/src/GFInstance.py  2007-01-12 11:58:24 UTC (rev 9277)
@@ -178,117 +178,149 @@
 
 
     # -------------------------------------------------------------------------
-    # Load a form from a buffer
+    # Deprecated functions
     # -------------------------------------------------------------------------
 
     def addFormFromBuffer(self, buffer):
         """
-        Loads a GObj based form tree when passed a string containing gfd 
markup.
+        DEPRECATED. Use run_from_buffer instead.
+        """
 
-        @param buffer: A string containing the forms definition (gfd)
+        assert gDebug(1, "DEPRECATED: GFInstance.addFormFromBuffer()")
+        self.__load_buffer(buffer)
+
+    # -------------------------------------------------------------------------
+
+    def addFormFromFile(self, fileName):
         """
+        DEPRECATED. Use run_from_file instead.
+        """
 
-        try:
-            fileHandle = FileUtils.openBuffer(buffer)
-            self.addFormFromFilehandle(fileHandle)
-            fileHandle.close()
+        assert gDebug(1, "DEPRECATED: GFInstance.addFormFromFile()")
+        self.__load_file(fileName)
 
-        except IOError:
-            raise FileOpenError, errors.getException()[2]
+    # -------------------------------------------------------------------------
 
+    def activate(self):
+        """
+        DEPRECATED. Use run_from_buffer or run_from_file instead.
+        """
 
+        assert gDebug(1, "DEPRECATED: GFInstance.activate()")
+        self.__run(self._main_form, self.__parameters)
+
+
     # -------------------------------------------------------------------------
-    # Load a form from a file specified by it's filename
+    # Load and run a form
     # -------------------------------------------------------------------------
 
-    def addFormFromFile(self, fileName):
+    def run_from_buffer(self, buffer, parameters):
         """
-        Loads a GObj based form tree when passed a file name.
+        Load a form definition from a string and open the form.
 
-        @param fileName: A string containing a URI
+        @param buffer: A string containing the form definition.
+        @param parameters: Parameter dictionary to pass to the form.
         """
 
+        form = self.__load_buffer(self, buffer)
+        self.__run(form, parameters)
+
+    # -------------------------------------------------------------------------
+
+    def run_from_file(self, filename, parameters):
+        """
+        Load a form definition from a file and open the form.
+
+        @param buffer: Filename to load
+        @param parameters: Parameter dictionary to pass to the form.
+        """
+
+        form = self.__load_file(self, filename)
+        self.__run(form, parameters)
+
+
+    # -------------------------------------------------------------------------
+    # Helper functions, can be merged into main functions when depreciated
+    # functions are removed.
+    # -------------------------------------------------------------------------
+
+    def __load_buffer(self, buffer):
+
         try:
-            if fileName[:12] == 'appserver://':
+            filehandle = FileUtils.openBuffer(buffer)
+            form = self.__load(filehandle, None)
+            filehandle.close()
+            return form
+        except IOError:
+            raise FileOpenError, errors.getException()[2]
+
+    # -------------------------------------------------------------------------
+
+    def __load_file(self, filename):
+
+        try:
+            if filename.startswith('appserver://'):
                 param = {'language': i18n.language, 'formwidth': 80,
                         'formheight': 20}
-                fileHandle = getAppserverResource(fileName, param,
+                filehandle = getAppserverResource(filename, param,
                         self.connections)
             else:
-                fileHandle = FileUtils.openResource(fileName)
+                filehandle = FileUtils.openResource(filename)
 
-            self.addFormFromFilehandle(fileHandle, fileName)
-            fileHandle.close()
+            form = self.__load(filehandle, filename)
+            filehandle.close()
+            return form
 
         except IOError:
             raise FileOpenError, errors.getException()[2]
 
-
     # -------------------------------------------------------------------------
-    # Add a form from a file-like object specified by it's filehandle
-    # -------------------------------------------------------------------------
 
-    def addFormFromFilehandle(self, fileHandle, url=None):
-        """
-        Loads a GObj based form tree when passed a valid python file handle.
+    def __load(self, filehandle, url):
 
-        A copy of the instance is passed into the parser so that it can work
-        with things like the GConnections stored in the base app.
-
-        @param fileHandle: A python file handle.
-        """
-
         # 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
-        form = loadFile(fileHandle, self, initialize=0, url=url)
+        form = loadFile(filehandle, self, initialize=0, url=url)
         self.__loaded_forms.append(form)
         self._main_form = form
+        return form
 
-
     # -------------------------------------------------------------------------
-    # Initialize the UI and activate the main form
-    # -------------------------------------------------------------------------
 
-    def activate(self):
+    def __run(self, form, parameters):
 
-        assert gEnter(4)
-
-        main_form = self._main_form
-
         # Initialize all the forms loaded into memory
         assert gDebug(4, "Initializing form objects")
 
         # Set the parameters for the main form now so they are available in the
         # ON-STARTUP trigger, which is called in phaseInit.
-        if self.__parameters is not None:
-            main_form.set_parameters(self.__parameters)
+        if parameters is not None:
+            form.set_parameters(parameters)
 
-        main_form.initialize(self.__default_form)
+        form.initialize(self.__default_form)
 
         # Bring up the main form
-        if main_form.style == 'dialog':
+        if form.style == 'dialog':
             # we assume a dialog to be modal by definition and that program
             # execution stops here until the dialog get's closed. So do *not*
             # enter another main loop
             assert gDebug(4, "Activating main form as dialog")
-            main_form.execute_open(True)
+            form.execute_open(True)
         else:
             assert gDebug(4, "Activating main form")
-            main_form.execute_open(False)
+            form.execute_open(False)
             assert gDebug(4, "Startup complete")
             assert gDebug(4, "Entering main loop")
             self._uiinstance.mainLoop()
             assert gDebug(4, "Returning from main loop")
 
         # Get the parameters back from the form.
-        if self.__parameters is not None:
-            self.__parameters.clear()
-            self.__parameters.update(main_form.get_parameters())
+        if parameters is not None:
+            parameters.clear()
+            parameters.update(form.get_parameters())
 
-        assert gLeave(4)
 
-
     # -------------------------------------------------------------------------
     # Show an exception
     # -------------------------------------------------------------------------





reply via email to

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