diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2007-01-02 14:36:32 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2007-01-02 14:36:32 +0000 |
commit | 7afc8c2699738caa100c5f40e7f5e83052be75e7 (patch) | |
tree | 3945b296270c77d920a5aeede9a87c3b4ccb08f9 /scripting | |
parent | 4f9d8f94d940fafc4d917a1b43e2d879191520d8 (diff) |
INTEGRATION: CWS ab31 (1.9.8); FILE MERGED
2006/12/13 08:23:08 ab 1.9.8.1: #i72282# Set StringResource at created dialog
Diffstat (limited to 'scripting')
-rw-r--r-- | scripting/source/dlgprov/dlgprov.cxx | 55 |
1 files changed, 47 insertions, 8 deletions
diff --git a/scripting/source/dlgprov/dlgprov.cxx b/scripting/source/dlgprov/dlgprov.cxx index 8925bf70fedd..a94a27c5b6a1 100644 --- a/scripting/source/dlgprov/dlgprov.cxx +++ b/scripting/source/dlgprov/dlgprov.cxx @@ -4,9 +4,9 @@ * * $RCSfile: dlgprov.cxx,v $ * - * $Revision: 1.9 $ + * $Revision: 1.10 $ * - * last change: $Author: obo $ $Date: 2006-10-12 10:34:55 $ + * last change: $Author: hr $ $Date: 2007-01-02 15:36:32 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -65,6 +65,15 @@ #ifndef _COM_SUN_STAR_BEANS_XINTROSPECTION_HPP_ #include <com/sun/star/beans/XIntrospection.hpp> #endif +#ifndef _COM_SUN_STAR_RESOURCE_XSTRINGRESOURCESUPPLIER_HPP_ +#include <com/sun/star/resource/XStringResourceSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_RESOURCE_XSTRINGRESOURCEMANAGER_HPP_ +#include <com/sun/star/resource/XStringResourceManager.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif #ifndef _SFXAPP_HXX #include <sfx2/app.hxx> @@ -170,9 +179,29 @@ namespace dlgprov // ----------------------------------------------------------------------------- + Reference< resource::XStringResourceManager > getStringResourceFromDialogLibrary + ( Reference< container::XNameContainer > xDialogLib ) + { + Reference< resource::XStringResourceManager > xStringResourceManager; + if( xDialogLib.is() ) + { + Reference< resource::XStringResourceSupplier > xStringResourceSupplier( xDialogLib, UNO_QUERY ); + if( xStringResourceSupplier.is() ) + { + Reference< resource::XStringResourceResolver > + xStringResourceResolver = xStringResourceSupplier->getStringResource(); + + xStringResourceManager = + Reference< resource::XStringResourceManager >( xStringResourceResolver, UNO_QUERY ); + } + } + return xStringResourceManager; + } Reference< XControlModel > DialogProviderImpl::createDialogModel( const ::rtl::OUString& sURL ) { + static ::rtl::OUString aResourceResolverPropName = ::rtl::OUString::createFromAscii( "ResourceResolver" ); + // parse URL // TODO: use URL parsing class // TODO: decoding of location @@ -278,7 +307,7 @@ namespace dlgprov // get input stream provider Reference< io::XInputStreamProvider > xISP; - + Reference< container::XNameContainer > xDialogLib; if ( xLibContainer.is() ) { // load dialog library @@ -286,19 +315,18 @@ namespace dlgprov xLibContainer->loadLibrary( sLibName ); // get dialog library - Reference< container::XNameContainer > xLib; if ( xLibContainer->hasByName( sLibName ) ) { Any aElement = xLibContainer->getByName( sLibName ); - aElement >>= xLib; + aElement >>= xDialogLib; } - if ( xLib.is() ) + if ( xDialogLib.is() ) { // get input stream provider - if ( xLib->hasByName( sDlgName ) ) + if ( xDialogLib->hasByName( sDlgName ) ) { - Any aElement = xLib->getByName( sDlgName ); + Any aElement = xDialogLib->getByName( sDlgName ); aElement >>= xISP; } @@ -340,6 +368,17 @@ namespace dlgprov { ::xmlscript::importDialogModel( xInput, xDialogModel, m_xContext ); xCtrlModel = Reference< XControlModel >( xDialogModel, UNO_QUERY ); + + // Set resource property + Reference< resource::XStringResourceManager > xStringResourceManager = getStringResourceFromDialogLibrary( xDialogLib ); + if( xStringResourceManager.is() ) + { + + Reference< beans::XPropertySet > xDlgPSet( xDialogModel, UNO_QUERY ); + Any aStringResourceManagerAny; + aStringResourceManagerAny <<= xStringResourceManager; + xDlgPSet->setPropertyValue( aResourceResolverPropName, aStringResourceManagerAny ); + } } } } |