1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove 25*b1cdbd2cSJim Jagielski #include "precompiled_svx.hxx" 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include "fmservs.hxx" 28*b1cdbd2cSJim Jagielski 29*b1cdbd2cSJim Jagielski /** === begin UNO includes === **/ 30*b1cdbd2cSJim Jagielski #include <com/sun/star/form/XFormController.hpp> 31*b1cdbd2cSJim Jagielski #include <com/sun/star/form/runtime/XFormController.hpp> 32*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XMultiServiceFactory.hpp> 33*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceInfo.hpp> 34*b1cdbd2cSJim Jagielski /** === end UNO includes === **/ 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase2.hxx> 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski //........................................................................ 39*b1cdbd2cSJim Jagielski namespace svxform 40*b1cdbd2cSJim Jagielski { 41*b1cdbd2cSJim Jagielski //........................................................................ 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski /** === begin UNO using === **/ 44*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Reference; 45*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::XInterface; 46*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::UNO_QUERY; 47*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::UNO_QUERY_THROW; 48*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::UNO_SET_THROW; 49*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Exception; 50*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::RuntimeException; 51*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Any; 52*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::makeAny; 53*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Sequence; 54*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Type; 55*b1cdbd2cSJim Jagielski using ::com::sun::star::lang::XMultiServiceFactory; 56*b1cdbd2cSJim Jagielski using ::com::sun::star::awt::XControl; 57*b1cdbd2cSJim Jagielski using ::com::sun::star::awt::XTabControllerModel; 58*b1cdbd2cSJim Jagielski using ::com::sun::star::awt::XControlContainer; 59*b1cdbd2cSJim Jagielski using ::com::sun::star::lang::XServiceInfo; 60*b1cdbd2cSJim Jagielski /** === end UNO using === **/ 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski using namespace ::com::sun::star; 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski //==================================================================== 65*b1cdbd2cSJim Jagielski //= LegacyFormController 66*b1cdbd2cSJim Jagielski //==================================================================== 67*b1cdbd2cSJim Jagielski typedef ::cppu::WeakImplHelper2 < form::XFormController 68*b1cdbd2cSJim Jagielski , XServiceInfo 69*b1cdbd2cSJim Jagielski > LegacyFormController_Base; 70*b1cdbd2cSJim Jagielski /** is an implementation of the legacy form controller service, namely css.form.FormController, supporting the 71*b1cdbd2cSJim Jagielski css.form.XFormController interface. 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski This legacy API is superseded by css.form.runtime.(X)FormController, and though we migrated all OOo-internal 74*b1cdbd2cSJim Jagielski usage of this old API, their might be clients external to OOo still using it (though this is rather unlikely). 75*b1cdbd2cSJim Jagielski */ 76*b1cdbd2cSJim Jagielski class LegacyFormController : public LegacyFormController_Base 77*b1cdbd2cSJim Jagielski { 78*b1cdbd2cSJim Jagielski public: Create(const Reference<XMultiServiceFactory> & _rxFactory)79*b1cdbd2cSJim Jagielski static Reference< XInterface > Create( const Reference< XMultiServiceFactory >& _rxFactory ) 80*b1cdbd2cSJim Jagielski { 81*b1cdbd2cSJim Jagielski return *( new LegacyFormController( _rxFactory ) ); 82*b1cdbd2cSJim Jagielski } 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielski protected: LegacyFormController(const Reference<XMultiServiceFactory> & _rxFactory)85*b1cdbd2cSJim Jagielski LegacyFormController( const Reference< XMultiServiceFactory >& _rxFactory ) 86*b1cdbd2cSJim Jagielski :m_xDelegator( _rxFactory->createInstance( FM_FORM_CONTROLLER ), UNO_QUERY_THROW ) 87*b1cdbd2cSJim Jagielski { 88*b1cdbd2cSJim Jagielski } 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski // form::XFormController 91*b1cdbd2cSJim Jagielski virtual Reference< XControl > SAL_CALL getCurrentControl( ) throw (RuntimeException); 92*b1cdbd2cSJim Jagielski virtual void SAL_CALL addActivateListener( const Reference< form::XFormControllerListener >& l ) throw (RuntimeException); 93*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeActivateListener( const Reference< form::XFormControllerListener >& l ) throw (RuntimeException); 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski // awt::XTabController 96*b1cdbd2cSJim Jagielski virtual void SAL_CALL setModel( const Reference< XTabControllerModel >& Model ) throw (RuntimeException); 97*b1cdbd2cSJim Jagielski virtual Reference< XTabControllerModel > SAL_CALL getModel( ) throw (RuntimeException); 98*b1cdbd2cSJim Jagielski virtual void SAL_CALL setContainer( const Reference< XControlContainer >& Container ) throw (RuntimeException); 99*b1cdbd2cSJim Jagielski virtual Reference< XControlContainer > SAL_CALL getContainer( ) throw (RuntimeException); 100*b1cdbd2cSJim Jagielski virtual Sequence< Reference< XControl > > SAL_CALL getControls( ) throw (RuntimeException); 101*b1cdbd2cSJim Jagielski virtual void SAL_CALL autoTabOrder( ) throw (RuntimeException); 102*b1cdbd2cSJim Jagielski virtual void SAL_CALL activateTabOrder( ) throw (RuntimeException); 103*b1cdbd2cSJim Jagielski virtual void SAL_CALL activateFirst( ) throw (RuntimeException); 104*b1cdbd2cSJim Jagielski virtual void SAL_CALL activateLast( ) throw (RuntimeException); 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski // XServiceInfo 107*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (RuntimeException); 108*b1cdbd2cSJim Jagielski virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (RuntimeException); 109*b1cdbd2cSJim Jagielski virtual Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (RuntimeException); 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski private: 112*b1cdbd2cSJim Jagielski const Reference< form::runtime::XFormController > m_xDelegator; 113*b1cdbd2cSJim Jagielski }; 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getCurrentControl()116*b1cdbd2cSJim Jagielski Reference< XControl > SAL_CALL LegacyFormController::getCurrentControl( ) throw (RuntimeException) 117*b1cdbd2cSJim Jagielski { 118*b1cdbd2cSJim Jagielski return m_xDelegator->getCurrentControl(); 119*b1cdbd2cSJim Jagielski } 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- addActivateListener(const Reference<form::XFormControllerListener> & _listener)122*b1cdbd2cSJim Jagielski void SAL_CALL LegacyFormController::addActivateListener( const Reference< form::XFormControllerListener >& _listener ) throw (RuntimeException) 123*b1cdbd2cSJim Jagielski { 124*b1cdbd2cSJim Jagielski m_xDelegator->addActivateListener( _listener ); 125*b1cdbd2cSJim Jagielski } 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- removeActivateListener(const Reference<form::XFormControllerListener> & _listener)128*b1cdbd2cSJim Jagielski void SAL_CALL LegacyFormController::removeActivateListener( const Reference< form::XFormControllerListener >& _listener ) throw (RuntimeException) 129*b1cdbd2cSJim Jagielski { 130*b1cdbd2cSJim Jagielski m_xDelegator->removeActivateListener( _listener ); 131*b1cdbd2cSJim Jagielski } 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- setModel(const Reference<XTabControllerModel> & _model)134*b1cdbd2cSJim Jagielski void SAL_CALL LegacyFormController::setModel( const Reference< XTabControllerModel >& _model ) throw (RuntimeException) 135*b1cdbd2cSJim Jagielski { 136*b1cdbd2cSJim Jagielski m_xDelegator->setModel( _model ); 137*b1cdbd2cSJim Jagielski } 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getModel()140*b1cdbd2cSJim Jagielski Reference< XTabControllerModel > SAL_CALL LegacyFormController::getModel( ) throw (RuntimeException) 141*b1cdbd2cSJim Jagielski { 142*b1cdbd2cSJim Jagielski return m_xDelegator->getModel(); 143*b1cdbd2cSJim Jagielski } 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- setContainer(const Reference<XControlContainer> & _container)146*b1cdbd2cSJim Jagielski void SAL_CALL LegacyFormController::setContainer( const Reference< XControlContainer >& _container ) throw (RuntimeException) 147*b1cdbd2cSJim Jagielski { 148*b1cdbd2cSJim Jagielski m_xDelegator->setContainer( _container ); 149*b1cdbd2cSJim Jagielski } 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getContainer()152*b1cdbd2cSJim Jagielski Reference< XControlContainer > SAL_CALL LegacyFormController::getContainer( ) throw (RuntimeException) 153*b1cdbd2cSJim Jagielski { 154*b1cdbd2cSJim Jagielski return m_xDelegator->getContainer(); 155*b1cdbd2cSJim Jagielski } 156*b1cdbd2cSJim Jagielski 157*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getControls()158*b1cdbd2cSJim Jagielski Sequence< Reference< XControl > > SAL_CALL LegacyFormController::getControls( ) throw (RuntimeException) 159*b1cdbd2cSJim Jagielski { 160*b1cdbd2cSJim Jagielski return m_xDelegator->getControls(); 161*b1cdbd2cSJim Jagielski } 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- autoTabOrder()164*b1cdbd2cSJim Jagielski void SAL_CALL LegacyFormController::autoTabOrder( ) throw (RuntimeException) 165*b1cdbd2cSJim Jagielski { 166*b1cdbd2cSJim Jagielski m_xDelegator->autoTabOrder(); 167*b1cdbd2cSJim Jagielski } 168*b1cdbd2cSJim Jagielski 169*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- activateTabOrder()170*b1cdbd2cSJim Jagielski void SAL_CALL LegacyFormController::activateTabOrder( ) throw (RuntimeException) 171*b1cdbd2cSJim Jagielski { 172*b1cdbd2cSJim Jagielski m_xDelegator->activateTabOrder(); 173*b1cdbd2cSJim Jagielski } 174*b1cdbd2cSJim Jagielski 175*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- activateFirst()176*b1cdbd2cSJim Jagielski void SAL_CALL LegacyFormController::activateFirst( ) throw (RuntimeException) 177*b1cdbd2cSJim Jagielski { 178*b1cdbd2cSJim Jagielski m_xDelegator->activateFirst(); 179*b1cdbd2cSJim Jagielski } 180*b1cdbd2cSJim Jagielski 181*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- activateLast()182*b1cdbd2cSJim Jagielski void SAL_CALL LegacyFormController::activateLast( ) throw (RuntimeException) 183*b1cdbd2cSJim Jagielski { 184*b1cdbd2cSJim Jagielski m_xDelegator->activateLast(); 185*b1cdbd2cSJim Jagielski } 186*b1cdbd2cSJim Jagielski 187*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getImplementationName()188*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL LegacyFormController::getImplementationName( ) throw (RuntimeException) 189*b1cdbd2cSJim Jagielski { 190*b1cdbd2cSJim Jagielski return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.comp.svx.LegacyFormController" ) ); 191*b1cdbd2cSJim Jagielski } 192*b1cdbd2cSJim Jagielski 193*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- supportsService(const::rtl::OUString & _serviceName)194*b1cdbd2cSJim Jagielski ::sal_Bool SAL_CALL LegacyFormController::supportsService( const ::rtl::OUString& _serviceName ) throw (RuntimeException) 195*b1cdbd2cSJim Jagielski { 196*b1cdbd2cSJim Jagielski Sequence< ::rtl::OUString > aServices( getSupportedServiceNames() ); 197*b1cdbd2cSJim Jagielski const ::rtl::OUString* pServices = aServices.getConstArray(); 198*b1cdbd2cSJim Jagielski for ( sal_Int32 i = 0; i < aServices.getLength(); ++i, ++pServices ) 199*b1cdbd2cSJim Jagielski if( pServices->equals( _serviceName ) ) 200*b1cdbd2cSJim Jagielski return sal_True; 201*b1cdbd2cSJim Jagielski return sal_False; 202*b1cdbd2cSJim Jagielski } 203*b1cdbd2cSJim Jagielski 204*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getSupportedServiceNames()205*b1cdbd2cSJim Jagielski Sequence< ::rtl::OUString > SAL_CALL LegacyFormController::getSupportedServiceNames( ) throw (RuntimeException) 206*b1cdbd2cSJim Jagielski { 207*b1cdbd2cSJim Jagielski Sequence< ::rtl::OUString > aServices(2); 208*b1cdbd2cSJim Jagielski aServices.getArray()[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.FormController" ) ); 209*b1cdbd2cSJim Jagielski aServices.getArray()[1] = ::rtl::OUString::createFromAscii("com.sun.star.awt.control.TabController"); 210*b1cdbd2cSJim Jagielski return aServices; 211*b1cdbd2cSJim Jagielski } 212*b1cdbd2cSJim Jagielski 213*b1cdbd2cSJim Jagielski //........................................................................ 214*b1cdbd2cSJim Jagielski } // namespace svxform 215*b1cdbd2cSJim Jagielski //........................................................................ 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim Jagielski //------------------------------------------------------------------ 218*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL LegacyFormController_NewInstance_Impl(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & _rxORB)219*b1cdbd2cSJim Jagielski LegacyFormController_NewInstance_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & _rxORB ) 220*b1cdbd2cSJim Jagielski { 221*b1cdbd2cSJim Jagielski return ::svxform::LegacyFormController::Create( _rxORB ); 222*b1cdbd2cSJim Jagielski } 223*b1cdbd2cSJim Jagielski 224