[Libreoffice-commits] .: basctl/source connectivity/inc connectivity/source dbaccess/source forms/source offapi/com offapi/type_reference offapi/UnoApi_offapi.mk reportdesign/source svtools/source toolkit/source xmloff/source xmlscript/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Dec 6 03:21:51 PST 2012


 basctl/source/dlged/dlged.cxx                            |    6 +--
 connectivity/inc/connectivity/dbtools.hxx                |    2 -
 connectivity/source/commontools/dbtools.cxx              |    8 ++---
 connectivity/source/commontools/formattedcolumnvalue.cxx |    2 -
 connectivity/source/drivers/flat/ETable.cxx              |    9 ++---
 dbaccess/source/core/api/SingleSelectQueryComposer.cxx   |    2 -
 dbaccess/source/core/dataaccess/ModelImpl.cxx            |    8 +----
 dbaccess/source/ui/app/AppControllerDnD.cxx              |    5 +--
 dbaccess/source/ui/browser/brwctrlr.cxx                  |    4 +-
 dbaccess/source/ui/browser/dbexchange.cxx                |    3 +
 dbaccess/source/ui/browser/sbagrid.cxx                   |    2 -
 dbaccess/source/ui/control/ColumnControlWindow.cxx       |    8 ++---
 dbaccess/source/ui/inc/ColumnControlWindow.hxx           |    6 +--
 dbaccess/source/ui/inc/UITools.hxx                       |    2 -
 dbaccess/source/ui/inc/WCopyTable.hxx                    |    9 +++--
 dbaccess/source/ui/misc/DExport.cxx                      |    2 -
 dbaccess/source/ui/misc/TableCopyHelper.cxx              |    5 +--
 dbaccess/source/ui/misc/UITools.cxx                      |    6 +--
 dbaccess/source/ui/misc/WCopyTable.cxx                   |   14 ++++----
 dbaccess/source/ui/misc/WExtendPages.cxx                 |    5 +--
 dbaccess/source/ui/uno/ColumnControl.cxx                 |    2 -
 dbaccess/source/ui/uno/ColumnPeer.cxx                    |    7 +---
 dbaccess/source/ui/uno/ColumnPeer.hxx                    |    5 +--
 dbaccess/source/ui/uno/copytablewizard.cxx               |    2 -
 forms/source/component/Date.cxx                          |    5 +--
 forms/source/component/Filter.cxx                        |    3 +
 forms/source/component/FormattedField.cxx                |    2 -
 forms/source/component/Time.cxx                          |    5 +--
 forms/source/inc/limitedformats.hxx                      |    6 +--
 forms/source/inc/services.hxx                            |    1 
 forms/source/misc/limitedformats.cxx                     |   21 ++++---------
 offapi/UnoApi_offapi.mk                                  |    2 -
 offapi/com/sun/star/util/NumberFormatsSupplier.idl       |   24 ++++++---------
 offapi/type_reference/types.rdb                          |binary
 reportdesign/source/core/api/ReportDefinition.cxx        |    7 +---
 svtools/source/table/cellvalueconversion.cxx             |   13 +++-----
 toolkit/source/controls/formattedcontrol.cxx             |    8 +----
 xmloff/source/forms/layerexport.cxx                      |   24 +++++----------
 xmloff/source/forms/strings.hxx                          |    1 
 xmlscript/source/xmldlg_imexp/xmldlg_import.cxx          |    5 +--
 40 files changed, 112 insertions(+), 139 deletions(-)

New commits:
commit 773ad75b0dbc4dac1cae704c726b5a2d67ae1146
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Dec 4 13:18:35 2012 +0200

    fdo#46808, Adapt util::NumberFormatsSupplier UNO service to new style
    
    Change-Id: I58436d9eea0c38d14cde2dc01aa463d5d71912e9

diff --git a/basctl/source/dlged/dlged.cxx b/basctl/source/dlged/dlged.cxx
index d56814f..1e1b927 100644
--- a/basctl/source/dlged/dlged.cxx
+++ b/basctl/source/dlged/dlged.cxx
@@ -35,6 +35,7 @@
 #include <com/sun/star/awt/XDialog.hpp>
 #include <com/sun/star/resource/XStringResourcePersistence.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
+#include <com/sun/star/util/NumberFormatsSupplier.hpp>
 #include <comphelper/types.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <svl/itempool.hxx>
@@ -434,9 +435,8 @@ Reference< util::XNumberFormatsSupplier > const & DlgEditor::GetNumberFormatsSup
 {
     if ( !m_xSupplier.is() )
     {
-        Reference< lang::XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory();
-        Reference< util::XNumberFormatsSupplier > xSupplier( xMSF->createInstance(
-            "com.sun.star.util.NumberFormatsSupplier" ), UNO_QUERY );
+        Reference< uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext();
+        Reference< util::XNumberFormatsSupplier > xSupplier( util::NumberFormatsSupplier::createWithDefaultLocale(xContext) );
 
         ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
         if ( !m_xSupplier.is() )
diff --git a/connectivity/inc/connectivity/dbtools.hxx b/connectivity/inc/connectivity/dbtools.hxx
index 18fd291..a3956b9 100644
--- a/connectivity/inc/connectivity/dbtools.hxx
+++ b/connectivity/inc/connectivity/dbtools.hxx
@@ -410,7 +410,7 @@ namespace dbtools
     OOO_DLLPUBLIC_DBTOOLS ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier> getNumberFormats(
         const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _rxConn,
         sal_Bool _bAllowDefault = sal_False,
-        const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>()
+        const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxContext = ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>()
     );
 
     /** create an <type scope="com::sun::star::sdb">XSingleSelectQueryComposer</type> which represents
diff --git a/connectivity/source/commontools/dbtools.cxx b/connectivity/source/commontools/dbtools.cxx
index 065fa84..a5420fc 100644
--- a/connectivity/source/commontools/dbtools.cxx
+++ b/connectivity/source/commontools/dbtools.cxx
@@ -61,7 +61,7 @@
 #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
 #include <com/sun/star/uno/XNamingService.hpp>
 #include <com/sun/star/util/NumberFormat.hpp>
-#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
+#include <com/sun/star/util/NumberFormatsSupplier.hpp>
 #include <com/sun/star/util/XNumberFormatTypes.hpp>
 
 #include <comphelper/extract.hxx>
@@ -948,7 +948,7 @@ void qualifiedNameComponents(const Reference< XDatabaseMetaData >& _rxConnMetaDa
 Reference< XNumberFormatsSupplier> getNumberFormats(
             const Reference< XConnection>& _rxConn,
             sal_Bool _bAlloweDefault,
-            const Reference< XMultiServiceFactory>& _rxFactory)
+            const Reference< XComponentContext>& _rxContext)
 {
     // ask the parent of the connection (should be an DatabaseAccess)
     Reference< XNumberFormatsSupplier> xReturn;
@@ -960,9 +960,9 @@ Reference< XNumberFormatsSupplier> getNumberFormats(
         if (xConnParentProps.is() && hasProperty(sPropFormatsSupplier, xConnParentProps))
             xConnParentProps->getPropertyValue(sPropFormatsSupplier) >>= xReturn;
     }
-    else if(_bAlloweDefault && _rxFactory.is())
+    else if(_bAlloweDefault && _rxContext.is())
     {
-        xReturn = Reference< XNumberFormatsSupplier>(_rxFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.util.NumberFormatsSupplier"))),UNO_QUERY);
+        xReturn = NumberFormatsSupplier::createWithDefaultLocale( _rxContext );
     }
     return xReturn;
 }
diff --git a/connectivity/source/commontools/formattedcolumnvalue.cxx b/connectivity/source/commontools/formattedcolumnvalue.cxx
index 2a34ca2..756e55c 100644
--- a/connectivity/source/commontools/formattedcolumnvalue.cxx
+++ b/connectivity/source/commontools/formattedcolumnvalue.cxx
@@ -197,7 +197,7 @@ namespace dbtools
             {
                 // get the number formats supplier of the connection of the form
                 Reference< XConnection > xConnection( getConnection( i_rRowSet ), UNO_QUERY_THROW );
-                Reference< XNumberFormatsSupplier > xSupplier( getNumberFormats( xConnection, sal_True, i_rContext.getLegacyServiceFactory() ), UNO_SET_THROW );
+                Reference< XNumberFormatsSupplier > xSupplier( getNumberFormats( xConnection, sal_True, i_rContext.getUNOContext() ), UNO_SET_THROW );
 
                 // create a number formatter for it
                 xNumberFormatter.set( NumberFormatter::create(i_rContext.getUNOContext()), UNO_QUERY_THROW );
diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx
index 9fe48f0..87e2d66 100644
--- a/connectivity/source/drivers/flat/ETable.cxx
+++ b/connectivity/source/drivers/flat/ETable.cxx
@@ -38,6 +38,7 @@
 #include "flat/EDriver.hxx"
 #include <com/sun/star/util/NumberFormat.hpp>
 #include <com/sun/star/util/NumberFormatter.hpp>
+#include <com/sun/star/util/NumberFormatsSupplier.hpp>
 #include <unotools/configmgr.hxx>
 #include <i18npool/languagetag.hxx>
 #include "connectivity/dbconversion.hxx"
@@ -58,6 +59,7 @@ using namespace ::com::sun::star::sdbcx;
 using namespace ::com::sun::star::sdbc;
 using namespace ::com::sun::star::container;
 using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::util;
 
 // -------------------------------------------------------------------------
 void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale)
@@ -419,12 +421,9 @@ void OFlatTable::construct()
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen at sun.com", "OFlatTable::construct" );
     SvtSysLocale aLocale;
     ::com::sun::star::lang::Locale aAppLocale(aLocale.GetLanguageTag().getLocale());
-    Sequence< ::com::sun::star::uno::Any > aArg(1);
-    aArg[0] <<= aAppLocale;
 
-    Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xSupplier(m_pConnection->getDriver()->getFactory()->createInstanceWithArguments(::rtl::OUString("com.sun.star.util.NumberFormatsSupplier"),aArg),UNO_QUERY);
-    m_xNumberFormatter = Reference< ::com::sun::star::util::XNumberFormatter >(
-          ::com::sun::star::util::NumberFormatter::create(
+    Reference< XNumberFormatsSupplier > xSupplier = NumberFormatsSupplier::createWithLocale( getComponentContext(m_pConnection->getDriver()->getFactory()), aAppLocale );
+    m_xNumberFormatter = Reference< XNumberFormatter >( NumberFormatter::create(
              comphelper::getComponentContext(m_pConnection->getDriver()->getFactory())),
           UNO_QUERY_THROW);
     m_xNumberFormatter->attachNumberFormatsSupplier(xSupplier);
diff --git a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
index 837836d..6f1c57f 100644
--- a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+++ b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
@@ -257,7 +257,7 @@ OSingleSelectQueryComposer::OSingleSelectQueryComposer(const Reference< XNameAcc
     m_aCurrentColumns.resize(4);
 
     m_aLocale = SvtSysLocale().GetLanguageTag().getLocale();
-    m_xNumberFormatsSupplier = dbtools::getNumberFormats( m_xConnection, sal_True, m_aContext.getLegacyServiceFactory() );
+    m_xNumberFormatsSupplier = dbtools::getNumberFormats( m_xConnection, sal_True, m_aContext.getUNOContext() );
     Reference< XLocaleData4 > xLocaleData( LocaleData::create(m_aContext.getUNOContext()) );
     LocaleDataItem aData = xLocaleData->getLocaleItem(m_aLocale);
     m_sDecimalSep = aData.decimalSeparator;
diff --git a/dbaccess/source/core/dataaccess/ModelImpl.cxx b/dbaccess/source/core/dataaccess/ModelImpl.cxx
index 5432375..de74b4f 100644
--- a/dbaccess/source/core/dataaccess/ModelImpl.cxx
+++ b/dbaccess/source/core/dataaccess/ModelImpl.cxx
@@ -40,6 +40,7 @@
 #include <com/sun/star/script/DocumentDialogLibraryContainer.hpp>
 #include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
 #include <com/sun/star/form/XLoadable.hpp>
+#include <com/sun/star/util/NumberFormatsSupplier.hpp>
 
 #include <comphelper/interaction.hxx>
 #include <comphelper/mediadescriptor.hxx>
@@ -760,12 +761,9 @@ const Reference< XNumberFormatsSupplier > & ODatabaseModelImpl::getNumberFormats
     {
         // the arguments : the locale of the current user
         UserInformation aUserInfo;
-        Sequence< Any > aArguments(1);
-        aArguments.getArray()[0] <<= aUserInfo.getUserLanguage();
+        Locale aLocale = aUserInfo.getUserLanguage();
 
-        m_xNumberFormatsSupplier.set(
-            m_aContext.createComponentWithArguments( "com.sun.star.util.NumberFormatsSupplier", aArguments ), UNO_QUERY_THROW );
-        OSL_ENSURE(m_xNumberFormatsSupplier.is(), "ODatabaseModelImpl::getNumberFormatsSupplier : could not instantiate the formats supplier !");
+        m_xNumberFormatsSupplier.set( NumberFormatsSupplier::createWithLocale( m_aContext.getUNOContext(), aLocale ) );
     }
     return m_xNumberFormatsSupplier;
 }
diff --git a/dbaccess/source/ui/app/AppControllerDnD.cxx b/dbaccess/source/ui/app/AppControllerDnD.cxx
index 6ed5db0..763c978 100644
--- a/dbaccess/source/ui/app/AppControllerDnD.cxx
+++ b/dbaccess/source/ui/app/AppControllerDnD.cxx
@@ -21,6 +21,7 @@
 #include "AppController.hxx"
 #include <comphelper/sequence.hxx>
 #include <comphelper/property.hxx>
+#include <comphelper/processfactory.hxx>
 #include "dbustrings.hrc"
 #include <com/sun/star/sdbcx/XDataDescriptorFactory.hpp>
 #include <com/sun/star/sdbcx/XAppend.hpp>
@@ -505,11 +506,11 @@ TransferableHelper* OApplicationController::copyObject()
 
                     if ( eType == E_TABLE )
                     {
-                        pData = new ODataClipboard(sDataSource, CommandType::TABLE, sName, xConnection, getNumberFormatter(xConnection,getORB()), getORB());
+                        pData = new ODataClipboard(sDataSource, CommandType::TABLE, sName, xConnection, getNumberFormatter(xConnection, comphelper::getComponentContext(getORB())), getORB());
                     }
                     else
                     {
-                        pData = new ODataClipboard(sDataSource, CommandType::QUERY, sName, getNumberFormatter(xConnection,getORB()), getORB());
+                        pData = new ODataClipboard(sDataSource, CommandType::QUERY, sName, getNumberFormatter(xConnection, comphelper::getComponentContext(getORB())), getORB());
                     }
                 }
             }
diff --git a/dbaccess/source/ui/browser/brwctrlr.cxx b/dbaccess/source/ui/browser/brwctrlr.cxx
index 8fec4ff..ccd75ae 100644
--- a/dbaccess/source/ui/browser/brwctrlr.cxx
+++ b/dbaccess/source/ui/browser/brwctrlr.cxx
@@ -773,7 +773,7 @@ void SbaXDataBrowserController::initFormatter()
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaui", "Ocke.Janssen at sun.com", "SbaXDataBrowserController::initFormatter" );
     // ---------------------------------------------------------------
     // create a formatter working with the connections format supplier
-    Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xSupplier(::dbtools::getNumberFormats(::dbtools::getConnection(m_xRowSet), sal_True,getORB()));
+    Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xSupplier(::dbtools::getNumberFormats(::dbtools::getConnection(m_xRowSet), sal_True, comphelper::getComponentContext(getORB())));
 
     if(xSupplier.is())
     {
@@ -2004,7 +2004,7 @@ void SbaXDataBrowserController::ExecuteSearch()
     xModelSet->setPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AlwaysShowCursor")), ::comphelper::makeBoolAny(sal_Bool(sal_True)));
     xModelSet->setPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CursorColor")), makeAny(sal_Int32(COL_LIGHTRED)));
 
-    Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xNFS(::dbtools::getNumberFormats(::dbtools::getConnection(m_xRowSet), sal_True,getORB()));
+    Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xNFS(::dbtools::getNumberFormats(::dbtools::getConnection(m_xRowSet), sal_True, comphelper::getComponentContext(getORB())));
 
     SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
     AbstractFmSearchDialog* pDialog = NULL;
diff --git a/dbaccess/source/ui/browser/dbexchange.cxx b/dbaccess/source/ui/browser/dbexchange.cxx
index fa2abaa..6bf1451 100644
--- a/dbaccess/source/ui/browser/dbexchange.cxx
+++ b/dbaccess/source/ui/browser/dbexchange.cxx
@@ -29,6 +29,7 @@
 #include <comphelper/uno3.hxx>
 #include <svx/dataaccessdescriptor.hxx>
 #include "UITools.hxx"
+#include <comphelper/processfactory.hxx>
 
 
 namespace dbaui
@@ -128,7 +129,7 @@ namespace dbaui
 
         if ( xConnection.is() && i_rORB.is() )
         {
-            Reference< XNumberFormatter > xFormatter( getNumberFormatter( xConnection, i_rORB ) );
+            Reference< XNumberFormatter > xFormatter( getNumberFormatter( xConnection, comphelper::getComponentContext(i_rORB) ) );
             if ( xFormatter.is() )
             {
                 m_pHtml.set( new OHTMLImportExport( getDescriptor(), i_rORB, xFormatter ) );
diff --git a/dbaccess/source/ui/browser/sbagrid.cxx b/dbaccess/source/ui/browser/sbagrid.cxx
index 3a8ac73..d98a671 100644
--- a/dbaccess/source/ui/browser/sbagrid.cxx
+++ b/dbaccess/source/ui/browser/sbagrid.cxx
@@ -836,7 +836,7 @@ void SbaGridControl::PreExecuteRowContextMenu(sal_uInt16 nRow, PopupMenu& rMenu)
 //------------------------------------------------------------------------------
 SvNumberFormatter* SbaGridControl::GetDatasourceFormatter()
 {
-    Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xSupplier = ::dbtools::getNumberFormats(::dbtools::getConnection(Reference< XRowSet > (getDataSource(),UNO_QUERY)), sal_True,getServiceManager());
+    Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xSupplier = ::dbtools::getNumberFormats(::dbtools::getConnection(Reference< XRowSet > (getDataSource(),UNO_QUERY)), sal_True, comphelper::getComponentContext(getServiceManager()));
 
     SvNumberFormatsSupplierObj* pSupplierImpl = SvNumberFormatsSupplierObj::getImplementation( xSupplier );
     if ( !pSupplierImpl )
diff --git a/dbaccess/source/ui/control/ColumnControlWindow.cxx b/dbaccess/source/ui/control/ColumnControlWindow.cxx
index 2c12e84..873ba4d 100644
--- a/dbaccess/source/ui/control/ColumnControlWindow.cxx
+++ b/dbaccess/source/ui/control/ColumnControlWindow.cxx
@@ -41,9 +41,9 @@ using namespace ::com::sun::star::lang;
 DBG_NAME(OColumnControlWindow)
 //========================================================================
 OColumnControlWindow::OColumnControlWindow(Window* pParent
-                                           ,const Reference<XMultiServiceFactory>& _rxFactory)
+                                           ,const Reference<XComponentContext>& _rxContext)
             : OFieldDescControl(pParent,NULL)
-            , m_xORB(_rxFactory)
+            , m_xContext(_rxContext)
             , m_sTypeNames(ModuleRes(STR_TABLEDESIGN_DBFIELDTYPES))
             , m_bAutoIncrementEnabled(sal_True)
 {
@@ -100,12 +100,12 @@ Reference< XNumberFormatter > OColumnControlWindow::GetFormatter() const
     if ( !m_xFormatter.is() )
         try
         {
-            Reference< XNumberFormatsSupplier >  xSupplier(::dbtools::getNumberFormats(m_xConnection, sal_True,m_xORB));
+            Reference< XNumberFormatsSupplier >  xSupplier(::dbtools::getNumberFormats(m_xConnection, sal_True, m_xContext));
 
             if ( xSupplier.is() )
             {
                 // create a new formatter
-                m_xFormatter.set( NumberFormatter::create(comphelper::getComponentContext(m_xORB)), UNO_QUERY_THROW);
+                m_xFormatter.set( NumberFormatter::create(m_xContext), UNO_QUERY_THROW);
                 m_xFormatter->attachNumberFormatsSupplier(xSupplier);
             }
         }
diff --git a/dbaccess/source/ui/inc/ColumnControlWindow.hxx b/dbaccess/source/ui/inc/ColumnControlWindow.hxx
index 6e5637a..81c7d8e 100644
--- a/dbaccess/source/ui/inc/ColumnControlWindow.hxx
+++ b/dbaccess/source/ui/inc/ColumnControlWindow.hxx
@@ -21,7 +21,7 @@
 
 #include "FieldDescControl.hxx"
 #include "TypeInfo.hxx"
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
 #include <com/sun/star/util/XNumberFormatter.hpp>
 
 //.........................................................................
@@ -34,7 +34,7 @@ namespace dbaui
     class OColumnControlWindow : public OFieldDescControl
     {
         ::com::sun::star::lang::Locale      m_aLocale;
-        ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory> m_xORB;
+        ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> m_xContext;
         ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>          m_xConnection;
         mutable ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >    m_xFormatter;   // a number formatter working with the connection's NumberFormatsSupplier
 
@@ -58,7 +58,7 @@ namespace dbaui
 
     public:
         OColumnControlWindow(Window* pParent
-                            ,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
+                            ,const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxContext);
         virtual ~OColumnControlWindow();
 
         void setConnection(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xCon);
diff --git a/dbaccess/source/ui/inc/UITools.hxx b/dbaccess/source/ui/inc/UITools.hxx
index df0c4b1..9b30fce 100644
--- a/dbaccess/source/ui/inc/UITools.hxx
+++ b/dbaccess/source/ui/inc/UITools.hxx
@@ -415,7 +415,7 @@ namespace dbaui
         @param  _rMF
             The multi service factory
     */
-    ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > getNumberFormatter(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rMF );
+    ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > getNumberFormatter(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection,const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext );
 
     // this completes a help url with the system parameters "Language" and "System"
     // detect installed locale
diff --git a/dbaccess/source/ui/inc/WCopyTable.hxx b/dbaccess/source/ui/inc/WCopyTable.hxx
index bc0e07b..87098f6 100644
--- a/dbaccess/source/ui/inc/WCopyTable.hxx
+++ b/dbaccess/source/ui/inc/WCopyTable.hxx
@@ -25,6 +25,7 @@
 #include <com/sun/star/sdbc/XResultSet.hpp>
 #include <com/sun/star/sdbc/XResultSetMetaData.hpp>
 #include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <comphelper/stl_types.hxx>
 #include "TypeInfo.hxx"
@@ -264,7 +265,7 @@ namespace dbaui
         const ICopyTableSourceObject&                                                   m_rSourceObject;
 
         ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >    m_xFormatter;
-        ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory> m_xFactory;
+        ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>     m_xContext;
         ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler>  m_xInteractionHandler;
 
         String                  m_sTypeNames;       // these type names are the ones out of the resource file
@@ -310,7 +311,7 @@ namespace dbaui
             const ICopyTableSourceObject&                                                           _rSourceObject,
             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >&          _xSourceConnection,
             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >&          _xConnection,
-            const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,
+            const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >&     _rxContext,
             const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler>&   _xInteractionHandler
         );
 
@@ -325,7 +326,7 @@ namespace dbaui
             const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& _xFormatter,
             TypeSelectionPageFactory _pTypeSelectionPageFactory,
             SvStream& _rTypeSelectionPageArg,
-            const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rM
+            const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext
         );
 
         virtual ~OCopyTableWizard();
@@ -382,7 +383,7 @@ namespace dbaui
 
         ::com::sun::star::lang::Locale  GetLocale() const { return m_aLocale; }
         ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > GetFormatter() const { return m_xFormatter; }
-        ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory> GetFactory() const { return m_xFactory; }
+        ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> GetComponentContext() const { return m_xContext; }
 
         const ODatabaseExport::TColumns*        getSourceColumns() const{ return &m_vSourceColumns; }
         const ODatabaseExport::TColumnVector*   getSrcVector() const    { return &m_vSourceVec; }
diff --git a/dbaccess/source/ui/misc/DExport.cxx b/dbaccess/source/ui/misc/DExport.cxx
index eb3a755..1599bed 100644
--- a/dbaccess/source/ui/misc/DExport.cxx
+++ b/dbaccess/source/ui/misc/DExport.cxx
@@ -715,7 +715,7 @@ sal_Bool ODatabaseExport::executeWizard(const ::rtl::OUString& _rTableName,const
         m_xFormatter,
         getTypeSelectionPageFactory(),
         m_rInputStream,
-        m_xFactory
+        comphelper::getComponentContext(m_xFactory)
     );
 
     sal_Bool bError = sal_False;
diff --git a/dbaccess/source/ui/misc/TableCopyHelper.cxx b/dbaccess/source/ui/misc/TableCopyHelper.cxx
index 83b73a8..b57bf8e 100644
--- a/dbaccess/source/ui/misc/TableCopyHelper.cxx
+++ b/dbaccess/source/ui/misc/TableCopyHelper.cxx
@@ -40,6 +40,7 @@
 #include <tools/urlobj.hxx>
 #include <tools/diagnose_ex.h>
 #include <comphelper/componentcontext.hxx>
+#include <comphelper/processfactory.hxx>
 #include <com/sun/star/sdbcx/XTablesSupplier.hpp>
 #include <com/sun/star/sdbcx/XViewsSupplier.hpp>
 #include <com/sun/star/sdb/XQueryDefinitionsSupplier.hpp>
@@ -246,9 +247,9 @@ sal_Bool OTableCopyHelper::copyTagTable(OTableCopyHelper::DropDescriptor& _rDesc
     Reference<XEventListener> xEvt;
     ODatabaseImportExport* pImport = NULL;
     if ( _rDesc.bHtml )
-        pImport = new OHTMLImportExport(_xConnection,getNumberFormatter(_xConnection,m_pController->getORB()),m_pController->getORB());
+        pImport = new OHTMLImportExport(_xConnection,getNumberFormatter(_xConnection, comphelper::getComponentContext(m_pController->getORB())),m_pController->getORB());
     else
-        pImport = new ORTFImportExport(_xConnection,getNumberFormatter(_xConnection,m_pController->getORB()),m_pController->getORB());
+        pImport = new ORTFImportExport(_xConnection,getNumberFormatter(_xConnection, comphelper::getComponentContext(m_pController->getORB())),m_pController->getORB());
 
     xEvt = pImport;
     SvStream* pStream = (SvStream*)(SotStorageStream*)_rDesc.aHtmlRtfStorage;
diff --git a/dbaccess/source/ui/misc/UITools.cxx b/dbaccess/source/ui/misc/UITools.cxx
index e28ad80..b781a71 100644
--- a/dbaccess/source/ui/misc/UITools.cxx
+++ b/dbaccess/source/ui/misc/UITools.cxx
@@ -1604,7 +1604,7 @@ sal_Bool insertHierachyElement( Window* _pParent, const Reference< XMultiService
     return sal_True;
 }
 // -----------------------------------------------------------------------------
-Reference< XNumberFormatter > getNumberFormatter(const Reference< XConnection >& _rxConnection,const Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rMF )
+Reference< XNumberFormatter > getNumberFormatter(const Reference< XConnection >& _rxConnection, const Reference< ::com::sun::star::uno::XComponentContext >& _rxContext )
 {
     // ---------------------------------------------------------------
     // create a formatter working with the connections format supplier
@@ -1612,13 +1612,13 @@ Reference< XNumberFormatter > getNumberFormatter(const Reference< XConnection >&
 
     try
     {
-        Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xSupplier(::dbtools::getNumberFormats(_rxConnection, sal_True,_rMF));
+        Reference< ::com::sun::star::util::XNumberFormatsSupplier >  xSupplier(::dbtools::getNumberFormats(_rxConnection, sal_True, _rxContext));
 
         if ( xSupplier.is() )
         {
             // create a new formatter
             xFormatter = Reference< util::XNumberFormatter > (
-                util::NumberFormatter::create(comphelper::getComponentContext(_rMF)), UNO_QUERY_THROW);
+                util::NumberFormatter::create( _rxContext ), UNO_QUERY_THROW);
             xFormatter->attachNumberFormatsSupplier(xSupplier);
         }
     }
diff --git a/dbaccess/source/ui/misc/WCopyTable.cxx b/dbaccess/source/ui/misc/WCopyTable.cxx
index b468478..5edb86e 100644
--- a/dbaccess/source/ui/misc/WCopyTable.cxx
+++ b/dbaccess/source/ui/misc/WCopyTable.cxx
@@ -548,7 +548,7 @@ namespace
 //------------------------------------------------------------------------
 OCopyTableWizard::OCopyTableWizard( Window * pParent, const ::rtl::OUString& _rDefaultName, sal_Int16 _nOperation,
         const ICopyTableSourceObject& _rSourceObject, const Reference< XConnection >& _xSourceConnection,
-        const Reference< XConnection >& _xConnection, const Reference< XMultiServiceFactory >& _rxORB,
+        const Reference< XConnection >& _xConnection, const Reference< XComponentContext >& _rxContext,
         const Reference< XInteractionHandler>&   _xInteractionHandler)
     : WizardDialog( pParent, ModuleRes(WIZ_RTFCOPYTABLE))
     ,m_pbHelp( this , ModuleRes(PB_HELP))
@@ -559,8 +559,8 @@ OCopyTableWizard::OCopyTableWizard( Window * pParent, const ::rtl::OUString& _rD
     ,m_mNameMapping(_xConnection->getMetaData().is() && _xConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers())
     ,m_xDestConnection( _xConnection )
     ,m_rSourceObject( _rSourceObject )
-    ,m_xFormatter( getNumberFormatter( _xConnection, _rxORB ) )
-    ,m_xFactory(_rxORB)
+    ,m_xFormatter( getNumberFormatter( _xConnection, _rxContext ) )
+    ,m_xContext(_rxContext)
     ,m_xInteractionHandler(_xInteractionHandler)
     ,m_sTypeNames(ModuleRes(STR_TABLEDESIGN_DBFIELDTYPES))
     ,m_nPageCount(0)
@@ -649,7 +649,7 @@ OCopyTableWizard::OCopyTableWizard( Window * pParent, const ::rtl::OUString& _rD
 OCopyTableWizard::OCopyTableWizard( Window* pParent, const ::rtl::OUString& _rDefaultName, sal_Int16 _nOperation,
         const ODatabaseExport::TColumns& _rSourceColumns, const ODatabaseExport::TColumnVector& _rSourceColVec,
         const Reference< XConnection >& _xConnection, const Reference< XNumberFormatter >&  _xFormatter,
-        TypeSelectionPageFactory _pTypeSelectionPageFactory, SvStream& _rTypeSelectionPageArg, const Reference< XMultiServiceFactory >& _rM )
+        TypeSelectionPageFactory _pTypeSelectionPageFactory, SvStream& _rTypeSelectionPageArg, const Reference< XComponentContext >& _rxContext )
     :WizardDialog( pParent, ModuleRes(WIZ_RTFCOPYTABLE))
     ,m_vSourceColumns(_rSourceColumns)
     ,m_pbHelp( this , ModuleRes(PB_HELP))
@@ -661,7 +661,7 @@ OCopyTableWizard::OCopyTableWizard( Window* pParent, const ::rtl::OUString& _rDe
     ,m_xDestConnection( _xConnection )
     ,m_rSourceObject( DummyCopySource::Instance() )
     ,m_xFormatter(_xFormatter)
-    ,m_xFactory(_rM)
+    ,m_xContext(_rxContext)
     ,m_sTypeNames(ModuleRes(STR_TABLEDESIGN_DBFIELDTYPES))
     ,m_nPageCount(0)
     ,m_bDeleteSourceColumns(sal_False)
@@ -684,7 +684,7 @@ OCopyTableWizard::OCopyTableWizard( Window* pParent, const ::rtl::OUString& _rDe
     ::dbaui::fillTypeInfo( _xConnection, m_sTypeNames, m_aTypeInfo, m_aTypeInfoIndex );
     ::dbaui::fillTypeInfo( _xConnection, m_sTypeNames, m_aDestTypeInfo, m_aDestTypeInfoIndex );
 
-    m_xInteractionHandler.set( InteractionHandler::createWithParent(comphelper::getComponentContext(m_xFactory), 0), UNO_QUERY );
+    m_xInteractionHandler.set( InteractionHandler::createWithParent(m_xContext, 0), UNO_QUERY );
 
     OCopyTable* pPage1( new OCopyTable( this ) );
     pPage1->disallowViews();
@@ -1339,7 +1339,7 @@ Reference< XPropertySet > OCopyTableWizard::createTable()
         {
             xSuppDestinationColumns.set( xTable, UNO_QUERY_THROW );
             // insert new table name into table filter
-            ::dbaui::appendToFilter( m_xDestConnection, m_sName, comphelper::getComponentContext(GetFactory()), this );
+            ::dbaui::appendToFilter( m_xDestConnection, m_sName, GetComponentContext(), this );
 
             // copy ui settings
             m_rSourceObject.copyUISettingsTo( xTable );
diff --git a/dbaccess/source/ui/misc/WExtendPages.cxx b/dbaccess/source/ui/misc/WExtendPages.cxx
index c1ccaf8..e8e84a2 100644
--- a/dbaccess/source/ui/misc/WExtendPages.cxx
+++ b/dbaccess/source/ui/misc/WExtendPages.cxx
@@ -23,6 +23,7 @@
 #include "WCopyTable.hxx"
 
 using namespace dbaui;
+using namespace com::sun::star;
 //========================================================================
 SvParser* OWizHTMLExtend::createReader(sal_Int32 _nRows)
 {
@@ -30,7 +31,7 @@ SvParser* OWizHTMLExtend::createReader(sal_Int32 _nRows)
                             _nRows,
                             m_pParent->GetColumnPositions(),
                             m_pParent->GetFormatter(),
-                            m_pParent->GetFactory(),
+                            uno::Reference<lang::XMultiServiceFactory>(m_pParent->GetComponentContext()->getServiceManager(), uno::UNO_QUERY_THROW),
                             m_pParent->getDestVector(),
                             m_pParent->getTypeInfo(),
                             m_pParent->shouldCreatePrimaryKey());
@@ -42,7 +43,7 @@ SvParser* OWizRTFExtend::createReader(sal_Int32 _nRows)
                             _nRows,
                             m_pParent->GetColumnPositions(),
                             m_pParent->GetFormatter(),
-                            m_pParent->GetFactory(),
+                            uno::Reference<lang::XMultiServiceFactory>(m_pParent->GetComponentContext()->getServiceManager(), uno::UNO_QUERY_THROW),
                             m_pParent->getDestVector(),
                             m_pParent->getTypeInfo(),
                             m_pParent->shouldCreatePrimaryKey());
diff --git a/dbaccess/source/ui/uno/ColumnControl.cxx b/dbaccess/source/ui/uno/ColumnControl.cxx
index 999c5f3..2a71d35 100644
--- a/dbaccess/source/ui/uno/ColumnControl.cxx
+++ b/dbaccess/source/ui/uno/ColumnControl.cxx
@@ -65,7 +65,7 @@ void SAL_CALL OColumnControl::createPeer(const Reference< XToolkit >& /*rToolkit
                 pParentWin = pParent->GetWindow();
         }
 
-        OColumnPeer* pPeer = new OColumnPeer( pParentWin, maContext.getLegacyServiceFactory() );
+        OColumnPeer* pPeer = new OColumnPeer( pParentWin, maContext.getUNOContext() );
         OSL_ENSURE(pPeer != NULL, "FmXGridControl::createPeer : imp_CreatePeer didn't return a peer !");
         setPeer( pPeer );
 
diff --git a/dbaccess/source/ui/uno/ColumnPeer.cxx b/dbaccess/source/ui/uno/ColumnPeer.cxx
index c5613a7..a4c1ea1 100644
--- a/dbaccess/source/ui/uno/ColumnPeer.cxx
+++ b/dbaccess/source/ui/uno/ColumnPeer.cxx
@@ -33,13 +33,12 @@ using namespace ::com::sun::star::beans;
 using namespace ::com::sun::star::lang;
 using namespace ::com::sun::star::sdbc;
 
-OColumnPeer::OColumnPeer(Window* _pParent,const Reference<XMultiServiceFactory>& _rxFactory)
-    :m_xORB(_rxFactory)
-    ,m_pActFieldDescr(NULL)
+OColumnPeer::OColumnPeer(Window* _pParent,const Reference<XComponentContext>& _rxContext)
+    :m_pActFieldDescr(NULL)
 {
     osl_atomic_increment( &m_refCount );
     {
-        OColumnControlWindow* pFieldControl = new OColumnControlWindow(_pParent,m_xORB);
+        OColumnControlWindow* pFieldControl = new OColumnControlWindow(_pParent, _rxContext);
         pFieldControl->SetComponentInterface(this);
         pFieldControl->Show();
     }
diff --git a/dbaccess/source/ui/uno/ColumnPeer.hxx b/dbaccess/source/ui/uno/ColumnPeer.hxx
index a5a2562..3b97a6d 100644
--- a/dbaccess/source/ui/uno/ColumnPeer.hxx
+++ b/dbaccess/source/ui/uno/ColumnPeer.hxx
@@ -22,7 +22,7 @@
 #include <toolkit/awt/vclxwindow.hxx>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/sdbc/XConnection.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
 
 //.........................................................................
 namespace dbaui
@@ -31,13 +31,12 @@ namespace dbaui
     class OFieldDescription;
     class OColumnPeer   :   public VCLXWindow
     {
-        ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory> m_xORB;
         OFieldDescription*                                                              m_pActFieldDescr;
         ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>        m_xColumn;
     public:
 
         OColumnPeer(Window* _pParent
-                    ,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
+                    ,const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>& _rxContext);
 
         void setColumn(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xColumn);
         void setConnection(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xCon);
diff --git a/dbaccess/source/ui/uno/copytablewizard.cxx b/dbaccess/source/ui/uno/copytablewizard.cxx
index e06f91e..7618f33 100644
--- a/dbaccess/source/ui/uno/copytablewizard.cxx
+++ b/dbaccess/source/ui/uno/copytablewizard.cxx
@@ -1610,7 +1610,7 @@ Dialog* CopyTableWizard::createDialog( Window* _pParent )
         *m_pSourceObject,
         m_xSourceConnection.getTyped(),
         m_xDestConnection.getTyped(),
-        m_aContext.getLegacyServiceFactory(),
+        m_aContext.getUNOContext(),
         m_xInteractionHandler
     );
 
diff --git a/forms/source/component/Date.cxx b/forms/source/component/Date.cxx
index 5355b11..bc59971 100644
--- a/forms/source/component/Date.cxx
+++ b/forms/source/component/Date.cxx
@@ -22,6 +22,7 @@
 #include <tools/date.hxx>
 #include <connectivity/dbconversion.hxx>
 #include <com/sun/star/sdbc/DataType.hpp>
+#include <comphelper/processfactory.hxx>
 
 using namespace dbtools;
 
@@ -91,7 +92,7 @@ DBG_NAME( ODateModel )
 ODateModel::ODateModel(const Reference<XMultiServiceFactory>& _rxFactory)
             :OEditBaseModel( _rxFactory, VCL_CONTROLMODEL_DATEFIELD, FRM_SUN_CONTROL_DATEFIELD, sal_True, sal_True )
                         // use the old control name for compytibility reasons
-            ,OLimitedFormats( _rxFactory, FormComponentType::DATEFIELD )
+            ,OLimitedFormats( comphelper::getComponentContext(_rxFactory), FormComponentType::DATEFIELD )
 {
     DBG_CTOR( ODateModel, NULL );
 
@@ -116,7 +117,7 @@ ODateModel::ODateModel(const Reference<XMultiServiceFactory>& _rxFactory)
 //------------------------------------------------------------------------------
 ODateModel::ODateModel( const ODateModel* _pOriginal, const Reference<XMultiServiceFactory>& _rxFactory )
     :OEditBaseModel( _pOriginal, _rxFactory )
-    ,OLimitedFormats( _rxFactory, FormComponentType::DATEFIELD )
+    ,OLimitedFormats( comphelper::getComponentContext(_rxFactory), FormComponentType::DATEFIELD )
 {
     DBG_CTOR( ODateModel, NULL );
 
diff --git a/forms/source/component/Filter.cxx b/forms/source/component/Filter.cxx
index 948bdcc..6d92e77 100644
--- a/forms/source/component/Filter.cxx
+++ b/forms/source/component/Filter.cxx
@@ -120,7 +120,8 @@ namespace frm
         if ( !m_xFormatter.is() )
         {
             // we can create one from the connection, if it's an SDB connection
-            Reference< XNumberFormatsSupplier > xFormatSupplier = ::dbtools::getNumberFormats( m_xConnection, sal_True, maContext.getLegacyServiceFactory() );
+
+            Reference< XNumberFormatsSupplier > xFormatSupplier = ::dbtools::getNumberFormats( m_xConnection, sal_True, maContext.getUNOContext() );
 
             if ( xFormatSupplier.is() )
             {
diff --git a/forms/source/component/FormattedField.cxx b/forms/source/component/FormattedField.cxx
index dc33b2c..cc6e967 100644
--- a/forms/source/component/FormattedField.cxx
+++ b/forms/source/component/FormattedField.cxx
@@ -654,7 +654,7 @@ Reference<XNumberFormatsSupplier>  OFormattedModel::calcFormFormatsSupplier() co
     Reference< XRowSet > xRowSet( xNextParentForm, UNO_QUERY );
     Reference< XNumberFormatsSupplier > xSupplier;
     if (xRowSet.is())
-        xSupplier = getNumberFormats( getConnection(xRowSet), sal_True, getContext().getLegacyServiceFactory() );
+        xSupplier = getNumberFormats( getConnection(xRowSet), sal_True, getContext().getUNOContext() );
     return xSupplier;
 }
 
diff --git a/forms/source/component/Time.cxx b/forms/source/component/Time.cxx
index 7cd51c1..346f096 100644
--- a/forms/source/component/Time.cxx
+++ b/forms/source/component/Time.cxx
@@ -22,6 +22,7 @@
 #include <tools/time.hxx>
 #include <connectivity/dbconversion.hxx>
 #include <com/sun/star/sdbc/DataType.hpp>
+#include <comphelper/processfactory.hxx>
 
 using namespace dbtools;
 
@@ -124,7 +125,7 @@ DBG_NAME( OTimeModel )
 OTimeModel::OTimeModel(const Reference<XMultiServiceFactory>& _rxFactory)
             :OEditBaseModel( _rxFactory, VCL_CONTROLMODEL_TIMEFIELD, FRM_SUN_CONTROL_TIMEFIELD, sal_True, sal_True )
                                     // use the old control name for compytibility reasons
-            ,OLimitedFormats(_rxFactory, FormComponentType::TIMEFIELD)
+            ,OLimitedFormats( comphelper::getComponentContext(_rxFactory), FormComponentType::TIMEFIELD)
 {
     DBG_CTOR( OTimeModel, NULL );
 
@@ -137,7 +138,7 @@ OTimeModel::OTimeModel(const Reference<XMultiServiceFactory>& _rxFactory)
 //------------------------------------------------------------------------------
 OTimeModel::OTimeModel( const OTimeModel* _pOriginal, const Reference<XMultiServiceFactory>& _rxFactory )
     :OEditBaseModel( _pOriginal, _rxFactory )
-    ,OLimitedFormats( _rxFactory, FormComponentType::TIMEFIELD )
+    ,OLimitedFormats( comphelper::getComponentContext(_rxFactory), FormComponentType::TIMEFIELD )
 {
     DBG_CTOR( OTimeModel, NULL );
 
diff --git a/forms/source/inc/limitedformats.hxx b/forms/source/inc/limitedformats.hxx
index 814f492..9f22b18 100644
--- a/forms/source/inc/limitedformats.hxx
+++ b/forms/source/inc/limitedformats.hxx
@@ -22,7 +22,7 @@
 
 #include <osl/mutex.hxx>
 #include <com/sun/star/util/XNumberFormatsSupplier.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
 #include <com/sun/star/beans/XFastPropertySet.hpp>
 
 //.........................................................................
@@ -57,7 +57,7 @@ namespace frm
             pass the same value here share one table.</p>
         */
         OLimitedFormats(
-            const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,
+            const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext,
             const sal_Int16 _nClassId
             );
         ~OLimitedFormats();
@@ -82,7 +82,7 @@ namespace frm
                     getFormatsSupplier() const { return s_xStandardFormats; }
 
     private:
-        void acquireSupplier(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB);
+        void acquireSupplier(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext);
         void releaseSupplier();
 
         static void ensureTableInitialized(const sal_Int16 _nTableId);
diff --git a/forms/source/inc/services.hxx b/forms/source/inc/services.hxx
index 4c2ae6b..c8f3ffb 100644
--- a/forms/source/inc/services.hxx
+++ b/forms/source/inc/services.hxx
@@ -210,7 +210,6 @@ namespace frm
     // -----------------------
     FORMS_CONSTASCII_STRING( SRV_AWT_POINTER, "com.sun.star.awt.Pointer" );
     FORMS_CONSTASCII_STRING( SRV_AWT_IMAGEPRODUCER, "com.sun.star.awt.ImageProducer" );
-    FORMS_CONSTASCII_STRING( FRM_NUMBER_FORMATS_SUPPLIER, "com.sun.star.util.NumberFormatsSupplier" );
 
     FORMS_CONSTASCII_STRING( SRV_SDB_ROWSET, "com.sun.star.sdb.RowSet" );
     FORMS_CONSTASCII_STRING( SRV_SDB_CONNECTION, "com.sun.star.sdb.Connection" );
diff --git a/forms/source/misc/limitedformats.cxx b/forms/source/misc/limitedformats.cxx
index 82e4fe2..06bba11 100644
--- a/forms/source/misc/limitedformats.cxx
+++ b/forms/source/misc/limitedformats.cxx
@@ -23,6 +23,7 @@
 #include <comphelper/types.hxx>
 #include <comphelper/extract.hxx>
 #include <com/sun/star/form/FormComponentType.hpp>
+#include <com/sun/star/util/NumberFormatsSupplier.hpp>
 
 //.........................................................................
 namespace frm
@@ -132,12 +133,12 @@ namespace frm
     //= OLimitedFormats
     //=====================================================================
     //---------------------------------------------------------------------
-    OLimitedFormats::OLimitedFormats(const Reference< XMultiServiceFactory >& _rxORB, const sal_Int16 _nClassId)
+    OLimitedFormats::OLimitedFormats(const Reference< XComponentContext >& _rxContext, const sal_Int16 _nClassId)
         :m_nFormatEnumPropertyHandle(-1)
         ,m_nTableId(_nClassId)
     {
-        OSL_ENSURE(_rxORB.is(), "OLimitedFormats::OLimitedFormats: invalid service factory!");
-        acquireSupplier(_rxORB);
+        OSL_ENSURE(_rxContext.is(), "OLimitedFormats::OLimitedFormats: invalid service factory!");
+        acquireSupplier(_rxContext);
         ensureTableInitialized(m_nTableId);
     }
 
@@ -355,20 +356,12 @@ namespace frm
     }
 
     //---------------------------------------------------------------------
-    void OLimitedFormats::acquireSupplier(const Reference< XMultiServiceFactory >& _rxORB)
+    void OLimitedFormats::acquireSupplier(const Reference< XComponentContext >& _rxContext)
     {
         ::osl::MutexGuard aGuard(s_aMutex);
-        if ((1 == ++s_nInstanceCount) && _rxORB.is())
+        if (1 == ++s_nInstanceCount)
         {   // create the standard formatter
-
-            Sequence< Any > aInit(1);
-            aInit[0] <<= getLocale(ltEnglishUS);
-
-            Reference< XInterface > xSupplier = _rxORB->createInstanceWithArguments(FRM_NUMBER_FORMATS_SUPPLIER, aInit);
-            OSL_ENSURE(xSupplier.is(), "OLimitedFormats::OLimitedFormats: could not create a formats supplier!");
-
-            s_xStandardFormats = Reference< XNumberFormatsSupplier >(xSupplier, UNO_QUERY);
-            OSL_ENSURE(s_xStandardFormats.is() || !xSupplier.is(), "OLimitedFormats::OLimitedFormats: missing an interface!");
+            s_xStandardFormats = NumberFormatsSupplier::createWithLocale(_rxContext, getLocale(ltEnglishUS));
         }
     }
 
diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk
index 487a94c..5692dc9 100644
--- a/offapi/UnoApi_offapi.mk
+++ b/offapi/UnoApi_offapi.mk
@@ -311,6 +311,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/ui/dialogs
 $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/util,\
 	JobManager \
 	NumberFormatter \
+	NumberFormatsSupplier \
 	PathSubstitution \
 	TextSearch \
 	UriAbbreviation \
@@ -1457,7 +1458,6 @@ $(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star/util,\
 	NumberFormatProperties \
 	NumberFormatSettings \
 	NumberFormats \
-	NumberFormatsSupplier \
 	OfficeInstallationDirectories \
 	PathSettings \
 	ReplaceDescriptor \
diff --git a/offapi/com/sun/star/util/NumberFormatsSupplier.idl b/offapi/com/sun/star/util/NumberFormatsSupplier.idl
index 9640cd2..683d2a3 100644
--- a/offapi/com/sun/star/util/NumberFormatsSupplier.idl
+++ b/offapi/com/sun/star/util/NumberFormatsSupplier.idl
@@ -21,10 +21,10 @@
 #define __com_sun_star_util_NumberFormatsSupplier_idl__
 
 #include <com/sun/star/util/XNumberFormatsSupplier.idl>
-#include <com/sun/star/lang/XInitialization.idl>
+#include <com/sun/star/lang/Locale.idl>
 
 
- module com {  module sun {  module star {  module util {
+module com {  module sun {  module star {  module util {
 
 
 /** provides an supplier of number formats
@@ -34,24 +34,20 @@
 
     @since OOo 1.1.2
 */
-published service NumberFormatsSupplier
+published service NumberFormatsSupplier : XNumberFormatsSupplier
 {
-    /** used to initialize the component when instantiating.
 
-        <p>In the <member scope="com::sun::star::lang">XInitialization::initialize</member> method, you can
-        pass a <type scope="com::sun::star::lang">Locale</type> to specify the default locale of the
-        number formats supplier.</p>
+    /**
+        Create using specific locale.
 
-        <p>The component should be initialized only once, after it has been instantiated, and before it
-        has been used.<br/>
-        If you initialize it a second time (or after you used it), it is up to implementation
-        how this is handled.</p>
+        @param aLocale the locale of the number formats supplier
     */
-    interface com::sun::star::lang::XInitialization;
+    createWithLocale([in] com::sun::star::lang::Locale locale);
 
-    /** allows access to the number formats supplied by the component.
+    /**
+        Create using default locale.
     */
-    interface XNumberFormatsSupplier;
+    createWithDefaultLocale();
 };
 
 
diff --git a/offapi/type_reference/types.rdb b/offapi/type_reference/types.rdb
index dee384c..c178bb1 100644
Binary files a/offapi/type_reference/types.rdb and b/offapi/type_reference/types.rdb differ
diff --git a/reportdesign/source/core/api/ReportDefinition.cxx b/reportdesign/source/core/api/ReportDefinition.cxx
index 1ae1719..3fc9edb 100644
--- a/reportdesign/source/core/api/ReportDefinition.cxx
+++ b/reportdesign/source/core/api/ReportDefinition.cxx
@@ -72,6 +72,7 @@
 #include <com/sun/star/task/XStatusIndicator.hpp>
 #include <com/sun/star/task/XStatusIndicatorFactory.hpp>
 #include <com/sun/star/ui/XUIConfigurationStorage.hpp>
+#include <com/sun/star/util/NumberFormatsSupplier.hpp>
 #include <com/sun/star/xml/AttributeData.hpp>
 #include <com/sun/star/xml/sax/Writer.hpp>
 
@@ -1300,11 +1301,7 @@ void OReportDefinition::fillArgs(::comphelper::MediaDescriptor& _aDescriptor)
     }
     if ( !m_pImpl->m_xNumberFormatsSupplier.is() )
     {
-        m_pImpl->m_xNumberFormatsSupplier.set(
-                    m_aProps->m_xContext->getServiceManager()->createInstanceWithContext(
-                        ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.NumberFormatsSupplier")) ,m_aProps->m_xContext),
-                        uno::UNO_QUERY_THROW
-                );
+        m_pImpl->m_xNumberFormatsSupplier.set( util::NumberFormatsSupplier::createWithDefaultLocale( m_aProps->m_xContext ) );
     }
     lcl_stripLoadArguments( _aDescriptor, m_pImpl->m_aArgs );
     ::rtl::OUString sCaption;
diff --git a/svtools/source/table/cellvalueconversion.cxx b/svtools/source/table/cellvalueconversion.cxx
index d47210b..86a84bd 100644
--- a/svtools/source/table/cellvalueconversion.cxx
+++ b/svtools/source/table/cellvalueconversion.cxx
@@ -20,7 +20,7 @@
 #include "cellvalueconversion.hxx"
 
 #include <com/sun/star/util/NumberFormatter.hpp>
-#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
+#include <com/sun/star/util/NumberFormatsSupplier.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/util/Date.hpp>
 #include <com/sun/star/util/Time.hpp>
@@ -50,7 +50,9 @@ namespace svt
     using ::com::sun::star::util::NumberFormatter;
     using ::com::sun::star::uno::UNO_QUERY_THROW;
     using ::com::sun::star::util::XNumberFormatsSupplier;
+    using ::com::sun::star::util::NumberFormatsSupplier;
     using ::com::sun::star::beans::XPropertySet;
+    using ::com::sun::star::lang::Locale;
     using ::com::sun::star::uno::UNO_SET_THROW;
     using ::com::sun::star::uno::Exception;
     using ::com::sun::star::util::DateTime;
@@ -340,13 +342,10 @@ namespace svt
                 Reference< XNumberFormatter > const xFormatter( NumberFormatter::create( io_data.aContext.getUNOContext() ), UNO_QUERY_THROW );
 
                 // a supplier of number formats
-                Sequence< Any > aInitArgs(1);
-                aInitArgs[0] <<= SvtSysLocale().GetLanguageTag().getLocale();
+                Locale aLocale = SvtSysLocale().GetLanguageTag().getLocale();
 
-                Reference< XNumberFormatsSupplier > const xSupplier(
-                    io_data.aContext.createComponentWithArguments( "com.sun.star.util.NumberFormatsSupplier", aInitArgs ),
-                    UNO_QUERY_THROW
-                );
+                Reference< XNumberFormatsSupplier > const xSupplier =
+                    NumberFormatsSupplier::createWithLocale( io_data.aContext.getUNOContext(), aLocale );
 
                 // ensure a NullDate we will assume later on
                 UnoDate const aNullDate( 1, 1, 1900 );
diff --git a/toolkit/source/controls/formattedcontrol.cxx b/toolkit/source/controls/formattedcontrol.cxx
index e08957d..79e905b 100644
--- a/toolkit/source/controls/formattedcontrol.cxx
+++ b/toolkit/source/controls/formattedcontrol.cxx
@@ -23,7 +23,7 @@
 
 #include <com/sun/star/awt/XVclWindowPeer.hpp>
 #include <com/sun/star/util/NumberFormatter.hpp>
-#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
+#include <com/sun/star/util/NumberFormatsSupplier.hpp>
 
 #include <tools/diagnose_ex.h>
 #include <comphelper/processfactory.hxx>
@@ -74,11 +74,7 @@ namespace toolkit
             if ( !rDefaultFormats.is() && !rbTriedCreation )
             {
                 rbTriedCreation = true;
-                rDefaultFormats = Reference< XNumberFormatsSupplier >(
-                    ::comphelper::getProcessServiceFactory()->createInstance(
-                        ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.NumberFormatsSupplier" ) ) ),
-                    UNO_QUERY_THROW
-                );
+                rDefaultFormats = NumberFormatsSupplier::createWithDefaultLocale( ::comphelper::getProcessComponentContext() );
             }
             if ( !rDefaultFormats.is() )
                 throw RuntimeException();
diff --git a/xmloff/source/forms/layerexport.cxx b/xmloff/source/forms/layerexport.cxx
index fbee657..bb38381 100644
--- a/xmloff/source/forms/layerexport.cxx
+++ b/xmloff/source/forms/layerexport.cxx
@@ -40,11 +40,13 @@
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/container/XChild.hpp>
 #include <com/sun/star/script/XEventAttacherManager.hpp>
+#include <com/sun/star/util/NumberFormatsSupplier.hpp>
 #include "eventexport.hxx"
 #include <xmloff/XMLEventExport.hxx>
 #include "formevents.hxx"
 #include <xmloff/xmlnumfe.hxx>
 #include "xmloff/xformsexport.hxx"
+#include "comphelper/processfactory.hxx"
 
 #include <com/sun/star/text/XText.hpp>
 
@@ -760,22 +762,12 @@ namespace xmloff
             {
                 // create it for en-US (does not really matter, as we will specify a locale for every
                 // concrete language to use)
-                Sequence< Any > aSupplierArgs(1);
-                aSupplierArgs[0] <<= Locale (   ::rtl::OUString("en"),
-                                                ::rtl::OUString("US"),
-                                                ::rtl::OUString()
-                                            );
-
-                Reference< XInterface > xFormatsSupplierUntyped =
-                    m_rContext.getServiceFactory()->createInstanceWithArguments(
-                        SERVICE_NUMBERFORMATSSUPPLIER,
-                        aSupplierArgs
-                    );
-                OSL_ENSURE(xFormatsSupplierUntyped.is(), "OFormLayerXMLExport_Impl::getControlNumberStyleExport: could not instantiate a number formats supplier!");
-
-                xFormatsSupplier = Reference< XNumberFormatsSupplier >(xFormatsSupplierUntyped, UNO_QUERY);
-                if (xFormatsSupplier.is())
-                    m_xControlNumberFormats = xFormatsSupplier->getNumberFormats();
+                Locale aLocale (  ::rtl::OUString("en"),
+                                                 ::rtl::OUString("US"),
+                                                 ::rtl::OUString()
+                                             );
+                xFormatsSupplier = NumberFormatsSupplier::createWithLocale( comphelper::getComponentContext(m_rContext.getServiceFactory()), aLocale );
+                m_xControlNumberFormats = xFormatsSupplier->getNumberFormats();
             }
             catch(const Exception&)
             {
diff --git a/xmloff/source/forms/strings.hxx b/xmloff/source/forms/strings.hxx
index 1840a6f..3d27364 100644
--- a/xmloff/source/forms/strings.hxx
+++ b/xmloff/source/forms/strings.hxx
@@ -158,7 +158,6 @@ namespace xmloff
 
     // services
     XMLFORM_CONSTASCII_STRING( SERVICE_FORMSCOLLECTION,         "com.sun.star.form.Forms" );
-    XMLFORM_CONSTASCII_STRING( SERVICE_NUMBERFORMATSSUPPLIER,   "com.sun.star.util.NumberFormatsSupplier" );
     XMLFORM_CONSTASCII_STRING( SERVICE_SPREADSHEET_DOCUMENT,    "com.sun.star.sheet.SpreadsheetDocument");
     XMLFORM_CONSTASCII_STRING( SERVICE_CELLVALUEBINDING,        "com.sun.star.table.CellValueBinding" );
     XMLFORM_CONSTASCII_STRING( SERVICE_LISTINDEXCELLBINDING,    "com.sun.star.table.ListPositionCellBinding" );
diff --git a/xmlscript/source/xmldlg_imexp/xmldlg_import.cxx b/xmlscript/source/xmldlg_imexp/xmldlg_import.cxx
index d1dad5f..98fe378 100644
--- a/xmlscript/source/xmldlg_imexp/xmldlg_import.cxx
+++ b/xmlscript/source/xmldlg_imexp/xmldlg_import.cxx
@@ -50,6 +50,7 @@
 #include <com/sun/star/document/XStorageBasedDocument.hpp>
 #include <com/sun/star/script/DocumentScriptLibraryContainer.hpp>
 #include <com/sun/star/script/vba/XVBACompatibility.hpp>
+#include <com/sun/star/util/NumberFormatsSupplier.hpp>
 
 #include <comphelper/componentcontext.hxx>
 
@@ -1752,9 +1753,7 @@ Reference< util::XNumberFormatsSupplier > const & DialogImport::getNumberFormats
 {
     if (! _xSupplier.is())
     {
-        Reference< XComponentContext > xContext( getComponentContext() );
-        Reference< util::XNumberFormatsSupplier > xSupplier(
-            xContext->getServiceManager()->createInstanceWithContext( "com.sun.star.util.NumberFormatsSupplier", xContext ), UNO_QUERY );
+        Reference< util::XNumberFormatsSupplier > xSupplier = util::NumberFormatsSupplier::createWithDefaultLocale( getComponentContext() );
 
         ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
         if (! _xSupplier.is())


More information about the Libreoffice-commits mailing list