1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef SCRIPTING_DLGPROV_HXX 25 #define SCRIPTING_DLGPROV_HXX 26 27 #ifndef _COM_SUN_STAR_AWT_XSTRINGRESOURCEWITHSTORAGE_HPP_ 28 #include <com/sun/star/resource/XStringResourceWithStorage.hpp> 29 #endif 30 #ifndef _COM_SUN_STAR_AWT_XSTRINGRESOURCEWITHSTORAGE_HPP_ 31 #include <com/sun/star/resource/XStringResourceWithLocation.hpp> 32 #endif 33 #include <com/sun/star/lang/XServiceInfo.hpp> 34 #include <com/sun/star/lang/XInitialization.hpp> 35 #include <com/sun/star/uno/XComponentContext.hpp> 36 #include <com/sun/star/ucb/XSimpleFileAccess.hpp> 37 #include <com/sun/star/io/XInputStream.hpp> 38 #include <com/sun/star/io/XOutputStream.hpp> 39 #include <cppuhelper/implbase1.hxx> 40 #include <cppuhelper/implbase2.hxx> 41 #include <cppuhelper/interfacecontainer.hxx> 42 #include <osl/mutex.hxx> 43 44 #include <vector> 45 #include <hash_map> 46 47 //......................................................................... 48 namespace stringresource 49 { 50 //......................................................................... 51 52 // ============================================================================= 53 // mutex 54 // ============================================================================= 55 56 ::osl::Mutex& getMutex(); 57 58 59 // ============================================================================= 60 // class stringresourceImpl 61 // ============================================================================= 62 63 // Hashtable to map string ids to string 64 struct hashName_Impl 65 { operator ()stringresource::hashName_Impl66 size_t operator()(const ::rtl::OUString Str) const 67 { 68 return (size_t)Str.hashCode(); 69 } 70 }; 71 72 struct eqName_Impl 73 { operator ()stringresource::eqName_Impl74 sal_Bool operator()(const ::rtl::OUString Str1, const ::rtl::OUString Str2) const 75 { 76 return ( Str1 == Str2 ); 77 } 78 }; 79 80 typedef std::hash_map 81 < 82 ::rtl::OUString, 83 ::rtl::OUString, 84 hashName_Impl, 85 eqName_Impl 86 > 87 IdToStringMap; 88 89 typedef std::hash_map 90 < 91 ::rtl::OUString, 92 sal_Int32, 93 hashName_Impl, 94 eqName_Impl 95 > 96 IdToIndexMap; 97 98 99 struct LocaleItem 100 { 101 ::com::sun::star::lang::Locale m_locale; 102 IdToStringMap m_aIdToStringMap; 103 IdToIndexMap m_aIdToIndexMap; 104 sal_Int32 m_nNextIndex; 105 bool m_bLoaded; 106 bool m_bModified; 107 LocaleItemstringresource::LocaleItem108 LocaleItem( ::com::sun::star::lang::Locale locale, bool bLoaded=true ) 109 : m_locale( locale ) 110 , m_nNextIndex( 0 ) 111 , m_bLoaded( bLoaded ) 112 , m_bModified( false ) 113 {} 114 }; 115 116 typedef std::vector< LocaleItem* > LocaleItemVector; 117 typedef std::vector< LocaleItem* >::iterator LocaleItemVectorIt; 118 typedef std::vector< LocaleItem* >::const_iterator LocaleItemVectorConstIt; 119 120 typedef ::cppu::WeakImplHelper2< 121 ::com::sun::star::lang::XServiceInfo, 122 ::com::sun::star::resource::XStringResourceManager > StringResourceImpl_BASE; 123 124 class StringResourceImpl : public StringResourceImpl_BASE 125 { 126 protected: 127 ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext; 128 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiComponentFactory > m_xMCF; 129 130 LocaleItem* m_pCurrentLocaleItem; 131 LocaleItem* m_pDefaultLocaleItem; 132 bool m_bDefaultModified; 133 134 ::cppu::OInterfaceContainerHelper m_aListenerContainer; 135 136 LocaleItemVector m_aLocaleItemVector; 137 LocaleItemVector m_aDeletedLocaleItemVector; 138 LocaleItemVector m_aChangedDefaultLocaleVector; 139 140 bool m_bModified; 141 bool m_bReadOnly; 142 143 sal_Int32 m_nNextUniqueNumericId; 144 145 // Scans ResourceID to start with number and adapt m_nNextUniqueNumericId 146 void implScanIdForNumber( const ::rtl::OUString& ResourceID ); 147 const static sal_Int32 UNIQUE_NUMBER_NEEDS_INITIALISATION = -1; 148 149 // Checks read only status and throws exception if it's true 150 void implCheckReadOnly( const sal_Char* pExceptionMsg ); 151 152 // Return the context's MultiComponentFactory 153 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiComponentFactory > 154 getMultiComponentFactory( void ); 155 156 // Returns the LocalItem for a given locale, if it exists, otherwise NULL 157 // This method compares the locales exactly, no closest match search is performed 158 LocaleItem* getItemForLocale( const ::com::sun::star::lang::Locale& locale, sal_Bool bException ); 159 160 // Returns the LocalItem for a given locale, if it exists, otherwise NULL 161 // This method performs a closest match search, at least the language must match 162 LocaleItem* getClosestMatchItemForLocale( const ::com::sun::star::lang::Locale& locale ); 163 void implSetCurrentLocale( const ::com::sun::star::lang::Locale& locale, 164 sal_Bool FindClosestMatch, sal_Bool bUseDefaultIfNoMatch ); 165 166 void implModified( void ); 167 void implNotifyListeners( void ); 168 169 //=== Impl methods for ...ForLocale methods === 170 ::rtl::OUString SAL_CALL implResolveString( const ::rtl::OUString& ResourceID, LocaleItem* pLocaleItem ); 171 ::sal_Bool implHasEntryForId( const ::rtl::OUString& ResourceID, LocaleItem* pLocaleItem ); 172 ::com::sun::star::uno::Sequence< ::rtl::OUString > implGetResourceIDs( LocaleItem* pLocaleItem ); 173 void implSetString( const ::rtl::OUString& ResourceID, 174 const ::rtl::OUString& Str, LocaleItem* pLocaleItem ); 175 void implRemoveId( const ::rtl::OUString& ResourceID, LocaleItem* pLocaleItem ); 176 177 // Method to load a locale if necessary, returns true if loading was 178 // successful. Default implementation in base class just returns true. 179 virtual bool loadLocale( LocaleItem* pLocaleItem ); 180 181 virtual void implLoadAllLocales( void ); 182 183 public: 184 StringResourceImpl( 185 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext ); 186 virtual ~StringResourceImpl(); 187 188 // XServiceInfo 189 virtual ::rtl::OUString SAL_CALL getImplementationName( ); 190 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ); 191 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ); 192 193 // XModifyBroadcaster 194 virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ); 195 virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ); 196 197 // XStringResourceResolver 198 virtual ::rtl::OUString SAL_CALL resolveString( const ::rtl::OUString& ResourceID ); 199 virtual ::rtl::OUString SAL_CALL resolveStringForLocale( const ::rtl::OUString& ResourceID, 200 const ::com::sun::star::lang::Locale& locale ); 201 virtual ::sal_Bool SAL_CALL hasEntryForId( const ::rtl::OUString& ResourceID ); 202 virtual ::sal_Bool SAL_CALL hasEntryForIdAndLocale( const ::rtl::OUString& ResourceID, 203 const ::com::sun::star::lang::Locale& locale ); 204 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDs( ); 205 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDsForLocale 206 ( const ::com::sun::star::lang::Locale& locale ); 207 virtual ::com::sun::star::lang::Locale SAL_CALL getCurrentLocale( ); 208 virtual ::com::sun::star::lang::Locale SAL_CALL getDefaultLocale( ); 209 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getLocales( ); 210 211 // XStringResourceManager 212 virtual ::sal_Bool SAL_CALL isReadOnly(); 213 virtual void SAL_CALL setCurrentLocale( const ::com::sun::star::lang::Locale& locale, ::sal_Bool FindClosestMatch ); 214 virtual void SAL_CALL setDefaultLocale( const ::com::sun::star::lang::Locale& locale ); 215 virtual void SAL_CALL setString( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str ); 216 virtual void SAL_CALL setStringForLocale( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str, 217 const ::com::sun::star::lang::Locale& locale ); 218 virtual void SAL_CALL removeId( const ::rtl::OUString& ResourceID ); 219 virtual void SAL_CALL removeIdForLocale( const ::rtl::OUString& ResourceID, 220 const ::com::sun::star::lang::Locale& locale ); 221 virtual void SAL_CALL newLocale( const ::com::sun::star::lang::Locale& locale ); 222 virtual void SAL_CALL removeLocale( const ::com::sun::star::lang::Locale& locale ); 223 virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ); 224 }; 225 226 typedef ::cppu::ImplInheritanceHelper1< 227 StringResourceImpl, 228 ::com::sun::star::resource::XStringResourcePersistence > StringResourcePersistenceImpl_BASE; 229 230 class BinaryOutput; 231 class BinaryInput; 232 233 class StringResourcePersistenceImpl : public StringResourcePersistenceImpl_BASE 234 { 235 protected: 236 ::rtl::OUString m_aNameBase; 237 ::rtl::OUString m_aComment; 238 239 void SAL_CALL implInitializeCommonParameters 240 ( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ); 241 242 // Scan locale properties files 243 virtual void implScanLocales( void ); 244 245 // Method to load a locale if necessary, returns true if loading was successful 246 virtual bool loadLocale( LocaleItem* pLocaleItem ); 247 248 // does the actual loading 249 virtual bool implLoadLocale( LocaleItem* pLocaleItem ); 250 251 virtual void implLoadAllLocales( void ); 252 253 void implScanLocaleNames( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aContentSeq ); 254 ::rtl::OUString implGetFileNameForLocaleItem( LocaleItem* pLocaleItem, const ::rtl::OUString& aNameBase ); 255 ::rtl::OUString implGetPathForLocaleItem( LocaleItem* pLocaleItem, const ::rtl::OUString& aNameBase, 256 const ::rtl::OUString& aLocation, bool bDefaultFile=false ); 257 258 bool implReadPropertiesFile( LocaleItem* pLocaleItem, 259 const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xInput ); 260 261 bool implWritePropertiesFile( LocaleItem* pLocaleItem, const ::com::sun::star::uno::Reference 262 < ::com::sun::star::io::XOutputStream >& xOutputStream, const ::rtl::OUString& aComment ); 263 264 void implWriteLocaleBinary( LocaleItem* pLocaleItem, BinaryOutput& rOut ); 265 266 void implStoreAtStorage 267 ( 268 const ::rtl::OUString& aNameBase, 269 const ::rtl::OUString& aComment, 270 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage, 271 bool bUsedForStore, 272 bool bStoreAll 273 ); 274 275 void implKillRemovedLocaleFiles 276 ( 277 const ::rtl::OUString& Location, 278 const ::rtl::OUString& aNameBase, 279 const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess >& xFileAccess 280 ); 281 282 void implKillChangedDefaultFiles 283 ( 284 const ::rtl::OUString& Location, 285 const ::rtl::OUString& aNameBase, 286 const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess >& xFileAccess 287 ); 288 289 void implStoreAtLocation 290 ( 291 const ::rtl::OUString& Location, 292 const ::rtl::OUString& aNameBase, 293 const ::rtl::OUString& aComment, 294 const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess >& xFileAccess, 295 bool bUsedForStore, 296 bool bStoreAll, 297 bool bKillAll = false 298 ); 299 300 public: 301 StringResourcePersistenceImpl( 302 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext ); 303 virtual ~StringResourcePersistenceImpl(); 304 305 // XServiceInfo 306 virtual ::rtl::OUString SAL_CALL getImplementationName( ); 307 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ); 308 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ); 309 310 // XModifyBroadcaster 311 virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ); 312 virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ); 313 314 // XStringResourceResolver 315 virtual ::rtl::OUString SAL_CALL resolveString( const ::rtl::OUString& ResourceID ); 316 virtual ::rtl::OUString SAL_CALL resolveStringForLocale( const ::rtl::OUString& ResourceID, 317 const ::com::sun::star::lang::Locale& locale ); 318 virtual ::sal_Bool SAL_CALL hasEntryForId( const ::rtl::OUString& ResourceID ); 319 virtual ::sal_Bool SAL_CALL hasEntryForIdAndLocale( const ::rtl::OUString& ResourceID, 320 const ::com::sun::star::lang::Locale& locale ); 321 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDs( ); 322 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDsForLocale 323 ( const ::com::sun::star::lang::Locale& locale ); 324 virtual ::com::sun::star::lang::Locale SAL_CALL getCurrentLocale( ); 325 virtual ::com::sun::star::lang::Locale SAL_CALL getDefaultLocale( ); 326 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getLocales( ); 327 328 // XStringResourceManager 329 virtual ::sal_Bool SAL_CALL isReadOnly(); 330 virtual void SAL_CALL setCurrentLocale( const ::com::sun::star::lang::Locale& locale, ::sal_Bool FindClosestMatch ); 331 virtual void SAL_CALL setDefaultLocale( const ::com::sun::star::lang::Locale& locale ); 332 virtual void SAL_CALL setString( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str ); 333 virtual void SAL_CALL setStringForLocale( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str, 334 const ::com::sun::star::lang::Locale& locale ); 335 virtual void SAL_CALL removeId( const ::rtl::OUString& ResourceID ); 336 virtual void SAL_CALL removeIdForLocale( const ::rtl::OUString& ResourceID, 337 const ::com::sun::star::lang::Locale& locale ); 338 virtual void SAL_CALL newLocale( const ::com::sun::star::lang::Locale& locale ); 339 virtual void SAL_CALL removeLocale( const ::com::sun::star::lang::Locale& locale ); 340 virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ); 341 342 // XStringResourcePersistence 343 virtual void SAL_CALL store( ); 344 virtual ::sal_Bool SAL_CALL isModified( ); 345 virtual void SAL_CALL setComment( const ::rtl::OUString& Comment ); 346 virtual void SAL_CALL storeToStorage 347 ( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage, 348 const ::rtl::OUString& NameBase, const ::rtl::OUString& Comment ); 349 virtual void SAL_CALL storeToURL( const ::rtl::OUString& URL, const ::rtl::OUString& NameBase, 350 const ::rtl::OUString& Comment, const ::com::sun::star::uno::Reference 351 < ::com::sun::star::task::XInteractionHandler >& Handler ); 352 virtual ::com::sun::star::uno::Sequence< ::sal_Int8 > SAL_CALL exportBinary( ); 353 virtual void SAL_CALL importBinary( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& Data ); 354 }; 355 356 357 typedef ::cppu::ImplInheritanceHelper2< 358 StringResourcePersistenceImpl, 359 ::com::sun::star::lang::XInitialization, 360 ::com::sun::star::resource::XStringResourceWithStorage > StringResourceWithStorageImpl_BASE; 361 362 class StringResourceWithStorageImpl : public StringResourceWithStorageImpl_BASE 363 { 364 ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xStorage; 365 bool m_bStorageChanged; 366 367 virtual void implScanLocales( void ); 368 virtual bool implLoadLocale( LocaleItem* pLocaleItem ); 369 370 public: 371 StringResourceWithStorageImpl( 372 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext ); 373 virtual ~StringResourceWithStorageImpl(); 374 375 // XServiceInfo 376 virtual ::rtl::OUString SAL_CALL getImplementationName( ); 377 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ); 378 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ); 379 380 // XInitialization 381 virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ); 382 383 // XModifyBroadcaster 384 virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ); 385 virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ); 386 387 // XStringResourceResolver 388 virtual ::rtl::OUString SAL_CALL resolveString( const ::rtl::OUString& ResourceID ); 389 virtual ::rtl::OUString SAL_CALL resolveStringForLocale( const ::rtl::OUString& ResourceID, 390 const ::com::sun::star::lang::Locale& locale ); 391 virtual ::sal_Bool SAL_CALL hasEntryForId( const ::rtl::OUString& ResourceID ); 392 virtual ::sal_Bool SAL_CALL hasEntryForIdAndLocale( const ::rtl::OUString& ResourceID, 393 const ::com::sun::star::lang::Locale& locale ); 394 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDs( ); 395 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDsForLocale 396 ( const ::com::sun::star::lang::Locale& locale ); 397 virtual ::com::sun::star::lang::Locale SAL_CALL getCurrentLocale( ); 398 virtual ::com::sun::star::lang::Locale SAL_CALL getDefaultLocale( ); 399 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getLocales( ); 400 401 // XStringResourceManager 402 virtual ::sal_Bool SAL_CALL isReadOnly(); 403 virtual void SAL_CALL setCurrentLocale( const ::com::sun::star::lang::Locale& locale, ::sal_Bool FindClosestMatch ); 404 virtual void SAL_CALL setDefaultLocale( const ::com::sun::star::lang::Locale& locale ); 405 virtual void SAL_CALL setString( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str ); 406 virtual void SAL_CALL setStringForLocale( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str, 407 const ::com::sun::star::lang::Locale& locale ); 408 virtual void SAL_CALL removeId( const ::rtl::OUString& ResourceID ); 409 virtual void SAL_CALL removeIdForLocale( const ::rtl::OUString& ResourceID, 410 const ::com::sun::star::lang::Locale& locale ); 411 virtual void SAL_CALL newLocale( const ::com::sun::star::lang::Locale& locale ); 412 virtual void SAL_CALL removeLocale( const ::com::sun::star::lang::Locale& locale ); 413 virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ); 414 415 // XStringResourcePersistence 416 virtual void SAL_CALL store( ); 417 virtual ::sal_Bool SAL_CALL isModified( ); 418 virtual void SAL_CALL setComment( const ::rtl::OUString& Comment ); 419 virtual void SAL_CALL storeToStorage 420 ( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage, 421 const ::rtl::OUString& NameBase, const ::rtl::OUString& Comment ); 422 virtual void SAL_CALL storeToURL( const ::rtl::OUString& URL, const ::rtl::OUString& NameBase, 423 const ::rtl::OUString& Comment, const ::com::sun::star::uno::Reference 424 < ::com::sun::star::task::XInteractionHandler >& Handler ); 425 virtual ::com::sun::star::uno::Sequence< ::sal_Int8 > SAL_CALL exportBinary( ); 426 virtual void SAL_CALL importBinary( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& Data ); 427 428 // XStringResourceWithStorage 429 virtual void SAL_CALL storeAsStorage 430 ( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage ); 431 virtual void SAL_CALL setStorage 432 ( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage ); 433 }; 434 435 436 typedef ::cppu::ImplInheritanceHelper2< 437 StringResourcePersistenceImpl, 438 ::com::sun::star::lang::XInitialization, 439 ::com::sun::star::resource::XStringResourceWithLocation > StringResourceWithLocationImpl_BASE; 440 441 class StringResourceWithLocationImpl : public StringResourceWithLocationImpl_BASE 442 { 443 ::rtl::OUString m_aLocation; 444 bool m_bLocationChanged; 445 com::sun::star::uno::Reference< com::sun::star::ucb::XSimpleFileAccess > m_xSFI; 446 com::sun::star::uno::Reference< com::sun::star::task::XInteractionHandler > m_xInteractionHandler; 447 448 const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > getFileAccess( void ); 449 450 virtual void implScanLocales( void ); 451 virtual bool implLoadLocale( LocaleItem* pLocaleItem ); 452 453 public: 454 StringResourceWithLocationImpl( 455 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext ); 456 virtual ~StringResourceWithLocationImpl(); 457 458 // XServiceInfo 459 virtual ::rtl::OUString SAL_CALL getImplementationName( ); 460 virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ); 461 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ); 462 463 // XInitialization 464 virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ); 465 466 // XModifyBroadcaster 467 virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ); 468 virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ); 469 470 // XStringResourceResolver 471 virtual ::rtl::OUString SAL_CALL resolveString( const ::rtl::OUString& ResourceID ); 472 virtual ::rtl::OUString SAL_CALL resolveStringForLocale( const ::rtl::OUString& ResourceID, 473 const ::com::sun::star::lang::Locale& locale ); 474 virtual ::sal_Bool SAL_CALL hasEntryForId( const ::rtl::OUString& ResourceID ); 475 virtual ::sal_Bool SAL_CALL hasEntryForIdAndLocale( const ::rtl::OUString& ResourceID, 476 const ::com::sun::star::lang::Locale& locale ); 477 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDs( ); 478 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getResourceIDsForLocale 479 ( const ::com::sun::star::lang::Locale& locale ); 480 virtual ::com::sun::star::lang::Locale SAL_CALL getCurrentLocale( ); 481 virtual ::com::sun::star::lang::Locale SAL_CALL getDefaultLocale( ); 482 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getLocales( ); 483 484 // XStringResourceManager 485 virtual ::sal_Bool SAL_CALL isReadOnly(); 486 virtual void SAL_CALL setCurrentLocale( const ::com::sun::star::lang::Locale& locale, ::sal_Bool FindClosestMatch ); 487 virtual void SAL_CALL setDefaultLocale( const ::com::sun::star::lang::Locale& locale ); 488 virtual void SAL_CALL setString( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str ); 489 virtual void SAL_CALL setStringForLocale( const ::rtl::OUString& ResourceID, const ::rtl::OUString& Str, 490 const ::com::sun::star::lang::Locale& locale ); 491 virtual void SAL_CALL removeId( const ::rtl::OUString& ResourceID ); 492 virtual void SAL_CALL removeIdForLocale( const ::rtl::OUString& ResourceID, 493 const ::com::sun::star::lang::Locale& locale ); 494 virtual void SAL_CALL newLocale( const ::com::sun::star::lang::Locale& locale ); 495 virtual void SAL_CALL removeLocale( const ::com::sun::star::lang::Locale& locale ); 496 virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ); 497 498 // XStringResourcePersistence 499 virtual void SAL_CALL store( ); 500 virtual ::sal_Bool SAL_CALL isModified( ); 501 virtual void SAL_CALL setComment( const ::rtl::OUString& Comment ); 502 virtual void SAL_CALL storeToStorage 503 ( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& Storage, 504 const ::rtl::OUString& NameBase, const ::rtl::OUString& Comment ); 505 virtual void SAL_CALL storeToURL( const ::rtl::OUString& URL, const ::rtl::OUString& NameBase, 506 const ::rtl::OUString& Comment, const ::com::sun::star::uno::Reference 507 < ::com::sun::star::task::XInteractionHandler >& Handler ); 508 virtual ::com::sun::star::uno::Sequence< ::sal_Int8 > SAL_CALL exportBinary( ); 509 virtual void SAL_CALL importBinary( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& Data ); 510 511 // XStringResourceWithLocation 512 virtual void SAL_CALL storeAsURL( const ::rtl::OUString& URL ); 513 virtual void SAL_CALL setURL( const ::rtl::OUString& URL ); 514 }; 515 516 //......................................................................... 517 } // namespace stringtable 518 //......................................................................... 519 520 #endif // SCRIPTING_DLGPROV_HXX 521