Kaydet (Commit) 9c54d77f authored tarafından Javier Fernandez's avatar Javier Fernandez

PyWebWizard: Fixing bugs and implementation of mising features.

Using the com.sun.star.xml.dom.DocumentBuilder service to create the DOM.

Change-Id: I71232dda112f7049b901c3495d024334503e078d
üst ccd34249
...@@ -19,8 +19,8 @@ class XMLHelper: ...@@ -19,8 +19,8 @@ class XMLHelper:
@classmethod @classmethod
def addElement(self, parent, name, attNames, attValues): def addElement(self, parent, name, attNames, attValues):
doc = parent.ownerDocument doc = parent.getOwnerDocument()
if (doc == None): if (doc is None):
doc = parent doc = parent
e = doc.createElement(name) e = doc.createElement(name)
for i in range(len(attNames)): for i in range(len(attNames)):
......
...@@ -23,6 +23,7 @@ from ...document.OfficeDocument import OfficeDocument ...@@ -23,6 +23,7 @@ from ...document.OfficeDocument import OfficeDocument
from ...common.Properties import Properties from ...common.Properties import Properties
from ...common.PropertyNames import PropertyNames from ...common.PropertyNames import PropertyNames
from ...common.FileAccess import FileAccess from ...common.FileAccess import FileAccess
from ...common.XMLHelper import XMLHelper
from ..TypeDetection import * from ..TypeDetection import *
from ...common.Desktop import Desktop from ...common.Desktop import Desktop
...@@ -209,9 +210,21 @@ class CGDocument(ConfigGroup): ...@@ -209,9 +210,21 @@ class CGDocument(ConfigGroup):
def createDOM(self, parent): def createDOM(self, parent):
d = self.getSettings().cp_DefaultSession.cp_Design d = self.getSettings().cp_DefaultSession.cp_Design
exp = self.getSettings().cp_Exporters.getElement(self.cp_Exporter) exp = self.getSettings().cp_Exporters.getElement(self.cp_Exporter)
'''return XMLHelper.addElement(parent, "document", ["title", "description", "author", "format", "filename", "create-date", "update-date", "pages", "size", "icon", "dir", "fn"], [d.cp_DisplayTitle ? self.cp_Title : "", d.cp_DisplayDescription ? self.cp_Description : "", d.cp_DisplayAuthor ? self.cp_Author : "", d.cp_DisplayFileFormat ? getTargetTypeName(exp) : "", d.cp_DisplayFilename ? self.localFilename : "", d.cp_DisplayCreateDate ? self.createDate() : "", d.cp_DisplayUpdateDate ? self.updateDate() : "", d.cp_DisplayPages and (self.pages > -1) ? "" + self.pages() : "", #TODO when do i calculate pages? return XMLHelper.addElement(parent, "document",
d.cp_DisplaySize ? sizeKB() : "", #TODO when do i calculate size? ["title", "description", "author", "format", "filename",
d.cp_DisplayFormatIcon ? getIcon(exp) : "", self.dirName, self.urlFilename])''' "create-date", "update-date", "pages", "size", "icon",
"dir", "fn"],
[self.cp_Title if (d.cp_DisplayTitle) else "",
self.cp_Description if (d.cp_DisplayDescription) else "",
self.cp_Author if (d.cp_DisplayAuthor) else "",
self.getTargetTypeName(exp) if (d.cp_DisplayFileFormat) else "",
self.localFilename if (d.cp_DisplayFilename) else "",
self.createDate() if (d.cp_DisplayCreateDate) else "",
self.updateDate() if (d.cp_DisplayUpdateDate) else "",
"" + self.getPages() if (d.cp_DisplayPages and (self.pages > -1)) else "", #TODO when do i calculate pages?
self.sizeKB() if (d.cp_DisplaySize) else "", #TODO when do i calculate size?
self.getIcon(exp) if (d.cp_DisplayFormatIcon) else "",
self.dirName, self.urlFilename])
def updateDate(self): def updateDate(self):
if self.updatedDate is None: if self.updatedDate is None:
......
...@@ -25,7 +25,7 @@ from .CGDesign import CGDesign ...@@ -25,7 +25,7 @@ from .CGDesign import CGDesign
from .CGGeneralInfo import CGGeneralInfo from .CGGeneralInfo import CGGeneralInfo
from .CGPublish import CGPublish from .CGPublish import CGPublish
from xml.dom.minidom import Document from com.sun.star.beans import StringPair
class CGSession(ConfigGroup): class CGSession(ConfigGroup):
...@@ -40,14 +40,27 @@ class CGSession(ConfigGroup): ...@@ -40,14 +40,27 @@ class CGSession(ConfigGroup):
self.cp_Publishing = WebConfigSet(CGPublish) self.cp_Publishing = WebConfigSet(CGPublish)
self.valid = False self.valid = False
def createDOM(self, parent): def createDOM(self, doc):
root = XMLHelper.addElement( root = XMLHelper.addElement(doc, "session",
parent, "session", ["name", "screen-size"], ["name", "screen-size"],
[self.cp_Name, self.getScreenSize()]) [self.cp_Name, self.getScreenSize()])
self.cp_GeneralInfo.createDOM(root) self.cp_GeneralInfo.createDOM(root)
self.cp_Content.createDOM(root) self.cp_Content.createDOM(root)
return root return root
def serializeNode(self, node):
xBuffer = self.root.xmsf.createInstance("com.sun.star.io.Pipe")
xTextInputStream = self.root.xmsf.createInstance("com.sun.star.io.TextInputStream")
xSaxWriter = self.root.xmsf.createInstance( "com.sun.star.xml.sax.Writer" )
xSaxWriter.setOutputStream(xBuffer)
xTextInputStream.setInputStream(xBuffer)
node.serialize(xSaxWriter, tuple([StringPair()]))
result = ""
while (not xTextInputStream.isEOF()):
sLine = xTextInputStream.readLine()
if (not sLine == "") and (not sLine.startswith("<?xml")):
result = result + sLine + "\n"
def getScreenSize(self): def getScreenSize(self):
tmp_switch_var1 = self.cp_Design.cp_OptimizeDisplaySize tmp_switch_var1 = self.cp_Design.cp_OptimizeDisplaySize
if tmp_switch_var1 == 0: if tmp_switch_var1 == 0:
...@@ -66,6 +79,7 @@ class CGSession(ConfigGroup): ...@@ -66,6 +79,7 @@ class CGSession(ConfigGroup):
return self.root.cp_Styles.getElement(self.cp_Design.cp_Style) return self.root.cp_Styles.getElement(self.cp_Design.cp_Style)
def createDOM1(self): def createDOM1(self):
doc = Document() factory = self.root.xmsf.createInstance("com.sun.star.xml.dom.DocumentBuilder")
doc = factory.newDocument()
self.createDOM(doc) self.createDOM(doc)
return doc return doc
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment