diff options
Diffstat (limited to 'extensions/source/abpilot/unodialogabp.cxx')
-rw-r--r-- | extensions/source/abpilot/unodialogabp.cxx | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/extensions/source/abpilot/unodialogabp.cxx b/extensions/source/abpilot/unodialogabp.cxx new file mode 100644 index 000000000000..46534b56d61e --- /dev/null +++ b/extensions/source/abpilot/unodialogabp.cxx @@ -0,0 +1,196 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_extensions.hxx" +#include "unodialogabp.hxx" +#include <cppuhelper/typeprovider.hxx> +#include "abspilot.hxx" +#include <comphelper/sequence.hxx> +#include <vcl/msgbox.hxx> + +extern "C" void SAL_CALL createRegistryInfo_OABSPilotUno() +{ + static ::abp::OMultiInstanceAutoRegistration< ::abp::OABSPilotUno > aAutoRegistration; +} + +#define PROPERTY_ID_DATASOURCENAME 3 +//......................................................................... +namespace abp +{ +//......................................................................... + + using namespace ::com::sun::star::uno; + using namespace ::com::sun::star::lang; + using namespace ::com::sun::star::beans; + using namespace ::com::sun::star::ui::dialogs; + + //===================================================================== + //= OABSPilotUno + //===================================================================== + //--------------------------------------------------------------------- + OABSPilotUno::OABSPilotUno(const Reference< XMultiServiceFactory >& _rxORB) + :OGenericUnoDialog(_rxORB) + { + registerProperty( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataSourceName")), PROPERTY_ID_DATASOURCENAME, PropertyAttribute::READONLY , + &m_sDataSourceName, ::getCppuType( &m_sDataSourceName ) ); + } + + //-------------------------------------------------------------------------- + Any SAL_CALL OABSPilotUno::queryInterface( const Type& aType ) throw (RuntimeException) + { + Any aReturn = OABSPilotUno_DBase::queryInterface( aType ); + return aReturn.hasValue() ? aReturn : OABSPilotUno_JBase::queryInterface( aType ); + } + + //-------------------------------------------------------------------------- + void SAL_CALL OABSPilotUno::acquire( ) throw () + { + OABSPilotUno_DBase::acquire(); + } + + //-------------------------------------------------------------------------- + void SAL_CALL OABSPilotUno::release( ) throw () + { + OABSPilotUno_DBase::release(); + } + + //--------------------------------------------------------------------- + Sequence< Type > SAL_CALL OABSPilotUno::getTypes( ) throw (RuntimeException) + { + return ::comphelper::concatSequences( + OABSPilotUno_DBase::getTypes(), + OABSPilotUno_JBase::getTypes() + ); + } + + //--------------------------------------------------------------------- + Sequence<sal_Int8> SAL_CALL OABSPilotUno::getImplementationId( ) throw(RuntimeException) + { + static ::cppu::OImplementationId* s_pId; + if ( !s_pId ) + { + ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ); + if ( !s_pId ) + { + static ::cppu::OImplementationId s_aId; + s_pId = &s_aId; + } + } + return s_pId->getImplementationId(); + } + + //--------------------------------------------------------------------- + Reference< XInterface > SAL_CALL OABSPilotUno::Create(const Reference< XMultiServiceFactory >& _rxFactory) + { + return *(new OABSPilotUno(_rxFactory)); + } + + //--------------------------------------------------------------------- + ::rtl::OUString SAL_CALL OABSPilotUno::getImplementationName() throw(RuntimeException) + { + return getImplementationName_Static(); + } + + //--------------------------------------------------------------------- + ::rtl::OUString OABSPilotUno::getImplementationName_Static() throw(RuntimeException) + { + return ::rtl::OUString::createFromAscii("org.openoffice.comp.abp.OAddressBookSourcePilot"); + } + + //--------------------------------------------------------------------- + ::comphelper::StringSequence SAL_CALL OABSPilotUno::getSupportedServiceNames() throw(RuntimeException) + { + return getSupportedServiceNames_Static(); + } + + //--------------------------------------------------------------------- + ::comphelper::StringSequence OABSPilotUno::getSupportedServiceNames_Static() throw(RuntimeException) + { + ::comphelper::StringSequence aSupported(1); + aSupported.getArray()[0] = ::rtl::OUString::createFromAscii("com.sun.star.ui.dialogs.AddressBookSourcePilot"); + return aSupported; + } + + //--------------------------------------------------------------------- + Reference<XPropertySetInfo> SAL_CALL OABSPilotUno::getPropertySetInfo() throw(RuntimeException) + { + Reference<XPropertySetInfo> xInfo( createPropertySetInfo( getInfoHelper() ) ); + return xInfo; + } + + //--------------------------------------------------------------------- + ::cppu::IPropertyArrayHelper& OABSPilotUno::getInfoHelper() + { + return *const_cast<OABSPilotUno*>(this)->getArrayHelper(); + } + + //-------------------------------------------------------------------------- + ::cppu::IPropertyArrayHelper* OABSPilotUno::createArrayHelper( ) const + { + Sequence< Property > aProps; + describeProperties(aProps); + return new ::cppu::OPropertyArrayHelper(aProps); + } + + //-------------------------------------------------------------------------- + Dialog* OABSPilotUno::createDialog(Window* _pParent) + { + return new OAddessBookSourcePilot(_pParent, m_aContext.getLegacyServiceFactory()); + } + + //-------------------------------------------------------------------------- + Any SAL_CALL OABSPilotUno::execute( const Sequence< NamedValue >& /*lArgs*/ ) throw (IllegalArgumentException, Exception, RuntimeException) + { + // not interested in the context, not interested in the args + // -> call the execute method of the XExecutableDialog + static_cast< XExecutableDialog* >( this )->execute(); + + // result interest not really ... + // We show this dialog one times only! + // User has one chance to accept it or not. + // (or he can start it again by using wizard-menu!) + // So we should deregister it on our general job execution service by using right protocol parameters. + ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > lProtocol(1); + lProtocol[0].Name = ::rtl::OUString::createFromAscii("Deactivate"); + lProtocol[0].Value <<= sal_True; + return makeAny( lProtocol ); + } + // ----------------------------------------------------------------------------- + void OABSPilotUno::executedDialog(sal_Int16 _nExecutionResult) + { + if ( _nExecutionResult == RET_OK ) + { + const AddressSettings& aSettings = static_cast<OAddessBookSourcePilot*>(m_pDialog)->getSettings(); + m_sDataSourceName = aSettings.bRegisterDataSource ? aSettings.sRegisteredDataSourceName : aSettings.sDataSourceName; + } + } + +//......................................................................... +} // namespace abp +//......................................................................... + |