def renderXML(self, style, previewMode=False): xml = "" mainDict = self.idevice.mainFieldSet.getRenderDictionary(self.mainElements, "", previewMode) # trim the feedback items from html space junk mainDict["correctoverlay"] = ExportMediaConverter.trimHTMLWhiteSpace(mainDict["correctoverlay"]) mainDict["wrongoverlay"] = ExportMediaConverter.trimHTMLWhiteSpace(mainDict["wrongoverlay"]) headFragment = self.idevice.mainFieldSet.applyFileTemplateToDict( mainDict, "sort_head_template.xml", previewMode ) xml += headFragment for sortableElement in self.sortableItemElements: sortableItemId = "sortmeitem" + sortableElement.id xml += "<item id='" + sortableItemId + "'>\n<![CDATA[" xml += sortableElement.renderPreview() xml += "]]></item>" footerFragment = self.idevice.mainFieldSet.applyFileTemplateToDict( mainDict, "sort_foot_template.xml", previewMode ) xml += footerFragment return xml
def renderXML(self, style): xml = "" previewMode = False mainDict = self.idevice.mainFieldSet.getRenderDictionary(self.mainElements, "", previewMode) xml += self.idevice.mainFieldSet.applyFileTemplateToDict(mainDict, \ "memmatch_template_head.xml", previewMode) mediaConverter = ExportMediaConverter.getInstance() if mediaConverter is not None: mainDict['feedbackpositive'] = mediaConverter.reprocessHTML(mainDict['feedbackpositive']) mainDict['feedbackpositive'] = ExportMediaConverter.trimHTMLWhiteSpace(mainDict['feedbackpositive']) mainDict['feedbacknegative'] = mediaConverter.reprocessHTML(mainDict['feedbacknegative']) mainDict['feedbacknegative'] = ExportMediaConverter.trimHTMLWhiteSpace(mainDict['feedbackpositive']) mediaConverter.resizeImg(XMLPage.currentOutputDir/mainDict['cellbackImg_imgsrc'], 50, 50, {}, {"resizemethod" : "stretch"}) mediaConverter.resizeImg(XMLPage.currentOutputDir/mainDict['coverImg_imgsrc'], 50, 50, {}, {"resizemethod" : "stretch"}) for memoryMatchElement in self.memoryMatchElements: thisObjDict = memoryMatchElement.field.mainFields.getRenderDictionary(\ memoryMatchElement.elements, "obj", previewMode) thisObjDict.update(mainDict) objElementFrag = memoryMatchElement.field.mainFields.applyFileTemplateToDict(\ thisObjDict, "memmatch_template_pairitems.xml", previewMode) xml += objElementFrag xml += self.idevice.mainFieldSet.applyFileTemplateToDict(mainDict, \ "memmatch_template_footer.xml", previewMode) return xml
def renderXML(self, style, previewMode=False): xml = "" mainDict = self.idevice.mainFieldSet.getRenderDictionary( self.mainElements, "", previewMode) #trim the feedback items from html space junk mainDict['correctoverlay'] = ExportMediaConverter.trimHTMLWhiteSpace( mainDict['correctoverlay']) mainDict['wrongoverlay'] = ExportMediaConverter.trimHTMLWhiteSpace( mainDict['wrongoverlay']) headFragment = self.idevice.mainFieldSet.applyFileTemplateToDict( mainDict, "sort_head_template.xml", previewMode) xml += headFragment for sortableElement in self.sortableItemElements: sortableItemId = "sortmeitem" + sortableElement.id xml += "<item id='" + sortableItemId + "'>\n<![CDATA[" xml += sortableElement.renderPreview() xml += "]]></item>" footerFragment = self.idevice.mainFieldSet.applyFileTemplateToDict( mainDict, "sort_foot_template.xml", previewMode) xml += footerFragment return xml
def renderXML(self, style): xml = "" previewMode = False mainDict = self.idevice.mainFieldSet.getRenderDictionary( self.mainElements, "", previewMode) xml += self.idevice.mainFieldSet.applyFileTemplateToDict(mainDict, \ "memmatch_template_head.xml", previewMode) mediaConverter = ExportMediaConverter.getInstance() if mediaConverter is not None: mainDict['feedbackpositive'] = mediaConverter.reprocessHTML( mainDict['feedbackpositive']) mainDict[ 'feedbackpositive'] = ExportMediaConverter.trimHTMLWhiteSpace( mainDict['feedbackpositive']) mainDict['feedbacknegative'] = mediaConverter.reprocessHTML( mainDict['feedbacknegative']) mainDict[ 'feedbacknegative'] = ExportMediaConverter.trimHTMLWhiteSpace( mainDict['feedbackpositive']) mediaConverter.resizeImg( XMLPage.currentOutputDir / mainDict['cellbackImg_imgsrc'], 50, 50, {}, {"resizemethod": "stretch"}) mediaConverter.resizeImg( XMLPage.currentOutputDir / mainDict['coverImg_imgsrc'], 50, 50, {}, {"resizemethod": "stretch"}) for memoryMatchElement in self.memoryMatchElements: thisObjDict = memoryMatchElement.field.mainFields.getRenderDictionary(\ memoryMatchElement.elements, "obj", previewMode) thisObjDict.update(mainDict) objElementFrag = memoryMatchElement.field.mainFields.applyFileTemplateToDict(\ thisObjDict, "memmatch_template_pairitems.xml", previewMode) xml += objElementFrag xml += self.idevice.mainFieldSet.applyFileTemplateToDict(mainDict, \ "memmatch_template_footer.xml", previewMode) return xml
def renderXML(self, style): xml = u"" mediaConverter = ExportMediaConverter.getInstance() width = mediaConverter.getProfileWidth() height = mediaConverter.getProfileHeight() if mediaConverter is not None: for imgElement in self.chanceImageElements: if imgElement.field.imageResource is not None: mediaConverter.resizeImg(XMLPage.currentOutputDir/imgElement.field.imageResource.storageName, \ width, height, {}, {"resizemethod" : "stretch"}) xml += "<idevice type='hangman' id='%s'>\n" % self.idevice.id xml += "<chanceimages>\n" for imgElement in self.chanceImageElements: if imgElement.field.imageResource is not None: xml += "<img src='%s'/>\n" % imgElement.field.imageResource.storageName xml += "</chanceimages>\n" xml += "<alphabet>%s</alphabet>\n" % self.alphabetElement.renderView() xml += "<wrongguessmessage><![CDATA[ %s ]]></wrongguessmessage>\n" % self.wrongGuessTextElement.renderView( ) xml += "<lostlevelmessage><![CDATA[ %s ]]></lostlevelmessage>\n" % self.lostLevelTextElement.renderView( ) xml += "<levelpassedmessage><![CDATA[ %s ]]></levelpassedmessage>\n" % self.levelPassedTextElement.renderView( ) xml += "<gamewonmessage><![CDATA[ %s ]]></gamewonmessage>\n" % self.gameWonTextElement.renderView( ) xml += "<words>" for wordIndex in range(0, len(self.wordElements)): word = self.wordElements[wordIndex] if word != "": xml += "<word>\n<hint>%(hint)s</hint>\n<answer>%(answer)s</answer>\n</word>\n" \ % {"answer" : word.renderView() , "hint" : self.hintElements[wordIndex].renderView()} xml += "</words>\n" xml += "</idevice>\n" return xml
def renderXML(self, style): xml = u"" mediaConverter = ExportMediaConverter.getInstance() width = mediaConverter.getProfileWidth() height = mediaConverter.getProfileHeight() if mediaConverter is not None: for imgElement in self.chanceImageElements: if imgElement.field.imageResource is not None: mediaConverter.resizeImg(XMLPage.currentOutputDir/imgElement.field.imageResource.storageName, \ width, height, {}, {"resizemethod" : "stretch"}) xml += "<idevice type='hangman' id='%s'>\n" % self.idevice.id xml += "<chanceimages>\n" for imgElement in self.chanceImageElements: if imgElement.field.imageResource is not None: xml += "<img src='%s'/>\n" % imgElement.field.imageResource.storageName xml += "</chanceimages>\n" xml += "<alphabet>%s</alphabet>\n" % self.alphabetElement.renderView() xml += "<wrongguessmessage><![CDATA[ %s ]]></wrongguessmessage>\n" % self.wrongGuessTextElement.renderView() xml += "<lostlevelmessage><![CDATA[ %s ]]></lostlevelmessage>\n" % self.lostLevelTextElement.renderView() xml += "<levelpassedmessage><![CDATA[ %s ]]></levelpassedmessage>\n" % self.levelPassedTextElement.renderView() xml += "<gamewonmessage><![CDATA[ %s ]]></gamewonmessage>\n" % self.gameWonTextElement.renderView() xml += "<words>" for wordIndex in range(0, len(self.wordElements)): word = self.wordElements[wordIndex] if word != "": xml += "<word>\n<hint>%(hint)s</hint>\n<answer>%(answer)s</answer>\n</word>\n" \ % {"answer" : word.renderView() , "hint" : self.hintElements[wordIndex].renderView()} xml += "</words>\n" xml += "</idevice>\n" return xml
def export(self, package): """ Export to XML files Cleans up the previous packages pages and performs the export TODO: Make output directory for each type of export media profile """ outputDir = self.filename #Command line option to override language for export if self.langOverride != None: package.dublinCore.language = self.langOverride #track the number of working idevices on a page #if 0 do not put page in TOC numDevicesByPage = {} #track idevices that dont really export nonDevices = [] #copy needed files if not outputDir.exists(): outputDir.mkdir() # #This is passed from the command line export # if self.forceMediaOnly == True: package.mxmlforcemediaonly = "true" """ Now go through the list of target media profiles and do the conversion for each one here. For now this will just go through and create them - will settle on the last one """ if package.mxmlprofilelist is None or package.mxmlprofilelist == "": package.mxmlprofilelist = "nokia" profileList = package.mxmlprofilelist.split(",") """ Go through all the profiles in the list - and make a directory if it not just 'default'. For each one make a exportmediaconverter and then go through the export routine """ for currentProfile in profileList: mediaConverter = None currentOutputDir = outputDir if currentProfile != "default": mediaConverter = ExportMediaConverter(currentProfile) mediaConverter.loadConfigVals() mediaConverter.setCurrentPackage(package) ExportMediaConverter.autoMediaOnly = package.mxmlforcemediaonly currentOutputDir = outputDir.joinpath(currentProfile) if not currentOutputDir.exists(): currentOutputDir.mkdir() ExportMediaConverter.setWorkingDir(currentOutputDir) self.copyFiles(package, currentOutputDir) self.pages = [XMLPage("index", 1, package.root)] self.generatePages(package.root, 1) uniquifyNames(self.pages) prevPage = None thisPage = self.pages[0] for nextPage in self.pages[1:]: pageDevCount = thisPage.save(currentOutputDir, prevPage, \ nextPage, self.pages, nonDevices) numDevicesByPage[thisPage.name] = pageDevCount prevPage = thisPage thisPage = nextPage pageDevCount = thisPage.save(currentOutputDir, prevPage, None, self.pages, nonDevices) numDevicesByPage[thisPage.name] = pageDevCount self._writeTOCXML(currentOutputDir, numDevicesByPage, nonDevices, package)
def export(self, package): """ Export to XML files Cleans up the previous packages pages and performs the export TODO: Make output directory for each type of export media profile """ outputDir = self.filename #Command line option to override language for export if self.langOverride != None: package.dublinCore.language = self.langOverride #track the number of working idevices on a page #if 0 do not put page in TOC numDevicesByPage = {} #track idevices that dont really export nonDevices = [] #copy needed files if not outputDir.exists(): outputDir.mkdir() # #This is passed from the command line export # if self.forceMediaOnly == True: package.mxmlforcemediaonly = "true" """ Now go through the list of target media profiles and do the conversion for each one here. For now this will just go through and create them - will settle on the last one """ if package.mxmlprofilelist is None or package.mxmlprofilelist == "": package.mxmlprofilelist = "nokia" profileList = package.mxmlprofilelist.split(",") """ Go through all the profiles in the list - and make a directory if it not just 'default'. For each one make a exportmediaconverter and then go through the export routine """ for currentProfile in profileList: mediaConverter = None currentOutputDir = outputDir if currentProfile != "default": mediaConverter = ExportMediaConverter(currentProfile) mediaConverter.loadConfigVals() mediaConverter.setCurrentPackage(package) ExportMediaConverter.autoMediaOnly = package.mxmlforcemediaonly currentOutputDir = outputDir.joinpath(currentProfile) if not currentOutputDir.exists(): currentOutputDir.mkdir() ExportMediaConverter.setWorkingDir(currentOutputDir) self.copyFiles(package, currentOutputDir) self.pages = [ XMLPage("index", 1, package.root) ] self.generatePages(package.root, 1) uniquifyNames(self.pages) prevPage = None thisPage = self.pages[0] for nextPage in self.pages[1:]: pageDevCount = thisPage.save(currentOutputDir, prevPage, \ nextPage, self.pages, nonDevices) numDevicesByPage[thisPage.name] = pageDevCount prevPage = thisPage thisPage = nextPage pageDevCount = thisPage.save(currentOutputDir, prevPage, None, self.pages, nonDevices) numDevicesByPage[thisPage.name] = pageDevCount self._writeTOCXML(currentOutputDir, numDevicesByPage, nonDevices, package)