E5XML/TemplatesWriter.py

changeset 584
b5d4c116952a
parent 412
569efd7f2716
child 586
9dbffeed66a9
equal deleted inserted replaced
583:08bc660d6a15 584:b5d4c116952a
7 Module implementing the writer class for writing an XML templates file. 7 Module implementing the writer class for writing an XML templates file.
8 """ 8 """
9 9
10 import time 10 import time
11 11
12 from .XMLWriterBase import XMLWriterBase 12 from .XMLStreamWriterBase import XMLStreamWriterBase
13 from .Config import templatesFileFormatVersion 13 from .Config import templatesFileFormatVersion
14 14
15 class TemplatesWriter(XMLWriterBase): 15 class TemplatesWriter(XMLStreamWriterBase):
16 """ 16 """
17 Class implementing the writer class for writing an XML templates file. 17 Class implementing the writer class for writing an XML templates file.
18 """ 18 """
19 def __init__(self, file, templatesViewer): 19 def __init__(self, device, templatesViewer):
20 """ 20 """
21 Constructor 21 Constructor
22 22
23 @param file open file (like) object for writing 23 @param device reference to the I/O device to write to (QIODevice)
24 @param templatesViewer reference to the templates viewer object (TemplateViewer)
24 """ 25 """
25 XMLWriterBase.__init__(self, file) 26 XMLStreamWriterBase.__init__(self, device)
26 27
27 self.templatesViewer = templatesViewer 28 self.templatesViewer = templatesViewer
28 29
29 def writeXML(self): 30 def writeXML(self):
30 """ 31 """
31 Public method to write the XML to the file. 32 Public method to write the XML to the file.
32 """ 33 """
33 XMLWriterBase.writeXML(self) 34 XMLStreamWriterBase.writeXML(self)
34 35
35 self._write('<!DOCTYPE Templates SYSTEM "Templates-{0}.dtd">'.format( 36 self.writeDTD('<!DOCTYPE Templates SYSTEM "Templates-{0}.dtd">'.format(
36 templatesFileFormatVersion)) 37 templatesFileFormatVersion))
37 38
38 # add some generation comments 39 # add some generation comments
39 self._write("<!-- eric5 templates file -->") 40 self.writeComment(" eric5 templates file ")
40 self._write("<!-- Saved: {0} -->".format(time.strftime('%Y-%m-%d, %H:%M:%S'))) 41 self.writeComment(" Saved: {0} ".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
42 ## self._write("<!-- eric5 templates file -->")
43 ## self._write("<!-- Saved: {0} -->".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
41 44
42 # add the main tag 45 # add the main tag
43 self._write('<Templates version="{0}">'.format(templatesFileFormatVersion)) 46 self.writeStartElement("Templates")
47 self.writeAttribute("version", templatesFileFormatVersion)
48 ## self._write('<Templates version="{0}">'.format(templatesFileFormatVersion))
44 49
45 # do the template groups 50 # do the template groups
46 groups = self.templatesViewer.getAllGroups() 51 groups = self.templatesViewer.getAllGroups()
47 for group in groups: 52 for group in groups:
48 self._write(' <TemplateGroup name="{0}" language="{1}">'.format( 53 self.writeStartElement("TemplateGroup")
49 group.getName(), group.getLanguage())) 54 self.writeAttribute("name", group.getName())
55 self.writeAttribute("language", group.getLanguage())
56 ## self._write(' <TemplateGroup name="{0}" language="{1}">'.format(
57 ## group.getName(), group.getLanguage()))
50 # do the templates 58 # do the templates
51 templates = group.getAllEntries() 59 templates = group.getAllEntries()
52 for template in templates: 60 for template in templates:
53 self._write(' <Template name="{0}">'.format( 61 self.writeStartElement("Template")
54 self.escape(template.getName(), True))) 62 self.writeAttribute("name", template.getName())
55 self._write(' <TemplateDescription>{0}</TemplateDescription>'.format( 63 self.writeTextElement("TemplateDescription", template.getDescription())
56 self.escape("{0}".format(template.getDescription())))) 64 self.writeTextElement("TemplateText", template.getTemplateText())
57 self._write(' <TemplateText>{0}</TemplateText>'.format( 65 self.writeEndElement()
58 self.escape("{0}".format(template.getTemplateText())))) 66 self.writeEndElement()
59 self._write(' </Template>')
60 self._write(' </TemplateGroup>')
61 67
62 self._write('</Templates>', newline = False) 68 self.writeEndElement()
69 self.writeEndDocument()
70 ## self._write(' <Template name="{0}">'.format(
71 ## self.escape(template.getName(), True)))
72 ## self._write(' <TemplateDescription>{0}</TemplateDescription>'.format(
73 ## self.escape("{0}".format(template.getDescription()))))
74 ## self._write(' <TemplateText>{0}</TemplateText>'.format(
75 ## self.escape("{0}".format(template.getTemplateText()))))
76 ## self._write(' </Template>')
77 ## self._write(' </TemplateGroup>')
78 ##
79 ## self._write('</Templates>', newline = False)

eric ide

mercurial