| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef SCRIPTING_DLGPROV_HXX |
| #define SCRIPTING_DLGPROV_HXX |
| |
| #ifndef _COM_SUN_STAR_AWT_XSTRINGRESOURCEWITHSTORAGE_HPP_ |
| #include <com/sun/star/resource/XStringResourceWithStorage.hpp> |
| #endif |
| #ifndef _COM_SUN_STAR_AWT_XSTRINGRESOURCEWITHSTORAGE_HPP_ |
| #include <com/sun/star/resource/XStringResourceWithLocation.hpp> |
| #endif |
| #include <com/sun/star/lang/XServiceInfo.hpp> |
| #include <com/sun/star/lang/XInitialization.hpp> |
| #include <com/sun/star/uno/XComponentContext.hpp> |
| #include <com/sun/star/ucb/XSimpleFileAccess.hpp> |
| #include <com/sun/star/io/XInputStream.hpp> |
| #include <com/sun/star/io/XOutputStream.hpp> |
| #include <cppuhelper/implbase1.hxx> |
| #include <cppuhelper/implbase2.hxx> |
| #include <cppuhelper/interfacecontainer.hxx> |
| #include <osl/mutex.hxx> |
| |
| #include <vector> |
| #include <hash_map> |
| |
| //......................................................................... |
| namespace stringresource |
| { |
| //......................................................................... |
| |
| // ============================================================================= |
| // mutex |
| // ============================================================================= |
| |
| ::osl::Mutex& getMutex(); |
| |
| |
| // ============================================================================= |
| // class stringresourceImpl |
| // ============================================================================= |
| |
| // Hashtable to map string ids to string |
| struct hashName_Impl |
| { |
| size_t operator()(const ::rtl::OUString Str) const |
| { |
| return (size_t)Str.hashCode(); |
| } |
| }; |
| |
| struct eqName_Impl |
| { |
| sal_Bool operator()(const ::rtl::OUString Str1, const ::rtl::OUString Str2) const |
| { |
| return ( Str1 == Str2 ); |
| } |
| }; |
| |
| typedef std::hash_map |
| < |
| ::rtl::OUString, |
| ::rtl::OUString, |
| hashName_Impl, |
| eqName_Impl |
| > |
| IdToStringMap; |
| |
| typedef std::hash_map |
| < |
| ::rtl::OUString, |
| sal_Int32, |
| hashName_Impl, |
| eqName_Impl |
| > |
| IdToIndexMap; |
| |
| |
| struct LocaleItem |
| { |
| ::com::sun::star::lang::Locale m_locale; |
| IdToStringMap m_aIdToStringMap; |
| IdToIndexMap m_aIdToIndexMap; |
| sal_Int32 m_nNextIndex; |
| bool m_bLoaded; |
| bool m_bModified; |
| |
| LocaleItem( ::com::sun::star::lang::Locale locale, bool bLoaded=true ) |
| : m_locale( locale ) |
| , m_nNextIndex( 0 ) |
| , m_bLoaded( bLoaded ) |
| , m_bModified( false ) |
| {} |
| }; |
| |
| typedef std::vector< LocaleItem* > LocaleItemVector; |
| typedef std::vector< LocaleItem* >::iterator LocaleItemVectorIt; |
| typedef std::vector< LocaleItem* >::const_iterator LocaleItemVectorConstIt; |
| |
| typedef ::cppu::WeakImplHelper2< |
| ::com::sun::star::lang::XServiceInfo, |
| ::com::sun::star::resource::XStringResourceManager > StringResourceImpl_BASE; |
| |
| class StringResourceImpl : public StringResourceImpl_BASE |
| { |
| protected: |
| ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext; |
| ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiComponentFactory > m_xMCF; |
| |
| LocaleItem* m_pCurrentLocaleItem; |
| LocaleItem* m_pDefaultLocaleItem; |
| bool m_bDefaultModified; |
| |
| ::cppu::OInterfaceContainerHelper m_aListenerContainer; |
| |
| LocaleItemVector m_aLocaleItemVector; |
| LocaleItemVector m_aDeletedLocaleItemVector; |
| LocaleItemVector m_aChangedDefaultLocaleVector; |
| |
| bool m_bModified; |
| bool m_bReadOnly; |
| |
| sal_Int32 m_nNextUniqueNumericId; |
| |
| // Scans ResourceID to start with number and adapt m_nNextUniqueNumericId |
| void implScanIdForNumber( const ::rtl::OUString& ResourceID ); |
| const static sal_Int32 UNIQUE_NUMBER_NEEDS_INITIALISATION = -1; |
| |
| // Checks read only status and throws exception if it's true |
| void implCheckReadOnly( const sal_Char* pExceptionMsg ) |
| throw (::com::sun::star::lang::NoSupportException); |
| |
| // Return the context's MultiComponentFactory |
| ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiComponentFactory > |
| getMultiComponentFactory( void ); |
| |
| // Returns the LocalItem for a given locale, if it exists, otherwise NULL |
| // This method compares the locales exactly, no closest match search is performed |
| LocaleItem* getItemForLocale( const ::com::sun::star::lang::Locale& locale, sal_Bool bException ) |
| throw (::com::sun::star::lang::IllegalArgumentException); |
| |
| // Returns the LocalItem for a given locale, if it exists, otherwise NULL |
| // This method performes a closest match search, at least the language must match |
| LocaleItem* getClosestMatchItemForLocale( const ::com::sun::star::lang::Locale& locale ); |
| void implSetCurrentLocale( const ::com::sun::star::lang::Locale& locale, |
| sal_Bool FindClosestMatch, sal_Bool bUseDefaultIfNoMatch ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); |
| |
| void implModified( void ); |
| void implNotifyListeners( void ); |
| |
| //=== Impl methods for ...ForLocale methods === |
| ::rtl::OUString SAL_CALL implResolveString( const ::rtl::OUString& ResourceID, LocaleItem* pLocaleItem ) |
| throw (::com::sun::star::resource::MissingResourceException); |
| ::sal_Bool implHasEntryForId( const ::rtl::OUString& ResourceID, LocaleItem* pLocaleItem ); |
| ::com::sun::star::uno::Sequence< ::rtl::OUString > implGetResourceIDs( LocaleItem* pLocaleItem ); |
| void implSetString( const ::rtl::OUString& ResourceID, |
| const ::rtl::OUString& Str, LocaleItem* pLocaleItem ); |
| void implRemoveId( const ::rtl::OUString& ResourceID, LocaleItem* pLocaleItem ) |
| throw (::com::sun::star::resource::MissingResourceException); |
| |
| // Method to load a locale if necessary, returns true if loading was |
| // successful. Default implementation in base class just returns true. |
| virtual bool loadLocale( LocaleItem* pLocaleItem ); |
| |
| virtual void implLoadAllLocales( void ); |
| |
| public: |
| StringResourceImpl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext ); |
| virtual ~StringResourceImpl(); |
| |
| // XServiceInfo |
| virtual ::rtl::OUString SAL_CALL getImplementationName( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XModifyBroadcaster |
| virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourceResolver |
| virtual ::rtl::OUString SAL_CALL resolveString( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException); |
| virtual ::rtl::OUString SAL_CALL resolveStringForLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw ( ::com::sun::star::resource::MissingResourceException, |
| ::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL hasEntryForId( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL hasEntryForIdAndLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDs( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDsForLocale |
| ( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::lang::Locale SAL_CALL getCurrentLocale( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::lang::Locale SAL_CALL getDefaultLocale( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getLocales( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourceManager |
| virtual ::sal_Bool SAL_CALL isReadOnly() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setCurrentLocale( const ::com::sun::star::lang::Locale& locale, ::sal_Bool FindClosestMatch ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setDefaultLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL setString( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str ) |
| throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setStringForLocale( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeId( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL removeIdForLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL newLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::container::ElementExistException, ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ) |
| throw (::com::sun::star::lang::NoSupportException, |
| ::com::sun::star::uno::RuntimeException); |
| }; |
| |
| typedef ::cppu::ImplInheritanceHelper1< |
| StringResourceImpl, |
| ::com::sun::star::resource::XStringResourcePersistence > StringResourcePersistenceImpl_BASE; |
| |
| class BinaryOutput; |
| class BinaryInput; |
| |
| class StringResourcePersistenceImpl : public StringResourcePersistenceImpl_BASE |
| { |
| protected: |
| ::rtl::OUString m_aNameBase; |
| ::rtl::OUString m_aComment; |
| |
| void SAL_CALL implInitializeCommonParameters |
| ( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| |
| // Scan locale properties files |
| virtual void implScanLocales( void ); |
| |
| // Method to load a locale if necessary, returns true if loading was successful |
| virtual bool loadLocale( LocaleItem* pLocaleItem ); |
| |
| // does the actual loading |
| virtual bool implLoadLocale( LocaleItem* pLocaleItem ); |
| |
| virtual void implLoadAllLocales( void ); |
| |
| void implScanLocaleNames( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aContentSeq ); |
| ::rtl::OUString implGetFileNameForLocaleItem( LocaleItem* pLocaleItem, const ::rtl::OUString& aNameBase ); |
| ::rtl::OUString implGetPathForLocaleItem( LocaleItem* pLocaleItem, const ::rtl::OUString& aNameBase, |
| const ::rtl::OUString& aLocation, bool bDefaultFile=false ); |
| |
| bool implReadPropertiesFile( LocaleItem* pLocaleItem, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xInput ); |
| |
| bool implWritePropertiesFile( LocaleItem* pLocaleItem, const ::com::sun::star::uno::Reference |
| < ::com::sun::star::io::XOutputStream >& xOutputStream, const ::rtl::OUString& aComment ); |
| |
| void implWriteLocaleBinary( LocaleItem* pLocaleItem, BinaryOutput& rOut ); |
| |
| void implStoreAtStorage |
| ( |
| const ::rtl::OUString& aNameBase, |
| const ::rtl::OUString& aComment, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage, |
| bool bUsedForStore, |
| bool bStoreAll |
| ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| |
| void implKillRemovedLocaleFiles |
| ( |
| const ::rtl::OUString& Location, |
| const ::rtl::OUString& aNameBase, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess >& xFileAccess |
| ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| |
| void implKillChangedDefaultFiles |
| ( |
| const ::rtl::OUString& Location, |
| const ::rtl::OUString& aNameBase, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess >& xFileAccess |
| ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| |
| void implStoreAtLocation |
| ( |
| const ::rtl::OUString& Location, |
| const ::rtl::OUString& aNameBase, |
| const ::rtl::OUString& aComment, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess >& xFileAccess, |
| bool bUsedForStore, |
| bool bStoreAll, |
| bool bKillAll = false |
| ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| |
| public: |
| StringResourcePersistenceImpl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext ); |
| virtual ~StringResourcePersistenceImpl(); |
| |
| // XServiceInfo |
| virtual ::rtl::OUString SAL_CALL getImplementationName( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XModifyBroadcaster |
| virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourceResolver |
| virtual ::rtl::OUString SAL_CALL resolveString( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException); |
| virtual ::rtl::OUString SAL_CALL resolveStringForLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw ( ::com::sun::star::resource::MissingResourceException, |
| ::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL hasEntryForId( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL hasEntryForIdAndLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDs( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDsForLocale |
| ( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::lang::Locale SAL_CALL getCurrentLocale( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::lang::Locale SAL_CALL getDefaultLocale( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getLocales( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourceManager |
| virtual ::sal_Bool SAL_CALL isReadOnly() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setCurrentLocale( const ::com::sun::star::lang::Locale& locale, ::sal_Bool FindClosestMatch ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setDefaultLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL setString( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str ) |
| throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setStringForLocale( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeId( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL removeIdForLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL newLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::container::ElementExistException, ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ) |
| throw (::com::sun::star::lang::NoSupportException, |
| ::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourcePersistence |
| virtual void SAL_CALL store( ) |
| throw (::com::sun::star::lang::NoSupportException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL isModified( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setComment( const ::rtl::OUString& Comment ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL storeToStorage |
| ( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage, |
| const ::rtl::OUString& NameBase, const ::rtl::OUString& Comment ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL storeToURL( const ::rtl::OUString& URL, const ::rtl::OUString& NameBase, |
| const ::rtl::OUString& Comment, const ::com::sun::star::uno::Reference |
| < ::com::sun::star::task::XInteractionHandler >& Handler ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::sal_Int8 > SAL_CALL exportBinary( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL importBinary( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& Data ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); |
| }; |
| |
| |
| typedef ::cppu::ImplInheritanceHelper2< |
| StringResourcePersistenceImpl, |
| ::com::sun::star::lang::XInitialization, |
| ::com::sun::star::resource::XStringResourceWithStorage > StringResourceWithStorageImpl_BASE; |
| |
| class StringResourceWithStorageImpl : public StringResourceWithStorageImpl_BASE |
| { |
| ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xStorage; |
| bool m_bStorageChanged; |
| |
| virtual void implScanLocales( void ); |
| virtual bool implLoadLocale( LocaleItem* pLocaleItem ); |
| |
| public: |
| StringResourceWithStorageImpl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext ); |
| virtual ~StringResourceWithStorageImpl(); |
| |
| // XServiceInfo |
| virtual ::rtl::OUString SAL_CALL getImplementationName( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XInitialization |
| virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| |
| // XModifyBroadcaster |
| virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourceResolver |
| virtual ::rtl::OUString SAL_CALL resolveString( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException); |
| virtual ::rtl::OUString SAL_CALL resolveStringForLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw ( ::com::sun::star::resource::MissingResourceException, |
| ::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL hasEntryForId( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL hasEntryForIdAndLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDs( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDsForLocale |
| ( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::lang::Locale SAL_CALL getCurrentLocale( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::lang::Locale SAL_CALL getDefaultLocale( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getLocales( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourceManager |
| virtual ::sal_Bool SAL_CALL isReadOnly() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setCurrentLocale( const ::com::sun::star::lang::Locale& locale, ::sal_Bool FindClosestMatch ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setDefaultLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL setString( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str ) |
| throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setStringForLocale( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeId( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL removeIdForLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL newLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::container::ElementExistException, ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ) |
| throw (::com::sun::star::lang::NoSupportException, |
| ::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourcePersistence |
| virtual void SAL_CALL store( ) |
| throw (::com::sun::star::lang::NoSupportException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL isModified( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setComment( const ::rtl::OUString& Comment ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL storeToStorage |
| ( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage, |
| const ::rtl::OUString& NameBase, const ::rtl::OUString& Comment ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL storeToURL( const ::rtl::OUString& URL, const ::rtl::OUString& NameBase, |
| const ::rtl::OUString& Comment, const ::com::sun::star::uno::Reference |
| < ::com::sun::star::task::XInteractionHandler >& Handler ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::sal_Int8 > SAL_CALL exportBinary( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL importBinary( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& Data ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourceWithStorage |
| virtual void SAL_CALL storeAsStorage |
| ( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setStorage |
| ( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); |
| }; |
| |
| |
| typedef ::cppu::ImplInheritanceHelper2< |
| StringResourcePersistenceImpl, |
| ::com::sun::star::lang::XInitialization, |
| ::com::sun::star::resource::XStringResourceWithLocation > StringResourceWithLocationImpl_BASE; |
| |
| class StringResourceWithLocationImpl : public StringResourceWithLocationImpl_BASE |
| { |
| ::rtl::OUString m_aLocation; |
| bool m_bLocationChanged; |
| com::sun::star::uno::Reference< com::sun::star::ucb::XSimpleFileAccess > m_xSFI; |
| com::sun::star::uno::Reference< com::sun::star::task::XInteractionHandler > m_xInteractionHandler; |
| |
| const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > getFileAccess( void ); |
| |
| virtual void implScanLocales( void ); |
| virtual bool implLoadLocale( LocaleItem* pLocaleItem ); |
| |
| public: |
| StringResourceWithLocationImpl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext ); |
| virtual ~StringResourceWithLocationImpl(); |
| |
| // XServiceInfo |
| virtual ::rtl::OUString SAL_CALL getImplementationName( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XInitialization |
| virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| |
| // XModifyBroadcaster |
| virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourceResolver |
| virtual ::rtl::OUString SAL_CALL resolveString( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException); |
| virtual ::rtl::OUString SAL_CALL resolveStringForLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw ( ::com::sun::star::resource::MissingResourceException, |
| ::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL hasEntryForId( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL hasEntryForIdAndLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDs( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDsForLocale |
| ( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::lang::Locale SAL_CALL getCurrentLocale( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::lang::Locale SAL_CALL getDefaultLocale( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getLocales( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourceManager |
| virtual ::sal_Bool SAL_CALL isReadOnly() |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setCurrentLocale( const ::com::sun::star::lang::Locale& locale, ::sal_Bool FindClosestMatch ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setDefaultLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL setString( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str ) |
| throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setStringForLocale( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeId( const ::rtl::OUString& ResourceID ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL removeIdForLocale( const ::rtl::OUString& ResourceID, |
| const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::resource::MissingResourceException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual void SAL_CALL newLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::container::ElementExistException, ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeLocale( const ::com::sun::star::lang::Locale& locale ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException, |
| ::com::sun::star::lang::NoSupportException); |
| virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ) |
| throw (::com::sun::star::lang::NoSupportException, |
| ::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourcePersistence |
| virtual void SAL_CALL store( ) |
| throw (::com::sun::star::lang::NoSupportException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException); |
| virtual ::sal_Bool SAL_CALL isModified( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setComment( const ::rtl::OUString& Comment ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL storeToStorage |
| ( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage, |
| const ::rtl::OUString& NameBase, const ::rtl::OUString& Comment ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL storeToURL( const ::rtl::OUString& URL, const ::rtl::OUString& NameBase, |
| const ::rtl::OUString& Comment, const ::com::sun::star::uno::Reference |
| < ::com::sun::star::task::XInteractionHandler >& Handler ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| virtual ::com::sun::star::uno::Sequence< ::sal_Int8 > SAL_CALL exportBinary( ) |
| throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL importBinary( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& Data ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); |
| |
| // XStringResourceWithLocation |
| virtual void SAL_CALL storeAsURL( const ::rtl::OUString& URL ) |
| throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL setURL( const ::rtl::OUString& URL ) |
| throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); |
| }; |
| |
| //......................................................................... |
| } // namespace stringtable |
| //......................................................................... |
| |
| #endif // SCRIPTING_DLGPROV_HXX |