# # 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 com.sun.star.lang import Locale 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.
example:
    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 );
    
@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): 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)