diff options
author | Oliver Bolte <obo@openoffice.org> | 2009-09-08 04:57:32 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2009-09-08 04:57:32 +0000 |
commit | ca00697e3dae9a03573d11281fc8d9a4ee391d3d (patch) | |
tree | c390c65f02f6f32b6d6d9faa600f4688a8c81857 /framework/inc/uifactory/uielementfactorymanager.hxx | |
parent | 047473d4f1a12e867ab7154113f7f1c5422d5368 (diff) |
CWS-TOOLING: integrate CWS oj18
2009-08-21 15:08:49 +0200 oj r275263 : wrong check
2009-08-21 08:56:01 +0200 oj r275215 : missing not
2009-08-20 07:27:13 +0200 oj r275164 : use new method from global
2009-08-19 10:22:35 +0200 oj r275138 : call GetLocale instead of pLocale
2009-08-18 10:39:32 +0200 oj r275082 : missing header include
2009-08-18 10:09:44 +0200 oj r275081 : new methods at global
2009-08-18 10:09:00 +0200 oj r275080 : unused var
2009-08-18 08:59:04 +0200 oj r275078 : move files from classes to xml
2009-08-17 14:58:16 +0200 oj r275056 : CWS-TOOLING: rebase CWS oj18 to trunk@275001 (milestone: DEV300:m55)
2009-08-17 13:29:44 +0200 oj r275047 : compile error
2009-08-17 13:27:47 +0200 oj r275045 : compile error
2009-08-17 11:44:54 +0200 oj r275040 : add dep
2009-07-22 14:26:05 +0200 oj r274240 : move unused services into fwl
2009-07-22 14:25:35 +0200 oj r274239 : move unused services into fwl
2009-07-22 13:47:45 +0200 oj r274233 : remove some unused code
2009-07-22 09:06:20 +0200 oj r274219 : export dbtoolsclient dbcharsethelper for sc
2009-07-22 08:48:58 +0200 oj r274218 : create NumberFormatter on demand
2009-07-22 08:39:23 +0200 oj r274217 : change char to sal_Char
2009-07-22 07:33:34 +0200 oj r274214 : export dbtoolsclient dbcharsethelper for sc
2009-07-22 07:30:04 +0200 oj r274213 : late init of numberformatter and breakiterator
2009-07-22 07:28:55 +0200 oj r274212 : export dbtoolsclient dbcharsethelper for sc
2009-07-21 13:43:28 +0200 oj r274196 : check if quick start is enbaled
2009-07-21 13:40:09 +0200 oj r274195 : check config entry for UiEventsLogger
2009-07-21 13:37:40 +0200 oj r274194 : code refactoring, remove of duplicate code and some late inits and removale of not needed files
2009-07-21 13:35:38 +0200 oj r274193 : code refactoring, remove of duplicate code and some late inits and removale of not needed files
2009-07-21 13:33:41 +0200 oj r274192 : doc meta data will now be created on demand
2009-07-21 13:13:40 +0200 oj r274187 : load ldap functions on demand
2009-07-21 13:03:17 +0200 oj r274183 : late init of TransliterationImpl
2009-07-21 12:36:10 +0200 oj r274180 : late init of charClass
Diffstat (limited to 'framework/inc/uifactory/uielementfactorymanager.hxx')
-rw-r--r-- | framework/inc/uifactory/uielementfactorymanager.hxx | 75 |
1 files changed, 62 insertions, 13 deletions
diff --git a/framework/inc/uifactory/uielementfactorymanager.hxx b/framework/inc/uifactory/uielementfactorymanager.hxx index 9e4c997082e3..bbb019352e49 100644 --- a/framework/inc/uifactory/uielementfactorymanager.hxx +++ b/framework/inc/uifactory/uielementfactorymanager.hxx @@ -51,35 +51,85 @@ // interface includes //_________________________________________________________________________________________________________________ #include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/lang/XTypeProvider.hpp> #include <com/sun/star/ui/XUIElementFactory.hpp> #include <com/sun/star/ui/XUIElementFactoryRegistration.hpp> +#include <com/sun/star/container/XContainerListener.hpp> +#include <com/sun/star/container/XNameAccess.hpp> #include "com/sun/star/frame/XModuleManager.hpp" //_________________________________________________________________________________________________________________ // other includes //_________________________________________________________________________________________________________________ -#include <cppuhelper/weak.hxx> +#include <cppuhelper/implbase1.hxx> +#include <cppuhelper/implbase3.hxx> #include <rtl/ustring.hxx> namespace framework { -class ConfigurationAccess_UIElementFactoryManager; -class UIElementFactoryManager : public com::sun::star::lang::XTypeProvider , - public com::sun::star::lang::XServiceInfo , - public ::com::sun::star::ui::XUIElementFactory , - public ::com::sun::star::ui::XUIElementFactoryRegistration , - private ThreadHelpBase , // Struct for right initalization of mutex member! Must be first of baseclasses. - public ::cppu::OWeakObject + class ConfigurationAccess_FactoryManager : // interfaces + // baseclasses + // Order is neccessary for right initialization! + private ThreadHelpBase , + public ::cppu::WeakImplHelper1< ::com::sun::star::container::XContainerListener> +{ + public: + ConfigurationAccess_FactoryManager( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rServiceManager,const ::rtl::OUString& _sRoot ); + virtual ~ConfigurationAccess_FactoryManager(); + + void readConfigurationData(); + + rtl::OUString getFactorySpecifierFromTypeNameModule( const rtl::OUString& rType, const rtl::OUString& rName, const rtl::OUString& rModule ) const; + void addFactorySpecifierToTypeNameModule( const rtl::OUString& rType, const rtl::OUString& rName, const rtl::OUString& rModule, const rtl::OUString& aServiceSpecifier ); + void removeFactorySpecifierFromTypeNameModule( const rtl::OUString& rType, const rtl::OUString& rName, const rtl::OUString& rModule ); + ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > getFactoriesDescription() const; + + // container.XContainerListener + virtual void SAL_CALL elementInserted( const ::com::sun::star::container::ContainerEvent& Event ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL elementRemoved( const ::com::sun::star::container::ContainerEvent& Event ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL elementReplaced( const ::com::sun::star::container::ContainerEvent& Event ) throw (::com::sun::star::uno::RuntimeException); + + // lang.XEventListener + virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException); + + private: + class FactoryManagerMap : public std::hash_map< rtl::OUString, + rtl::OUString, + OUStringHashCode, + ::std::equal_to< ::rtl::OUString > > + { + inline void free() + { + FactoryManagerMap().swap( *this ); + } + }; + + sal_Bool impl_getElementProps( const ::com::sun::star::uno::Any& rElement, rtl::OUString& rType, rtl::OUString& rName, rtl::OUString& rModule, rtl::OUString& rServiceSpecifier ) const; + + rtl::OUString m_aPropType; + rtl::OUString m_aPropName; + rtl::OUString m_aPropModule; + rtl::OUString m_aPropFactory; + ::rtl::OUString m_sRoot; + FactoryManagerMap m_aFactoryManagerMap; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xConfigProvider; + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xConfigAccess; + sal_Bool m_bConfigAccessInitialized; + bool m_bConfigDirty; +}; + + +class UIElementFactoryManager : private ThreadHelpBase , // Struct for right initalization of mutex member! Must be first of baseclasses. + public ::cppu::WeakImplHelper3< ::com::sun::star::lang::XServiceInfo, + ::com::sun::star::ui::XUIElementFactory, + ::com::sun::star::ui::XUIElementFactoryRegistration> { public: UIElementFactoryManager( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ); virtual ~UIElementFactoryManager(); // XInterface, XTypeProvider, XServiceInfo - FWK_DECLARE_XINTERFACE - FWK_DECLARE_XTYPEPROVIDER DECLARE_XSERVICEINFO // XUIElementFactory @@ -92,12 +142,11 @@ class UIElementFactoryManager : public com::sun::star::lang::XTypeProvider virtual void SAL_CALL deregisterFactory( const ::rtl::OUString& aType, const ::rtl::OUString& aName, const ::rtl::OUString& aModuleIdentifier ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException); private: - void RetrieveTypeNameFromResourceURL( const ::rtl::OUString& aResourceURL, rtl::OUString& aType, rtl::OUString& aName ); sal_Bool m_bConfigRead; ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager; ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModuleManager > m_xModuleManager; - ConfigurationAccess_UIElementFactoryManager* m_pConfigAccess; + ConfigurationAccess_FactoryManager* m_pConfigAccess; }; } // namespace framework |