E5XML/TemplatesWriter.py

Fri, 10 Sep 2010 20:03:59 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 10 Sep 2010 20:03:59 +0200
changeset 584
b5d4c116952a
parent 412
569efd7f2716
child 586
9dbffeed66a9
permissions
-rw-r--r--

Migrated the templates writer.

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
13
1af94a91f439 Changed copyright for 2010.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
3 # Copyright (c) 2005 - 2010 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the writer class for writing an XML templates file.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import time
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
12 from .XMLStreamWriterBase import XMLStreamWriterBase
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
13 from .Config import templatesFileFormatVersion
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
15 class TemplatesWriter(XMLStreamWriterBase):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 Class implementing the writer class for writing an XML templates file.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
19 def __init__(self, device, templatesViewer):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
23 @param device reference to the I/O device to write to (QIODevice)
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
24 @param templatesViewer reference to the templates viewer object (TemplateViewer)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
26 XMLStreamWriterBase.__init__(self, device)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 self.templatesViewer = templatesViewer
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 def writeXML(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 Public method to write the XML to the file.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
34 XMLStreamWriterBase.writeXML(self)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
36 self.writeDTD('<!DOCTYPE Templates SYSTEM "Templates-{0}.dtd">'.format(
412
569efd7f2716 Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
37 templatesFileFormatVersion))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 # add some generation comments
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
40 self.writeComment(" eric5 templates file ")
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
41 self.writeComment(" Saved: {0} ".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
42 ## self._write("<!-- eric5 templates file -->")
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
43 ## self._write("<!-- Saved: {0} -->".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 # add the main tag
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
46 self.writeStartElement("Templates")
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
47 self.writeAttribute("version", templatesFileFormatVersion)
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
48 ## self._write('<Templates version="{0}">'.format(templatesFileFormatVersion))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 # do the template groups
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 groups = self.templatesViewer.getAllGroups()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 for group in groups:
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
53 self.writeStartElement("TemplateGroup")
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
54 self.writeAttribute("name", group.getName())
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
55 self.writeAttribute("language", group.getLanguage())
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
56 ## self._write(' <TemplateGroup name="{0}" language="{1}">'.format(
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
57 ## group.getName(), group.getLanguage()))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 # do the templates
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 templates = group.getAllEntries()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 for template in templates:
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
61 self.writeStartElement("Template")
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
62 self.writeAttribute("name", template.getName())
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
63 self.writeTextElement("TemplateDescription", template.getDescription())
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
64 self.writeTextElement("TemplateText", template.getTemplateText())
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
65 self.writeEndElement()
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
66 self.writeEndElement()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67
584
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
68 self.writeEndElement()
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
69 self.writeEndDocument()
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
70 ## self._write(' <Template name="{0}">'.format(
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
71 ## self.escape(template.getName(), True)))
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
72 ## self._write(' <TemplateDescription>{0}</TemplateDescription>'.format(
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
73 ## self.escape("{0}".format(template.getDescription()))))
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
74 ## self._write(' <TemplateText>{0}</TemplateText>'.format(
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
75 ## self.escape("{0}".format(template.getTemplateText()))))
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
76 ## self._write(' </Template>')
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
77 ## self._write(' </TemplateGroup>')
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
78 ##
b5d4c116952a Migrated the templates writer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
79 ## self._write('</Templates>', newline = False)

eric ide

mercurial