mailr10411 - /branches/bieri_gui/data/data_classes.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on January 26, 2010 - 19:45:
Author: bugman
Date: Tue Jan 26 19:45:58 2010
New Revision: 10411

URL: http://svn.gna.org/viewcvs/relax?rev=10411&view=rev
Log:
Fixes for the Element.to_xml() method to make it function correctly.


Modified:
    branches/bieri_gui/data/data_classes.py

Modified: branches/bieri_gui/data/data_classes.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/bieri_gui/data/data_classes.py?rev=10411&r1=10410&r2=10411&view=diff
==============================================================================
--- branches/bieri_gui/data/data_classes.py (original)
+++ branches/bieri_gui/data/data_classes.py Tue Jan 26 19:45:58 2010
@@ -102,13 +102,18 @@
         @type element:  XML element object
         """
 
+        # Create a new element for this container and add it to the higher 
level element.
+        cont_element = doc.createElement(self.name)
+        element.appendChild(cont_element)
+
         # Set the list attributes.
-        element.setAttribute('desc', self.desc)
+        cont_element.setAttribute('desc', self.desc)
 
         # Blacklisted objects.
-        blacklist = list(self.__class__.__dict__.keys() + 
object.__dict__.keys())
-
-        # Add objects which have to_xml() methods.
+        blacklist = ['name', 'desc', 'blacklist'] + 
list(Element.__dict__.keys() + self.__class__.__dict__.keys() + 
object.__dict__.keys())
+
+        # Store and blacklist the objects which have to_xml() methods.
+        to_xml_list = []
         for name in dir(self):
             # Skip blacklisted objects.
             if name in blacklist:
@@ -121,11 +126,15 @@
             # Execute any to_xml() methods, and add that object to the 
blacklist.
             obj = getattr(self, name)
             if hasattr(obj, 'to_xml'):
-                obj.to_xml(doc, element)
+                to_xml_list.append(obj)
                 blacklist = blacklist + [name]
 
         # Add all simple python objects within the container to the XML 
element.
-        fill_object_contents(doc, element, object=self, blacklist=blacklist)
+        fill_object_contents(doc, cont_element, object=self, 
blacklist=blacklist)
+
+        # Execute the object to_xml() methods.
+        for obj in to_xml_list:
+            obj.to_xml(doc, cont_element)
 
 
 




Related Messages


Powered by MHonArc, Updated Tue Jan 26 20:00:02 2010