E5XML/TemplatesWriter.py

changeset 584
b5d4c116952a
parent 412
569efd7f2716
child 586
9dbffeed66a9
--- a/E5XML/TemplatesWriter.py	Fri Sep 10 12:41:55 2010 +0200
+++ b/E5XML/TemplatesWriter.py	Fri Sep 10 20:03:59 2010 +0200
@@ -9,20 +9,21 @@
 
 import time
 
-from .XMLWriterBase import XMLWriterBase
+from .XMLStreamWriterBase import XMLStreamWriterBase
 from .Config import templatesFileFormatVersion
 
-class TemplatesWriter(XMLWriterBase):
+class TemplatesWriter(XMLStreamWriterBase):
     """
     Class implementing the writer class for writing an XML templates file.
     """
-    def __init__(self, file, templatesViewer):
+    def __init__(self, device, templatesViewer):
         """
         Constructor
         
-        @param file open file (like) object for writing
+        @param device reference to the I/O device to write to (QIODevice)
+        @param templatesViewer reference to the templates viewer object (TemplateViewer)
         """
-        XMLWriterBase.__init__(self, file)
+        XMLStreamWriterBase.__init__(self, device)
         
         self.templatesViewer = templatesViewer
         
@@ -30,33 +31,49 @@
         """
         Public method to write the XML to the file.
         """
-        XMLWriterBase.writeXML(self)
+        XMLStreamWriterBase.writeXML(self)
         
-        self._write('<!DOCTYPE Templates SYSTEM "Templates-{0}.dtd">'.format(
+        self.writeDTD('<!DOCTYPE Templates SYSTEM "Templates-{0}.dtd">'.format(
             templatesFileFormatVersion))
         
         # add some generation comments
-        self._write("<!-- eric5 templates file -->")
-        self._write("<!-- Saved: {0} -->".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
+        self.writeComment(" eric5 templates file ")
+        self.writeComment(" Saved: {0} ".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
+##        self._write("<!-- eric5 templates file -->")
+##        self._write("<!-- Saved: {0} -->".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
         
         # add the main tag
-        self._write('<Templates version="{0}">'.format(templatesFileFormatVersion))
+        self.writeStartElement("Templates")
+        self.writeAttribute("version", templatesFileFormatVersion)
+##        self._write('<Templates version="{0}">'.format(templatesFileFormatVersion))
         
         # do the template groups
         groups = self.templatesViewer.getAllGroups()
         for group in groups:
-            self._write('  <TemplateGroup name="{0}" language="{1}">'.format(
-                        group.getName(), group.getLanguage()))
+            self.writeStartElement("TemplateGroup")
+            self.writeAttribute("name", group.getName())
+            self.writeAttribute("language", group.getLanguage())
+##            self._write('  <TemplateGroup name="{0}" language="{1}">'.format(
+##                        group.getName(), group.getLanguage()))
             # do the templates
             templates = group.getAllEntries()
             for template in templates:
-                self._write('    <Template name="{0}">'.format(
-                    self.escape(template.getName(), True)))
-                self._write('      <TemplateDescription>{0}</TemplateDescription>'.format(
-                    self.escape("{0}".format(template.getDescription()))))
-                self._write('      <TemplateText>{0}</TemplateText>'.format(
-                    self.escape("{0}".format(template.getTemplateText()))))
-                self._write('    </Template>')
-            self._write('  </TemplateGroup>')
+                self.writeStartElement("Template")
+                self.writeAttribute("name", template.getName())
+                self.writeTextElement("TemplateDescription", template.getDescription())
+                self.writeTextElement("TemplateText", template.getTemplateText())
+                self.writeEndElement()
+            self.writeEndElement()
         
-        self._write('</Templates>', newline = False)
+        self.writeEndElement()
+        self.writeEndDocument()
+##                self._write('    <Template name="{0}">'.format(
+##                    self.escape(template.getName(), True)))
+##                self._write('      <TemplateDescription>{0}</TemplateDescription>'.format(
+##                    self.escape("{0}".format(template.getDescription()))))
+##                self._write('      <TemplateText>{0}</TemplateText>'.format(
+##                    self.escape("{0}".format(template.getTemplateText()))))
+##                self._write('    </Template>')
+##            self._write('  </TemplateGroup>')
+##        
+##        self._write('</Templates>', newline = False)

eric ide

mercurial