summaryrefslogtreecommitdiff
path: root/wizards
diff options
context:
space:
mode:
authorXisco Fauli <anistenis@gmail.com>2011-06-18 15:45:57 +0200
committerXisco Fauli <anistenis@gmail.com>2011-06-18 15:45:57 +0200
commit668463395be0fbf5acd18806ef56f54ecd9ed3b3 (patch)
tree51aae5f1d2274c1ebd6e661702611d5f80d5b1d3 /wizards
parent7b7a3f5143260b69202ede557975b9ef1cd59f8a (diff)
Set current data to the file
Diffstat (limited to 'wizards')
-rw-r--r--wizards/com/sun/star/wizards/common/Helper.py63
-rw-r--r--wizards/com/sun/star/wizards/common/NumberFormatter.py232
-rw-r--r--wizards/com/sun/star/wizards/text/TextDocument.py32
3 files changed, 258 insertions, 69 deletions
diff --git a/wizards/com/sun/star/wizards/common/Helper.py b/wizards/com/sun/star/wizards/common/Helper.py
index 5e52a0c2811a..d1ebdfcb787a 100644
--- a/wizards/com/sun/star/wizards/common/Helper.py
+++ b/wizards/com/sun/star/wizards/common/Helper.py
@@ -1,13 +1,13 @@
import uno
-import locale
+import calendar
import traceback
+from datetime import date as DateTime
from com.sun.star.uno import Exception as UnoException
from com.sun.star.uno import RuntimeException
+from NumberFormatter import NumberFormatter
class Helper(object):
- DAY_IN_MILLIS = (24 * 60 * 60 * 1000)
-
def convertUnoDatetoInteger(self, DateValue):
oCal = java.util.Calendar.getInstance()
oCal.set(DateValue.Year, DateValue.Month, DateValue.Day)
@@ -165,16 +165,13 @@ class Helper(object):
class DateUtils(object):
- def __init__(self, xmsf, docMSF):
- defaults = docMSF.createInstance("com.sun.star.text.Defaults")
+ def __init__(self, xmsf, document):
+ defaults = document.createInstance("com.sun.star.text.Defaults")
l = Helper.getUnoStructValue(defaults, "CharLocale")
- jl = locale.setlocale(l.Language, l.Country, l.Variant)
- self.calendar = Calendar.getInstance(jl)
self.formatSupplier = document
formatSettings = self.formatSupplier.getNumberFormatSettings()
date = Helper.getUnoPropertyValue(formatSettings, "NullDate")
- self.calendar.set(date.Year, date.Month - 1, date.Day)
- self.docNullTime = getTimeInMillis()
+ self.calendar = DateTime(date.Year, date.Month, date.Day)
self.formatter = NumberFormatter.createNumberFormatter(xmsf,
self.formatSupplier)
@@ -187,56 +184,12 @@ class Helper(object):
return NumberFormatter.getNumberFormatterKey(
self.formatSupplier, format)
- def getFormatter(self):
- return self.formatter
-
- def getTimeInMillis(self):
- dDate = self.calendar.getTime()
- return dDate.getTime()
-
'''
@param date a VCL date in form of 20041231
@return a document relative date
'''
- def getDocumentDateAsDouble(self, date):
- self.calendar.clear()
- self.calendar.set(
- date / 10000, (date % 10000) / 100 - 1, date % 100)
- date1 = getTimeInMillis()
- '''
- docNullTime and date1 are in millis, but
- I need a day...
- '''
-
- daysDiff = (date1 - self.docNullTime) / DAY_IN_MILLIS + 1
- return daysDiff
-
- def getDocumentDateAsDouble(self, date):
- return getDocumentDateAsDouble(
- date.Year * 10000 + date.Month * 100 + date.Day)
-
- def getDocumentDateAsDouble(self, javaTimeInMillis):
- self.calendar.clear()
- JavaTools.setTimeInMillis(self.calendar, javaTimeInMillis)
- date1 = getTimeInMillis()
-
- '''
- docNullTime and date1 are in millis, but
- I need a day...
- '''
-
- daysDiff = (date1 - self.docNullTime) / DAY_IN_MILLIS + 1
- return daysDiff
-
def format(self, formatIndex, date):
+ difference = date - self.calendar
return self.formatter.convertNumberToString(formatIndex,
- getDocumentDateAsDouble(date))
-
- def format(self, formatIndex, date):
- return self.formatter.convertNumberToString(formatIndex,
- getDocumentDateAsDouble(date))
-
- def format(self, formatIndex, javaTimeInMillis):
- return self.formatter.convertNumberToString(formatIndex,
- getDocumentDateAsDouble(javaTimeInMillis))
+ difference.days)
diff --git a/wizards/com/sun/star/wizards/common/NumberFormatter.py b/wizards/com/sun/star/wizards/common/NumberFormatter.py
new file mode 100644
index 000000000000..eff9f16c220c
--- /dev/null
+++ b/wizards/com/sun/star/wizards/common/NumberFormatter.py
@@ -0,0 +1,232 @@
+import traceback
+from com.sun.star.lang import Locale
+from com.sun.star.util.NumberFormat import DATE, LOGICAL, DATETIME, TEXT, NUMBER
+
+class NumberFormatter(object):
+
+ def __init__(self, _xNumberFormatsSupplier, _aLocale, _xMSF=None):
+ self.iDateFormatKey = -1
+ self.iDateTimeFormatKey = -1
+ self.iNumberFormatKey = -1
+ self.iTextFormatKey = -1
+ self.iTimeFormatKey = -1
+ self.iLogicalFormatKey = -1
+ self.bNullDateCorrectionIsDefined = False
+ self.aLocale = _aLocale
+ if _xMSF is not None:
+ self.xNumberFormatter = _xMSF.createInstance(
+ "com.sun.star.util.NumberFormatter")
+ self.xNumberFormats = _xNumberFormatsSupplier.NumberFormats
+ self.xNumberFormatSettings = \
+ _xNumberFormatsSupplier.NumberFormatSettings
+ self.xNumberFormatter.attachNumberFormatsSupplier(
+ _xNumberFormatsSupplier)
+
+ '''
+ @param _xMSF
+ @param _xNumberFormatsSupplier
+ @return
+ @throws Exception
+ @deprecated
+ '''
+
+ @classmethod
+ def createNumberFormatter(self, _xMSF, _xNumberFormatsSupplier):
+ oNumberFormatter = _xMSF.createInstance(
+ "com.sun.star.util.NumberFormatter")
+ oNumberFormatter.attachNumberFormatsSupplier(_xNumberFormatsSupplier)
+ return oNumberFormatter
+
+ '''
+ gives a key to pass to a NumberFormat object. <br/>
+ example: <br/>
+ <pre>
+ XNumberFormatsSupplier nsf =
+ (XNumberFormatsSupplier)UnoRuntime.queryInterface(...,document)
+ int key = Desktop.getNumberFormatterKey(
+ nsf, ...star.i18n.NumberFormatIndex.DATE...)
+ XNumberFormatter nf = Desktop.createNumberFormatter(xmsf, nsf);
+ nf.convertNumberToString( key, 1972 );
+ </pre>
+ @param numberFormatsSupplier
+ @param type - a constant out of i18n.NumberFormatIndex enumeration.
+ @return a key to use with a util.NumberFormat instance.
+ '''
+
+ @classmethod
+ def getNumberFormatterKey(self, numberFormatsSupplier, Type):
+ return numberFormatsSupplier.NumberFormats.getFormatIndex(
+ Type, Locale())
+
+ def convertNumberToString(self, _nkey, _dblValue, _xNumberFormatter=None):
+ print "yepa"
+ if _xNumberFormatter is None:
+ return self.xNumberFormatter.convertNumberToString(
+ _nkey, _dblValue)
+ else:
+ return _xNumberFormatter.convertNumberToString(_nkey, _dblValue)
+
+ def convertStringToNumber(self, _nkey, _sString):
+ return self.xNumberFormatter.convertStringToNumber(_nkey, _sString)
+
+ '''
+ @param dateCorrection The lDateCorrection to set.
+ '''
+
+ def setNullDateCorrection(self, dateCorrection):
+ self.lDateCorrection = dateCorrection
+
+ def defineNumberFormat(self, _FormatString):
+ try:
+ NewFormatKey = self.xNumberFormats.queryKey(
+ _FormatString, self.aLocale, True)
+ if NewFormatKey is -1:
+ NewFormatKey = self.xNumberFormats.addNew(
+ _FormatString, self.aLocale)
+
+ return NewFormatKey
+ except Exception, e:
+ traceback.print_exc()
+ return -1
+
+ '''
+ returns a numberformat for a FormatString.
+ @param _FormatString
+ @param _aLocale
+ @return
+ '''
+
+ def defineNumberFormat(self, _FormatString, _aLocale):
+ try:
+ NewFormatKey = self.xNumberFormats.queryKey(
+ _FormatString, _aLocale, True)
+ if NewFormatKey == -1:
+ NewFormatKey = self.xNumberFormats.addNew(
+ _FormatString, _aLocale)
+
+ return NewFormatKey
+ except Exception, e:
+ traceback.print_exc()
+ return -1
+
+ def setNumberFormat(self, _xFormatObject, _FormatKey, _oNumberFormatter):
+ try:
+ xNumberFormat = _oNumberFormatter.xNumberFormats.getByKey(
+ _FormatKey)
+ FormatString = str(Helper.getUnoPropertyValue(
+ xNumberFormat, "FormatString"))
+ oLocale = Helper.getUnoPropertyValue(xNumberFormat, "Locale")
+ NewFormatKey = defineNumberFormat(FormatString, oLocale)
+ _xFormatObject.setPropertyValue(
+ "FormatsSupplier",
+ _oNumberFormatter.xNumberFormatter.getNumberFormatsSupplier())
+ if _xFormatObject.getPropertySetInfo().hasPropertyByName(
+ "NumberFormat"):
+ _xFormatObject.setPropertyValue("NumberFormat", NewFormatKey)
+ elif _xFormatObject.getPropertySetInfo().hasPropertyByName(
+ "FormatKey"):
+ _xFormatObject.setPropertyValue("FormatKey", NewFormatKey)
+ else:
+ # TODO: throws a exception in a try catch environment, very helpful?
+ raise Exception
+
+ except Exception, exception:
+ traceback.print_exc()
+
+ def getNullDateCorrection(self):
+ if not self.bNullDateCorrectionIsDefined:
+ dNullDate = Helper.getUnoStructValue(
+ self.xNumberFormatSettings, "NullDate")
+ lNullDate = Helper.convertUnoDatetoInteger(dNullDate)
+ oCal = java.util.Calendar.getInstance()
+ oCal.set(1900, 1, 1)
+ dTime = oCal.getTime()
+ lTime = dTime.getTime()
+ lDBNullDate = lTime / (3600 * 24000)
+ self.lDateCorrection = lDBNullDate - lNullDate
+ return self.lDateCorrection
+ else:
+ return self.lDateCorrection
+
+ def setBooleanReportDisplayNumberFormat(self):
+ FormatString = "[=1]" + str(9745) + ";[=0]" + str(58480) + ";0"
+ self.iLogicalFormatKey = self.xNumberFormats.queryKey(
+ FormatString, self.aLocale, True)
+ try:
+ if self.iLogicalFormatKey == -1:
+ self.iLogicalFormatKey = self.xNumberFormats.addNew(
+ FormatString, self.aLocale)
+
+ except Exception, e:
+ #MalformedNumberFormat
+ traceback.print_exc()
+ self.iLogicalFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.LOGICAL, self.aLocale)
+
+ return self.iLogicalFormatKey
+
+ '''
+ @return Returns the iDateFormatKey.
+ '''
+
+ def getDateFormatKey(self):
+ if self.iDateFormatKey == -1:
+ self.iDateFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.DATE, self.aLocale)
+
+ return self.iDateFormatKey
+
+ '''
+ @return Returns the iDateTimeFormatKey.
+ '''
+
+ def getDateTimeFormatKey(self):
+ if self.iDateTimeFormatKey == -1:
+ self.iDateTimeFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.DATETIME, self.aLocale)
+
+ return self.iDateTimeFormatKey
+
+ '''
+ @return Returns the iLogicalFormatKey.
+ '''
+
+ def getLogicalFormatKey(self):
+ if self.iLogicalFormatKey == -1:
+ self.iLogicalFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.LOGICAL, self.aLocale)
+
+ return self.iLogicalFormatKey
+
+ '''
+ @return Returns the iNumberFormatKey.
+ '''
+
+ def getNumberFormatKey(self):
+ if self.iNumberFormatKey == -1:
+ self.iNumberFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.NUMBER, self.aLocale)
+
+ return self.iNumberFormatKey
+
+ '''
+ @return Returns the iTextFormatKey.
+ '''
+
+ def getTextFormatKey(self):
+ if self.iTextFormatKey == -1:
+ self.iTextFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.TEXT, self.aLocale)
+
+ return self.iTextFormatKey
+
+ '''
+ @return Returns the iTimeFormatKey.
+ '''
+
+ def getTimeFormatKey(self):
+ if self.iTimeFormatKey == -1:
+ self.iTimeFormatKey = self.xNumberFormats.getStandardFormat(
+ NumberFormat.TIME, self.aLocale)
+
+ return self.iTimeFormatKey
diff --git a/wizards/com/sun/star/wizards/text/TextDocument.py b/wizards/com/sun/star/wizards/text/TextDocument.py
index c6ff21144337..c432ee7a1902 100644
--- a/wizards/com/sun/star/wizards/text/TextDocument.py
+++ b/wizards/com/sun/star/wizards/text/TextDocument.py
@@ -11,7 +11,9 @@ from com.sun.star.container import NoSuchElementException
from com.sun.star.lang import WrappedTargetException
from common.Configuration import Configuration
import time
+from datetime import date as dateTimeObject
from com.sun.star.util import DateTime
+from com.sun.star.i18n.NumberFormatIndex import DATE_SYS_DDMMYY
class TextDocument(object):
@@ -208,22 +210,24 @@ class TextDocument(object):
fullname = str(gn) + " " + str(sn)
currentDate = DateTime()
now = time.localtime(time.time())
- currentDate.Day = time.strftime("%d", now)
- currentDate.Year = time.strftime("%Y", now)
- currentDate.Month = time.strftime("%m", now)
+ year = time.strftime("%Y", now)
+ month = time.strftime("%m", now)
+ day = time.strftime("%d", now)
+ currentDate.Day = day
+ currentDate.Year = year
+ currentDate.Month = month
+ dateObject = dateTimeObject(int(year), int(month), int(day))
du = Helper.DateUtils(self.xMSF, self.xTextDocument)
- ff = du.getFormat(NumberFormatIndex.DATE_SYS_DDMMYY)
- myDate = du.format(ff, currentDate)
- xDocProps2 = self.xTextDocument.getDocumentProperties()
- xDocProps2.setAuthor(fullname)
- xDocProps2.setModifiedBy(fullname)
- description = xDocProps2.getDescription()
+ ff = du.getFormat(DATE_SYS_DDMMYY)
+ myDate = du.format(ff, dateObject)
+ xDocProps2 = self.xTextDocument.DocumentProperties
+ xDocProps2.Author = fullname
+ xDocProps2.ModifiedBy = fullname
+ description = xDocProps2.Description
description = description + " " + TemplateDescription
- description = JavaTools.replaceSubString(
- description, WizardName, "<wizard_name>")
- description = JavaTools.replaceSubString(
- description, myDate, "<current_date>")
- xDocProps2.setDescription(description)
+ description = description.replace("<wizard_name>", WizardName)
+ description = description.replace("<current_date>", myDate)
+ xDocProps2.Description = description
except NoSuchElementException, e:
# TODO Auto-generated catch block
traceback.print_exc()