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

PyWebWizard: Fixing bugs and implementation of mising features.

CGXX classes must use instance attributes, instead of static.

Change-Id: Ic76a37b6530e19f6ffcd5ccd995880b3a8741363
üst 0170bb1e
...@@ -18,4 +18,6 @@ ...@@ -18,4 +18,6 @@
from ...common.ConfigGroup import ConfigGroup from ...common.ConfigGroup import ConfigGroup
class CGArgument(ConfigGroup): class CGArgument(ConfigGroup):
cp_Value = str()
def __init__(self):
self.cp_Value = str()
...@@ -22,13 +22,13 @@ from .CGDocument import CGDocument ...@@ -22,13 +22,13 @@ from .CGDocument import CGDocument
class CGContent(ConfigGroup): class CGContent(ConfigGroup):
cp_Index = -1 def __init__(self):
dirName = str() self.cp_Index = -1
cp_Name = str() self.dirName = str()
cp_Description = str() self.cp_Name = str()
#COMMENTED self.cp_Description = str()
#cp_Contents = WebConfigSet(CGContent) self.cp_Documents = WebConfigSet(CGDocument)
cp_Documents = WebConfigSet(CGDocument()) self.cp_Contents = WebConfigSet(CGContent)
def createDOM(self, parent): def createDOM(self, parent):
myElement = XMLHelper.addElement( myElement = XMLHelper.addElement(
......
...@@ -19,21 +19,22 @@ from ...common.ConfigGroup import ConfigGroup ...@@ -19,21 +19,22 @@ from ...common.ConfigGroup import ConfigGroup
class CGDesign(ConfigGroup): class CGDesign(ConfigGroup):
cp_Layout = str() def __init__(self):
cp_Style = str() self.cp_Layout = str()
cp_BackgroundImage = str() self.cp_Style = str()
cp_IconSet = str() self.cp_BackgroundImage = str()
cp_DisplayTitle = bool() self.cp_IconSet = str()
cp_DisplayDescription = bool() self.cp_DisplayTitle = bool()
cp_DisplayAuthor = bool() self.cp_DisplayDescription = bool()
cp_DisplayCreateDate = bool() self.cp_DisplayAuthor = bool()
cp_DisplayUpdateDate = bool() self.cp_DisplayCreateDate = bool()
cp_DisplayFilename = bool() self.cp_DisplayUpdateDate = bool()
cp_DisplayFileFormat = bool() self.cp_DisplayFilename = bool()
cp_DisplayFormatIcon = bool() self.cp_DisplayFileFormat = bool()
cp_DisplayPages = bool() self.cp_DisplayFormatIcon = bool()
cp_DisplaySize = bool() self.cp_DisplayPages = bool()
cp_OptimizeDisplaySize = int() self.cp_DisplaySize = bool()
self.cp_OptimizeDisplaySize = int()
def createDOM(self, parent): def createDOM(self, parent):
return XMLHelper.addElement(parent, "design", (0,), (0,)) return XMLHelper.addElement(parent, "design", (0,), (0,))
......
...@@ -45,34 +45,38 @@ The same is valid for *description* and *author*. ...@@ -45,34 +45,38 @@ The same is valid for *description* and *author*.
''' '''
class CGDocument(ConfigGroup): class CGDocument(ConfigGroup):
cp_Exporter = None
cp_Index = -1
PAGE_TYPE_PAGE = 1 PAGE_TYPE_PAGE = 1
PAGE_TYPE_SLIDE = 2 PAGE_TYPE_SLIDE = 2
cp_Title = ""
cp_Description = "" def __init__(self, url = "", xmsf = None, task = None):
cp_URL = "" self.cp_URL = ""
cp_Author = "" self.cp_Exporter = None
localFilename = "" self.cp_Index = -1
urlFilename = "" self.cp_Title = ""
title = "" self.cp_Description = ""
description = "" self.cp_Author = ""
author = "" self.localFilename = ""
sizeBytes = -1 self.urlFilename = ""
pages = -1 self.title = ""
valid = False self.description = ""
appType = None self.author = ""
self.dirName = ""
def __init__(self, url = "", xmsf = None, Task = None): self.createdDate = None
self.updatedDate = None
self.sizeBytes = -1
self.pages = -1
self.valid = False
self.appType = ""
if (xmsf is None): if (xmsf is None):
return return
cp_URL = self.getSettings().getFileAccess(xmsf).getURL(url); self.cp_URL = self.getSettings().getFileAccess(xmsf).getURL(url)
if (task is None): if (task is None):
task = Task("", "", 5) task = Task("", "", 5)
self.validate(xmsf, task); self.validate(xmsf, task)
def getSettings(self): def getSettings(self):
return ConfigGroup.root return self.root
''' '''
the task will advance 5 times during validate. the task will advance 5 times during validate.
...@@ -82,15 +86,12 @@ class CGDocument(ConfigGroup): ...@@ -82,15 +86,12 @@ class CGDocument(ConfigGroup):
''' '''
def validate(self, xmsf, task): def validate(self, xmsf, task):
print ("WARNING !!! VALIDATING DOCUMENT ....") if not self.getSettings().getFileAccess(xmsf).exists(self.cp_URL, False):
if not self.root.getFileAccess(xmsf).exists(self.cp_URL, False):
raise FileNotFoundException ( raise FileNotFoundException (
"The given URL does not point to a file"); "The given URL does not point to a file")
if self.root.getFileAccess(xmsf).isDirectory(self.cp_URL): if self.getSettings().getFileAccess(xmsf).isDirectory(self.cp_URL):
raise IllegalArgumentException ( raise IllegalArgumentException ("The given URL points to a directory") #create a TypeDetection service
"The given URL points to a directory");
#create a TypeDetection service
self.mediaDescriptor = OfficeDocument.getFileMediaDecriptor( self.mediaDescriptor = OfficeDocument.getFileMediaDecriptor(
xmsf, self.cp_URL) xmsf, self.cp_URL)
...@@ -99,7 +100,7 @@ class CGDocument(ConfigGroup): ...@@ -99,7 +100,7 @@ class CGDocument(ConfigGroup):
self.analyzeFileType(self.mediaDescriptor) self.analyzeFileType(self.mediaDescriptor)
task.advance(True) task.advance(True)
#2 #2
path = self.root.getFileAccess(xmsf).getPath(self.cp_URL, "") path = self.getSettings().getFileAccess(xmsf).getPath(self.cp_URL, "")
self.localFilename = FileAccess.getFilename(path, separator) self.localFilename = FileAccess.getFilename(path, separator)
''' '''
if the type is a star office convertible document if the type is a star office convertible document
...@@ -118,7 +119,6 @@ class CGDocument(ConfigGroup): ...@@ -118,7 +119,6 @@ class CGDocument(ConfigGroup):
"MacroExecutionMode", NEVER_EXECUTE)) "MacroExecutionMode", NEVER_EXECUTE))
props.append(Properties.createProperty( props.append(Properties.createProperty(
"UpdateDocMode", NO_UPDATE)) "UpdateDocMode", NO_UPDATE))
print ("DEBUG !!! validate -- URL: ", self.cp_URL)
component = desktop.loadComponentFromURL( component = desktop.loadComponentFromURL(
self.cp_URL, "_default", 0, tuple(props)) self.cp_URL, "_default", 0, tuple(props))
xProps = component.DocumentProperties xProps = component.DocumentProperties
...@@ -127,41 +127,37 @@ class CGDocument(ConfigGroup): ...@@ -127,41 +127,37 @@ class CGDocument(ConfigGroup):
#4 #4
#now use the object to read some document properties. #now use the object to read some document properties.
if xProps is not None: if xProps is not None:
title = xProps.Title self.title = xProps.Title
description = xProps.Description self.description = xProps.Description
author = xProps.Author self.author = xProps.Author
createDate = xProps.CreationDate self.createdDate = xProps.CreationDate
updateDate = xProps.ModificationDate self.updatedDate = xProps.ModificationDate
else: else:
#get some information from OS. #get some information from OS.
title = self.localFilename self.title = self.localFilename
updateDate = \ self.updatedDate = \
self.getSettings().getFileAccess(xmsf).getLastModified(self.cp_URL) self.getSettings().getFileAccess(xmsf).getLastModified(self.cp_URL)
task.advance(True) task.advance(True)
#5 #5
valid = True valid = True
if self.cp_Title == "": if self.cp_Title == "":
cp_Title = self.title self.cp_Title = self.title
if self.cp_Title == "": if self.cp_Title == "":
cp_Title = self.localFilename self.cp_Title = self.localFilename
if self.cp_Description == "": if self.cp_Description == "":
cp_Description = self.description self.cp_Description = self.description
if self.cp_Author == "": if self.cp_Author == "":
cp_Author = self.author self.cp_Author = self.author
if self.cp_Exporter is None or self.cp_Exporter == "": if self.cp_Exporter is None or self.cp_Exporter == "":
print ("WARNING !!! settign exporter for key:", CGDocument.appType) exp = self.getSettings().getExporters(self.appType)
exp = self.root.getExporters(CGDocument.appType)
print ("WARNING !!! got N exporters:", len(exp))
print ("WARNING !!! got exporter:", exp[0])
self.cp_Exporter = \ self.cp_Exporter = \
self.root.cp_Exporters.getKey(exp[0]) self.getSettings().cp_Exporters.getKey(exp[0])
print ("WARNING !!! exporter: ", self.cp_Exporter)
''' '''
Analyzes a type-detection string, returned from the TypeDetection service, Analyzes a type-detection string, returned from the TypeDetection service,
...@@ -169,28 +165,18 @@ class CGDocument(ConfigGroup): ...@@ -169,28 +165,18 @@ class CGDocument(ConfigGroup):
''' '''
def analyzeFileType(self, mediaDesc): def analyzeFileType(self, mediaDesc):
print ("DEBUG !!! analyzeFileType -- mediaDesc : ", mediaDesc)
if mediaDesc is None: if mediaDesc is None:
media = "" media = ""
else: else:
media = Properties.getPropertyValue( media = Properties.getPropertyValue(
self.mediaDescriptor, PropertyNames.PROPERTY_NAME) self.mediaDescriptor, PropertyNames.PROPERTY_NAME)
CGDocument.appType = self.getDocType(media) self.appType = self.getDocType(media)
print ("DEBUG !!! analyzeFileType -- appType: ", CGDocument.appType) self.isSOOpenable = (self.appType == WRITER_DOC or self.appType == CALC_DOC or self.appType == IMPRESS_DOC or self.appType == DRAW_DOC) or self.appType == HTML_DOC
self.isSOOpenable = (CGDocument.appType == WRITER_DOC or CGDocument.appType == CALC_DOC or CGDocument.appType == IMPRESS_DOC or CGDocument.appType == DRAW_DOC) or CGDocument.appType == HTML_DOC
if (self.isSOOpenable):
print ("DEBUG !!! analyzeFileType -- isSOOpenable .")
else:
print ("DEBUG !!! analyzeFileType -- NOT isSOOpenable .")
parts = media.split("_") parts = media.split("_")
if len(parts) < 2: if len(parts) < 2:
self.isSODocument = False self.isSODocument = False
else: else:
self.isSODocument = self.isSOOpenable and (parts[1].startswith("Star")) self.isSODocument = self.isSOOpenable and (parts[1].startswith("Star"))
if (self.isSODocument):
print ("DEBUG !!! analyzeFileType -- isSODocument .")
else:
print ("DEBUG !!! analyzeFileType -- NOT isSODocument .")
''' '''
@param media is the media description string returned by an UNO TypeDetection object. @param media is the media description string returned by an UNO TypeDetection object.
...@@ -199,7 +185,6 @@ class CGDocument(ConfigGroup): ...@@ -199,7 +185,6 @@ class CGDocument(ConfigGroup):
''' '''
def getDocType(self, media): def getDocType(self, media):
print ("DEBUG !!! getDocType -- media: ", media)
if media == "": if media == "":
return NO_TYPE return NO_TYPE
elif media.startswith("generic_HTML"): elif media.startswith("generic_HTML"):
...@@ -229,16 +214,16 @@ class CGDocument(ConfigGroup): ...@@ -229,16 +214,16 @@ class CGDocument(ConfigGroup):
d.cp_DisplayFormatIcon ? getIcon(exp) : "", self.dirName, self.urlFilename])''' d.cp_DisplayFormatIcon ? getIcon(exp) : "", self.dirName, self.urlFilename])'''
def updateDate(self): def updateDate(self):
if self.updateDate is None: if self.updatedDate is None:
return "" return ""
return self.getSettings().formatter.formatCreated(self.updateDate) return self.getSettings().formatter.formatCreated(self.updatedDate)
def createDate(self): def createDate(self):
if self.createDate is None: if self.createdDate is None:
return "" return ""
return self.getSettings().formatter.formatCreated(self.createDate) return self.getSettings().formatter.formatCreated(self.createdDate)
def sizeKB(self): def sizeKB(self):
if self.sizeBytes == -1: if self.sizeBytes == -1:
...@@ -246,11 +231,11 @@ class CGDocument(ConfigGroup): ...@@ -246,11 +231,11 @@ class CGDocument(ConfigGroup):
else: else:
return self.getSettings().formatter.formatFileSize(self.sizeBytes) return self.getSettings().formatter.formatFileSize(self.sizeBytes)
def pages(self): def getPages(self):
if self.pages == -1: if self.pages == -1:
return "" return ""
else: else:
return pagesTemplate().replace("%NUMBER", "" + self.pages) return self.pagesTemplate().replace("%NUMBER", "" + self.pages)
def pagesTemplate(self): def pagesTemplate(self):
pagesType = \ pagesType = \
...@@ -272,11 +257,11 @@ class CGDocument(ConfigGroup): ...@@ -272,11 +257,11 @@ class CGDocument(ConfigGroup):
def getIcon(self, exporter): def getIcon(self, exporter):
if exporter.cp_Icon == "": if exporter.cp_Icon == "":
return getIcon(CGDocument.appType) return self.getIcon1(self.appType)
else: else:
return exporter.cp_Icon return exporter.cp_Icon
def getIcon(self, appType): def getIcon1(self, appType):
return appType + ".gif" return appType + ".gif"
''' '''
...@@ -295,7 +280,7 @@ class CGDocument(ConfigGroup): ...@@ -295,7 +280,7 @@ class CGDocument(ConfigGroup):
''' '''
def setExporter(self, exporter_): def setExporter(self, exporter_):
exp = self.getSettings().getExporters(CGDocument.appType)[exporter_[0]] exp = self.getSettings().getExporters(self.appType)[exporter_[0]]
self.cp_Exporter = self.getSettings().cp_Exporters.getKey(exp) self.cp_Exporter = self.getSettings().cp_Exporters.getKey(exp)
''' '''
...@@ -308,7 +293,7 @@ class CGDocument(ConfigGroup): ...@@ -308,7 +293,7 @@ class CGDocument(ConfigGroup):
return 0 return 0
exporter = self.getSettings().cp_Exporters.getElement(self.cp_Exporter) exporter = self.getSettings().cp_Exporters.getElement(self.cp_Exporter)
exporters = self.getSettings().getExporters(CGDocument.appType) exporters = self.getSettings().getExporters(self.appType)
i = 0 i = 0
while i < len(exporters): while i < len(exporters):
if exporters[i] == exporter: if exporters[i] == exporter:
...@@ -316,3 +301,6 @@ class CGDocument(ConfigGroup): ...@@ -316,3 +301,6 @@ class CGDocument(ConfigGroup):
i += 1 i += 1
return -1 return -1
def toString(self):
return self.localFilename
...@@ -20,21 +20,26 @@ from ...common.ConfigGroup import ConfigGroup ...@@ -20,21 +20,26 @@ from ...common.ConfigGroup import ConfigGroup
from .CGArgument import CGArgument from .CGArgument import CGArgument
class CGExporter(ConfigGroup): class CGExporter(ConfigGroup):
cp_Index = -1
cp_Name = str() def __init__(self):
cp_ExporterClass = str() self.cp_Index = -1
cp_OwnDirectory = bool() self.cp_Name = str()
cp_SupportsFilename = bool() self.cp_ExporterClass = str()
cp_DefaultFilename = str() self.cp_OwnDirectory = bool()
cp_Extension = str() self.cp_SupportsFilename = bool()
cp_SupportedMimeTypes = str() self.cp_DefaultFilename = str()
cp_Icon = str() self.cp_Extension = str()
cp_TargetType = str() self.cp_SupportedMimeTypes = str()
cp_Binary = bool() self.cp_Icon = str()
cp_PageType = int() self.cp_TargetType = str()
targetTypeName = "" self.cp_Binary = bool()
cp_Arguments = WebConfigSet(CGArgument) self.cp_PageType = int()
self.targetTypeName = ""
self.cp_Arguments = WebConfigSet(CGArgument)
def toString(self):
return self.cp_Name
def supports(self, mime): def supports(self, mime):
return CGExporter.cp_SupportedMimeTypes == "" or \ return self.cp_SupportedMimeTypes == "" or \
CGExporter.cp_SupportedMimeTypes.find(mime) > -1 self.cp_SupportedMimeTypes.find(mime) > -1
...@@ -20,13 +20,14 @@ from ...common.XMLHelper import XMLHelper ...@@ -20,13 +20,14 @@ from ...common.XMLHelper import XMLHelper
class CGGeneralInfo(ConfigGroup): class CGGeneralInfo(ConfigGroup):
cp_Title = str() def __init__(self):
cp_Description = str() self.cp_Title = str()
cp_Author = str() self.cp_Description = str()
cp_CreationDate = int() self.cp_Author = str()
cp_UpdateDate = int() self.cp_CreationDate = int()
cp_Email = str() self.cp_UpdateDate = int()
cp_Copyright = str() self.cp_Email = str()
self.cp_Copyright = str()
def createDOM(self, parent): def createDOM(self, parent):
return XMLHelper.addElement( return XMLHelper.addElement(
......
...@@ -18,7 +18,9 @@ ...@@ -18,7 +18,9 @@
from ...common.ConfigGroup import ConfigGroup from ...common.ConfigGroup import ConfigGroup
class CGIconSet(ConfigGroup): class CGIconSet(ConfigGroup):
cp_Index = -1
cp_FNPrefix = str() def __init__(self):
cp_FNPostfix = str() self.cp_Index = -1
cp_Name = str() self.cp_FNPrefix = str()
self.cp_FNPostfix = str()
self.cp_Name = str()
...@@ -21,9 +21,10 @@ from ...ui.UIConsts import UIConsts ...@@ -21,9 +21,10 @@ from ...ui.UIConsts import UIConsts
class CGLayout(ConfigGroup): class CGLayout(ConfigGroup):
cp_Index = -1 def __init__(self):
cp_Name = str() self.cp_Index = -1
cp_FSName = str() self.cp_Name = str()
self.cp_FSName = str()
def getSettings(self): def getSettings(self):
return self.root return self.root
......
...@@ -26,28 +26,24 @@ through such a CGPublish object. ...@@ -26,28 +26,24 @@ through such a CGPublish object.
class CGPublish(ConfigGroup): class CGPublish(ConfigGroup):
cp_Publish = bool() def __init__(self):
cp_URL = str() self.cp_Publish = bool()
cp_Username = str() self.cp_URL = str()
password = str() self.cp_Username = str()
overwriteApproved = bool() self.password = str()
url = str() self.overwriteApproved = bool()
self.url = str()
def setURL(self, path): def setURL(self, path):
try: try:
self.cp_URL = (self.root).getFileAccess().getURL(path) self.cp_URL = self.root.getFileAccess().getURL(path)
self.overwriteApproved = False self.overwriteApproved = False
except Exception as ex: except Exception as ex:
ex.printStackTrace() ex.printStackTrace()
def getURL(self): def getURL(self):
try: try:
return (self.root).getFileAccess().getPath(self.cp_URL, None) return self.root.getFileAccess().getPath(self.cp_URL, None)
except Exception as e: except Exception as e:
e.printStackTrace() e.printStackTrace()
return "" return ""
def ftpURL(self):
pass
#COMMENTED
#return "ftp://" + self.cp_Username + ((self.password != None and self.password.length() > 0) ? ":" + self.password : "") + "@" + self.cp_URL.substring(7)
...@@ -29,15 +29,16 @@ from xml.dom.minidom import Document ...@@ -29,15 +29,16 @@ from xml.dom.minidom import Document
class CGSession(ConfigGroup): class CGSession(ConfigGroup):
cp_Index = -1 def __init__(self):
cp_InDirectory = str() self.cp_Index = -1
cp_OutDirectory = str() self.cp_InDirectory = str()
cp_Name = str() self.cp_OutDirectory = str()
cp_Content = CGContent() self.cp_Name = str()
cp_Design = CGDesign() self.cp_Content = CGContent()
cp_GeneralInfo = CGGeneralInfo() self.cp_Design = CGDesign()
cp_Publishing = WebConfigSet(CGPublish) self.cp_GeneralInfo = CGGeneralInfo()
valid = False self.cp_Publishing = WebConfigSet(CGPublish)
self.valid = False
def createDOM(self, parent): def createDOM(self, parent):
root = XMLHelper.addElement( root = XMLHelper.addElement(
......
...@@ -18,5 +18,10 @@ ...@@ -18,5 +18,10 @@
from ...common.ConfigGroup import ConfigGroup from ...common.ConfigGroup import ConfigGroup
class CGSessionName(ConfigGroup): class CGSessionName(ConfigGroup):
cp_Index = -1
cp_Name = str() def __init__(self):
self.cp_Index = -1
self.cp_Name = str()
def toString(self):
return self.cp_Name
...@@ -35,6 +35,7 @@ from .CGSession import CGSession ...@@ -35,6 +35,7 @@ from .CGSession import CGSession
from com.sun.star.i18n.NumberFormatIndex import DATE_SYS_DMMMYYYY from com.sun.star.i18n.NumberFormatIndex import DATE_SYS_DMMMYYYY
from com.sun.star.i18n.NumberFormatIndex import NUMBER_1000DEC2 from com.sun.star.i18n.NumberFormatIndex import NUMBER_1000DEC2
from com.sun.star.util import DateTime
class CGSettings(ConfigGroup): class CGSettings(ConfigGroup):
...@@ -44,28 +45,27 @@ class CGSettings(ConfigGroup): ...@@ -44,28 +45,27 @@ class CGSettings(ConfigGroup):
RESOURCE_UPDATED_TEMPLATE = 3 RESOURCE_UPDATED_TEMPLATE = 3
RESOURCE_SIZE_TEMPLATE = 4 RESOURCE_SIZE_TEMPLATE = 4
cp_WorkDir = str()
cp_Exporters = WebConfigSet(CGExporter)
cp_Layouts = WebConfigSet(CGLayout)
cp_Styles = WebConfigSet(CGStyle)
cp_IconSets = WebConfigSet(CGIconSet)
cp_BackgroundImages = WebConfigSet(CGImage)
cp_SavedSessions = WebConfigSet(CGSessionName)
cp_Filters = WebConfigSet(CGFilter)
savedSessions = WebConfigSet(CGSessionName)
cp_DefaultSession = CGSession()
cp_LastSavedSession = str()
fileAccess = None
def __init__(self, xmsf_, resources_, document): def __init__(self, xmsf_, resources_, document):
self.cp_WorkDir = str()
self.cp_Exporters = WebConfigSet(CGExporter)
self.cp_Layouts = WebConfigSet(CGLayout)
self.cp_Styles = WebConfigSet(CGStyle)
self.cp_IconSets = WebConfigSet(CGIconSet)
self.cp_BackgroundImages = WebConfigSet(CGImage)
self.cp_SavedSessions = WebConfigSet(CGSessionName)
self.cp_Filters = WebConfigSet(CGFilter)
self.savedSessions = WebConfigSet(CGSessionName)
self.cp_DefaultSession = CGSession()
self.cp_LastSavedSession = str()
self.fileAccess = None
self.workPath = None
self.xmsf = xmsf_ self.xmsf = xmsf_
try: try:
self.soTemplateDir = FileAccess.getOfficePath2(self.xmsf, "Config", "", ""); self.soTemplateDir = FileAccess.getOfficePath2(self.xmsf, "Config", "", "");
self.soGalleryDir = FileAccess.getOfficePath2(self.xmsf, "Gallery", "share", ""); self.soGalleryDir = FileAccess.getOfficePath2(self.xmsf, "Gallery", "share", "");
ConfigGroup.root = self self.setRoot(self)
self.formatter = self.Formatter(self.xmsf, document) self.formatter = self.Formatter(self.xmsf, document, resources_)
self.resources = resources_ self.resources = resources_
self.workPath = None
self.exportersMap = {} self.exportersMap = {}
except Exception: except Exception:
traceback.print_exc() traceback.print_exc()
...@@ -75,21 +75,17 @@ class CGSettings(ConfigGroup): ...@@ -75,21 +75,17 @@ class CGSettings(ConfigGroup):
if exps is None: if exps is None:
exps = self.createExporters(mime) exps = self.createExporters(mime)
self.exportersMap[mime] = exps self.exportersMap[mime] = exps
return exps return exps
def createExporters(self, mime): def createExporters(self, mime):
exporters = self.cp_Exporters.childrenList exporters = self.cp_Exporters.childrenList
v = [] v = []
for i in exporters: for i in exporters:
if i is not None: if i.supports(mime):
if i.supports(mime): try:
try: v.append(i)
v.append(i) except Exception:
except Exception: traceback.print_exc()
traceback.print_exc()
else:
print ("DEBUG !!! Exporter is None")
return v return v
''' '''
...@@ -99,37 +95,28 @@ class CGSettings(ConfigGroup): ...@@ -99,37 +95,28 @@ class CGSettings(ConfigGroup):
''' '''
def configure(self, xmsf): def configure(self, xmsf):
self.workPath = FileAccess.connectURLs( self.workPath = FileAccess.connectURLs(self.soTemplateDir, self.cp_WorkDir)
self.soTemplateDir, self.cp_WorkDir)
#COMMENTED
self.calcExportersTargetTypeNames(xmsf) self.calcExportersTargetTypeNames(xmsf)
def calcExportersTargetTypeNames(self, xmsf): def calcExportersTargetTypeNames(self, xmsf):
typeDetect = xmsf.createInstance( typeDetect = xmsf.createInstance("com.sun.star.document.TypeDetection")
"com.sun.star.document.TypeDetection")
for i in range(self.cp_Exporters.getSize()): for i in range(self.cp_Exporters.getSize()):
self.calcExporterTargetTypeName( self.calcExporterTargetTypeName(typeDetect, self.cp_Exporters.getElementAt(i))
typeDetect, self.cp_Exporters.getElementAt(i))
def calcExporterTargetTypeName(self, typeDetect, exporter): def calcExporterTargetTypeName(self, typeDetect, exporter):
if (exporter is None): if (exporter is None):
print ("WARNING !!!! calcExporterTargetTypeName - received None as exporter argument.")
return return
print ("WARNING !!!! calcExporterTargetTypeName - targetType: ", exporter.cp_TargetType)
if not (exporter.cp_TargetType == "" or exporter.cp_TargetType is None): if not (exporter.cp_TargetType == "" or exporter.cp_TargetType is None):
targetTypeName = Properties.getPropertyValue( targetTypeName = Properties.getPropertyValue(
typeDetect.getByName(exporter.cp_TargetType), "UIName") typeDetect.getByName(exporter.cp_TargetType), "UIName")
print ("WARNING !!!! calcExporterTargetTypeName - targetTypeName: ", targetTypeName)
exporter.cp_targetTypeName = targetTypeName exporter.cp_targetTypeName = targetTypeName
@classmethod
def getFileAccess(self, xmsf = None): def getFileAccess(self, xmsf = None):
if xmsf is None: if xmsf is None:
xmsf = self.xmsf xmsf = self.xmsf
if CGSettings.fileAccess is None: if self.fileAccess is None:
CGSettings.fileAccess = FileAccess(xmsf) self.fileAccess = FileAccess(xmsf)
return self.fileAccess
return CGSettings.fileAccess
class Formatter(object): class Formatter(object):
class DateUtils(object): class DateUtils(object):
...@@ -145,35 +132,40 @@ class CGSettings(ConfigGroup): ...@@ -145,35 +132,40 @@ class CGSettings(ConfigGroup):
@param format a constant of the enumeration NumberFormatIndex @param format a constant of the enumeration NumberFormatIndex
@return @return
''' '''
def getFormat(self, format): def getFormat(self, f):
return NumberFormatter.getNumberFormatterKey(self.formatSupplier, format) return NumberFormatter.getNumberFormatterKey(self.formatSupplier, f)
''' '''
@param date a VCL date in form of 20041231 @param date a VCL date in form of 20041231
@return a document relative date @return a document relative date
''' '''
def format(self, formatIndex, date): def format(self, formatIndex, date):
difference = date - self.calendar dateTime = dateTimeObject(date.Year, date.Month, date.Day)
difference = dateTime - self.calendar
return self.formatter.convertNumberToString(formatIndex, difference.days) return self.formatter.convertNumberToString(formatIndex, difference.days)
def __init__(self, xmsf, document): def getFormatter(self):
return self.formatter
def __init__(self, xmsf, document, resources):
self.dateUtils = self.DateUtils(xmsf, document) self.dateUtils = self.DateUtils(xmsf, document)
self.dateFormat = self.dateUtils.getFormat(DATE_SYS_DMMMYYYY) self.dateFormat = self.dateUtils.getFormat(DATE_SYS_DMMMYYYY)
self.numberFormat = self.dateUtils.getFormat(NUMBER_1000DEC2) self.numberFormat = self.dateUtils.getFormat(NUMBER_1000DEC2)
self.resources = resources
def formatCreated(self, date): def formatCreated(self, date):
sDate = self.dateUtils.format(dateFormat, date) sDate = self.dateUtils.format(self.dateFormat, date)
return resources[CGSettings.RESOURCE_CREATED_TEMPLATE].replace( return self.resources[CGSettings.RESOURCE_CREATED_TEMPLATE].replace(
"%DATE", sDate) "%DATE", sDate)
def formatUpdated(self, date): def formatUpdated(self, date):
sDate = self.dateUtils.format(dateFormat, date); sDate = self.dateUtils.format(self.dateFormat, date);
return resources[CGSettings.RESOURCE_UPDATED_TEMPLATE].replace( return self.resources[CGSettings.RESOURCE_UPDATED_TEMPLATE].replace(
"%DATE", sDate) "%DATE", sDate)
def formatFileSize(self, size): def formatFileSize(self, size):
sizeInKB = size / float(1024) sizeInKB = size / float(1024)
sSize = self.dateUtils.getFormatter().convertNumberToString( sSize = self.dateUtils.getFormatter().convertNumberToString(
numberFormat, sizeInKB) self.numberFormat, sizeInKB)
return resources[CGSettings.RESOURCE_SIZE_TEMPLATE].replace( return self.resources[CGSettings.RESOURCE_SIZE_TEMPLATE].replace(
"%NUMBER", sSize) "%NUMBER", sSize)
...@@ -24,6 +24,9 @@ class CGStyle(ConfigGroup): ...@@ -24,6 +24,9 @@ class CGStyle(ConfigGroup):
cp_BackgroundImage = str() cp_BackgroundImage = str()
cp_IconSet = str() cp_IconSet = str()
def toString(self):
return self.cp_Name
def getBackgroundUrl(self): def getBackgroundUrl(self):
if CGStyle.cp_BackgroundImage is None \ if CGStyle.cp_BackgroundImage is None \
or CGStyle.cp_BackgroundImage == "": or CGStyle.cp_BackgroundImage == "":
......
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