wizards/com/sun/star/wizards/common/TextElement.py | 41 +++++++++++ wizards/com/sun/star/wizards/fax/CallWizard.py | 1 wizards/com/sun/star/wizards/fax/FaxDocument.py | 9 +- wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py | 34 ++++++++- wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py | 31 +++++++- 5 files changed, 106 insertions(+), 10 deletions(-)
New commits: commit 74e4137cf89d3e1e8b73853702636e3ff70a3b4e Author: Xisco Fauli <aniste...@gmail.com> Date: Thu Sep 27 22:12:21 2012 +0200 pyfax: Translate the template at run-time Change-Id: Ied94eaeb33dcfab582ac1d4702b736cf81c5d7ca diff --git a/wizards/com/sun/star/wizards/common/TextElement.py b/wizards/com/sun/star/wizards/common/TextElement.py new file mode 100644 index 0000000..f035808 --- /dev/null +++ b/wizards/com/sun/star/wizards/common/TextElement.py @@ -0,0 +1,41 @@ +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This file incorporates work covered by the following license notice: +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed +# with this work for additional information regarding copyright +# ownership. The ASF licenses this file to you under the Apache +# License, Version 2.0 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.apache.org/licenses/LICENSE-2.0 . +# +import traceback +from .Helper import Helper +from com.sun.star.text.PlaceholderType import TEXT + +class TextElement(object): + + def __init__(self, item, placeHolderText, hint, xmsf): + self.item = item + self.placeHolderText = placeHolderText + self.xmsf = xmsf + self.paraStyle = Helper.getUnoPropertyValue( + item.Start, "ParaStyleName") + + def write(self): + try: + if self.item is not None: + self.item.String = "" + cursor = self.item.Text.createTextCursorByRange( + self.item.Start) + cursor.String = self.placeHolderText + Helper.setUnoPropertyValue( + cursor, "ParaStyleName", self.paraStyle) + except Exception, e: + traceback.print_exc() diff --git a/wizards/com/sun/star/wizards/fax/CallWizard.py b/wizards/com/sun/star/wizards/fax/CallWizard.py index 427a703..8ef1d24 100644 --- a/wizards/com/sun/star/wizards/fax/CallWizard.py +++ b/wizards/com/sun/star/wizards/fax/CallWizard.py @@ -30,7 +30,6 @@ class CallWizard(unohelper.Base, XJobExecutor): self.ctx = ctx def trigger(self, args): - print "hello" try: fw = FaxWizardDialogImpl(self.ctx.ServiceManager) fw.startWizard(self.ctx.ServiceManager) diff --git a/wizards/com/sun/star/wizards/fax/FaxDocument.py b/wizards/com/sun/star/wizards/fax/FaxDocument.py index 95072de..f86a3f5 100644 --- a/wizards/com/sun/star/wizards/fax/FaxDocument.py +++ b/wizards/com/sun/star/wizards/fax/FaxDocument.py @@ -15,9 +15,9 @@ # except in compliance with the License. You may obtain a copy of # the License at http://www.apache.org/licenses/LICENSE-2.0 . # - -from ..text.TextDocument import TextDocument, traceback, Helper,\ - TextFieldHandler, Configuration +from ..text.TextDocument import * + #TextDocument, traceback, Helper,\ + #TextFieldHandler, Configuration from ..text.TextSectionHandler import TextSectionHandler from ..common.PropertyNames import PropertyNames @@ -51,8 +51,8 @@ class FaxDocument(TextDocument): def switchFooter(self, sPageStyle, bState, bPageNumber, sText): if TextDocument.xTextDocument is not None: - TextDocument.xTextDocument.lockControllers() try: + TextDocument.xTextDocument.lockControllers() xPageStyleCollection = \ TextDocument.xTextDocument.StyleFamilies.getByName("PageStyles") xPageStyle = xPageStyleCollection.getByName(sPageStyle) @@ -84,6 +84,7 @@ class FaxDocument(TextDocument): TextDocument.xTextDocument.unlockControllers() except Exception: + TextDocument.xTextDocument.lockControllers() traceback.print_exc() def hasElement(self, sElement): diff --git a/wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py b/wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py index e008aeb..249c249 100644 --- a/wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py +++ b/wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py @@ -32,6 +32,7 @@ from ..common.NoValidPathException import NoValidPathException from ..common.HelpIds import HelpIds from ..common.FileAccess import FileAccess from ..common.Desktop import Desktop +from ..common.TextElement import TextElement from ..document.OfficeDocument import OfficeDocument from com.sun.star.awt.VclWindowPeerAttribute import YES_NO, DEF_NO @@ -67,15 +68,17 @@ class FaxWizardDialogImpl(FaxWizardDialog): @classmethod def main(self, args): - #only being called when starting wizard remotely + #Call the wizard remotely try: ConnectStr = \ "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext" xLocMSF = Desktop.connect(ConnectStr) lw = FaxWizardDialogImpl(xLocMSF) lw.startWizard(xLocMSF) - except Exception, e: - traceback.print_exc() + except Exception as e: + print ("Wizard failure exception " + str(type(e)) + + " message " + str(e) + " args " + str(e.args) + + traceback.format_exc()) def startWizard(self, xMSF): self.running = True @@ -232,6 +235,30 @@ class FaxWizardDialogImpl(FaxWizardDialog): except CloseVetoException, e: traceback.print_exc() + def drawConstants(self): + '''Localise the template''' + constRangeList = self.searchFillInItems(1) + + for i in xrange(constRangeList.Count): + item = constRangeList.getByIndex(i) + text = item.String.lower() + aux = TextElement(item, self.resources.dictConstants[text], + "hint", self.xMSF) + aux.write() + + def searchFillInItems(self, typeSearch): + sd = TextDocument.xTextDocument.createSearchDescriptor() + + if typeSearch == 0: + sd.setSearchString("<[^>]+>") + elif typeSearch == 1: + sd.setSearchString("#[^#]+#") + + sd.setPropertyValue("SearchRegularExpression", True) + sd.setPropertyValue("SearchWords", True) + + return TextDocument.xTextDocument.findAll(sd) + def insertRoadmap(self): self.addRoadmap() self.insertRoadMapItems( @@ -430,6 +457,7 @@ class FaxWizardDialogImpl(FaxWizardDialog): self.BusinessFiles[1][selectedItemPos], False) self.initializeElements() self.setElements() + self.drawConstants() def optPrivateFaxItemChanged(self): FaxWizardDialogImpl.lstBusinessStylePos = None diff --git a/wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py b/wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py index c057a5a..ef60232 100644 --- a/wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py +++ b/wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py @@ -25,6 +25,15 @@ class FaxWizardDialogResources(Resource): RID_FAXWIZARDSALUTATION_START = 3290 RID_FAXWIZARDROADMAP_START = 3300 RID_RID_COMMON_START = 500 + + resToPlaceHolder = "#to#" + resFromPlaceHolder = "#from#" + resFaxconstPlaceHolder = "#faxconst#" + resTelconstPlaceHolder = "#telconst#" + resEmailconstPlaceHolder = "#emailconst#" + resConsist1PlaceHolder = "#consist1#" + resConsist2PlaceHolder = "#consist2#" + resConsist3PlaceHolder = "#consist3#" def __init__(self, xmsf): @@ -40,8 +49,6 @@ class FaxWizardDialogResources(Resource): self.resFaxWizardDialog_title = self.getResText( FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 1) - self.resLabel9_value = self.getResText( - FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 2) self.resoptBusinessFax_value = self.getResText( FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 3) self.resoptPrivateFax_value = self.getResText( @@ -118,6 +125,26 @@ class FaxWizardDialogResources(Resource): FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 39) self.resLabel2_value = self.getResText( FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 40) + + #Create a Dictionary for the constants values. + self.dictConstants = { + FaxWizardDialogResources.resToPlaceHolder : self.getResText( + FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 41), + FaxWizardDialogResources.resFromPlaceHolder : self.getResText( + FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 42), + FaxWizardDialogResources.resFaxconstPlaceHolder : self.getResText( + FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 43), + FaxWizardDialogResources.resTelconstPlaceHolder : self.getResText( + FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 44), + FaxWizardDialogResources.resEmailconstPlaceHolder : self.getResText( + FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 45), + FaxWizardDialogResources.resConsist1PlaceHolder : self.getResText( + FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 46), + FaxWizardDialogResources.resConsist2PlaceHolder : self.getResText( + FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 47), + FaxWizardDialogResources.resConsist3PlaceHolder : self.getResText( + FaxWizardDialogResources.RID_FAXWIZARDDIALOG_START + 48)} + self.loadRoadmapResources() self.loadSalutationResources() self.loadGreetingResources() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits