1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_dbaccess.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #ifndef _SBA_FORMADAPTER_HXX 32*cdf0e10cSrcweir #include "formadapter.hxx" 33*cdf0e10cSrcweir #endif 34*cdf0e10cSrcweir #ifndef _TOOLS_DEBUG_HXX //autogen 35*cdf0e10cSrcweir #include <tools/debug.hxx> 36*cdf0e10cSrcweir #endif 37*cdf0e10cSrcweir #ifndef _COMPHELPER_TYPES_HXX_ 38*cdf0e10cSrcweir #include <comphelper/types.hxx> 39*cdf0e10cSrcweir #endif 40*cdf0e10cSrcweir #ifndef _COMPHELPER_ENUMHELPER_HXX_ 41*cdf0e10cSrcweir #include <comphelper/enumhelper.hxx> 42*cdf0e10cSrcweir #endif 43*cdf0e10cSrcweir #ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ 44*cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp> 45*cdf0e10cSrcweir #endif 46*cdf0e10cSrcweir #ifndef _STRING_HXX 47*cdf0e10cSrcweir #include <tools/string.hxx> 48*cdf0e10cSrcweir #endif 49*cdf0e10cSrcweir #ifndef _DBU_BRW_HRC_ 50*cdf0e10cSrcweir #include "dbu_brw.hrc" 51*cdf0e10cSrcweir #endif 52*cdf0e10cSrcweir #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC 53*cdf0e10cSrcweir #include "dbustrings.hrc" 54*cdf0e10cSrcweir #endif 55*cdf0e10cSrcweir #ifndef _CPPUHELPER_TYPEPROVIDER_HXX_ 56*cdf0e10cSrcweir #include <cppuhelper/typeprovider.hxx> 57*cdf0e10cSrcweir #endif 58*cdf0e10cSrcweir #ifndef _COMPHELPER_SEQUENCE_HXX_ 59*cdf0e10cSrcweir #include <comphelper/sequence.hxx> 60*cdf0e10cSrcweir #endif 61*cdf0e10cSrcweir 62*cdf0e10cSrcweir using namespace dbaui; 63*cdf0e10cSrcweir using namespace ::com::sun::star::uno; 64*cdf0e10cSrcweir using namespace ::com::sun::star::sdb; 65*cdf0e10cSrcweir using namespace ::com::sun::star::sdbcx; 66*cdf0e10cSrcweir using namespace ::com::sun::star::beans; 67*cdf0e10cSrcweir using namespace ::com::sun::star::container; 68*cdf0e10cSrcweir 69*cdf0e10cSrcweir //================================================================== 70*cdf0e10cSrcweir // SbaXFormAdapter 71*cdf0e10cSrcweir //================================================================== 72*cdf0e10cSrcweir 73*cdf0e10cSrcweir DBG_NAME(SbaXFormAdapter) 74*cdf0e10cSrcweir // ------------------------------------------------------------------------- 75*cdf0e10cSrcweir SbaXFormAdapter::SbaXFormAdapter() 76*cdf0e10cSrcweir :m_aLoadListeners(*this, m_aMutex) 77*cdf0e10cSrcweir ,m_aRowSetListeners(*this, m_aMutex) 78*cdf0e10cSrcweir ,m_aRowSetApproveListeners(*this, m_aMutex) 79*cdf0e10cSrcweir ,m_aErrorListeners(*this, m_aMutex) 80*cdf0e10cSrcweir ,m_aParameterListeners(*this, m_aMutex) 81*cdf0e10cSrcweir ,m_aSubmitListeners(*this, m_aMutex) 82*cdf0e10cSrcweir ,m_aResetListeners(*this, m_aMutex) 83*cdf0e10cSrcweir ,m_aPropertyChangeListeners(*this, m_aMutex) 84*cdf0e10cSrcweir ,m_aVetoablePropertyChangeListeners(*this, m_aMutex) 85*cdf0e10cSrcweir ,m_aPropertiesChangeListeners(*this, m_aMutex) 86*cdf0e10cSrcweir ,m_aDisposeListeners(m_aMutex) 87*cdf0e10cSrcweir ,m_aContainerListeners(m_aMutex) 88*cdf0e10cSrcweir ,m_nNamePropHandle(-1) 89*cdf0e10cSrcweir { 90*cdf0e10cSrcweir DBG_CTOR(SbaXFormAdapter,NULL); 91*cdf0e10cSrcweir 92*cdf0e10cSrcweir } 93*cdf0e10cSrcweir 94*cdf0e10cSrcweir // ------------------------------------------------------------------------- 95*cdf0e10cSrcweir SbaXFormAdapter::~SbaXFormAdapter() 96*cdf0e10cSrcweir { 97*cdf0e10cSrcweir 98*cdf0e10cSrcweir DBG_DTOR(SbaXFormAdapter,NULL); 99*cdf0e10cSrcweir } 100*cdf0e10cSrcweir 101*cdf0e10cSrcweir // ------------------------------------------------------------------------- 102*cdf0e10cSrcweir Sequence< Type > SAL_CALL SbaXFormAdapter::getTypes( ) throw (RuntimeException) 103*cdf0e10cSrcweir { 104*cdf0e10cSrcweir return ::comphelper::concatSequences( 105*cdf0e10cSrcweir SbaXFormAdapter_BASE1::getTypes(), 106*cdf0e10cSrcweir SbaXFormAdapter_BASE2::getTypes(), 107*cdf0e10cSrcweir SbaXFormAdapter_BASE3::getTypes() 108*cdf0e10cSrcweir ); 109*cdf0e10cSrcweir } 110*cdf0e10cSrcweir 111*cdf0e10cSrcweir // ------------------------------------------------------------------------- 112*cdf0e10cSrcweir Sequence< sal_Int8 > SAL_CALL SbaXFormAdapter::getImplementationId( ) throw (RuntimeException) 113*cdf0e10cSrcweir { 114*cdf0e10cSrcweir static ::cppu::OImplementationId * pId = 0; 115*cdf0e10cSrcweir if (! pId) 116*cdf0e10cSrcweir { 117*cdf0e10cSrcweir ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ); 118*cdf0e10cSrcweir if (! pId) 119*cdf0e10cSrcweir { 120*cdf0e10cSrcweir static ::cppu::OImplementationId aId; 121*cdf0e10cSrcweir pId = &aId; 122*cdf0e10cSrcweir } 123*cdf0e10cSrcweir } 124*cdf0e10cSrcweir return pId->getImplementationId(); 125*cdf0e10cSrcweir } 126*cdf0e10cSrcweir 127*cdf0e10cSrcweir // ------------------------------------------------------------------------- 128*cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::queryInterface(const Type& _rType) throw (RuntimeException) 129*cdf0e10cSrcweir { 130*cdf0e10cSrcweir Any aReturn = SbaXFormAdapter_BASE1::queryInterface( _rType ); 131*cdf0e10cSrcweir 132*cdf0e10cSrcweir if (!aReturn.hasValue()) 133*cdf0e10cSrcweir aReturn = SbaXFormAdapter_BASE2::queryInterface( _rType ); 134*cdf0e10cSrcweir 135*cdf0e10cSrcweir if (!aReturn.hasValue()) 136*cdf0e10cSrcweir aReturn = SbaXFormAdapter_BASE3::queryInterface( _rType ); 137*cdf0e10cSrcweir 138*cdf0e10cSrcweir return aReturn; 139*cdf0e10cSrcweir } 140*cdf0e10cSrcweir 141*cdf0e10cSrcweir // ------------------------------------------------------------------------- 142*cdf0e10cSrcweir void SbaXFormAdapter::StopListening() 143*cdf0e10cSrcweir { 144*cdf0e10cSrcweir // log off all our multiplexers 145*cdf0e10cSrcweir STOP_MULTIPLEXER_LISTENING(LoadListener, m_aLoadListeners, ::com::sun::star::form::XLoadable, m_xMainForm); 146*cdf0e10cSrcweir STOP_MULTIPLEXER_LISTENING(RowSetListener, m_aRowSetListeners, ::com::sun::star::sdbc::XRowSet, m_xMainForm); 147*cdf0e10cSrcweir STOP_MULTIPLEXER_LISTENING(RowSetApproveListener, m_aRowSetApproveListeners, ::com::sun::star::sdb::XRowSetApproveBroadcaster, m_xMainForm); 148*cdf0e10cSrcweir STOP_MULTIPLEXER_LISTENING(SQLErrorListener, m_aErrorListeners, ::com::sun::star::sdb::XSQLErrorBroadcaster, m_xMainForm); 149*cdf0e10cSrcweir STOP_MULTIPLEXER_LISTENING(SubmitListener, m_aSubmitListeners, ::com::sun::star::form::XSubmit, m_xMainForm); 150*cdf0e10cSrcweir STOP_MULTIPLEXER_LISTENING(ResetListener, m_aResetListeners, ::com::sun::star::form::XReset, m_xMainForm); 151*cdf0e10cSrcweir 152*cdf0e10cSrcweir if (m_aParameterListeners.getLength()) 153*cdf0e10cSrcweir { 154*cdf0e10cSrcweir Reference< ::com::sun::star::form::XDatabaseParameterBroadcaster > xBroadcaster(m_xMainForm, UNO_QUERY); 155*cdf0e10cSrcweir if (xBroadcaster.is()) 156*cdf0e10cSrcweir xBroadcaster->removeParameterListener(&m_aParameterListeners); 157*cdf0e10cSrcweir } 158*cdf0e10cSrcweir 159*cdf0e10cSrcweir STOP_PROPERTY_MULTIPLEXER_LISTENING(PropertyChangeListener, m_aPropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm); 160*cdf0e10cSrcweir STOP_PROPERTY_MULTIPLEXER_LISTENING(VetoableChangeListener, m_aVetoablePropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm); 161*cdf0e10cSrcweir if (m_aPropertiesChangeListeners.getLength()) 162*cdf0e10cSrcweir { 163*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XMultiPropertySet > xBroadcaster(m_xMainForm, UNO_QUERY); 164*cdf0e10cSrcweir if (xBroadcaster.is()) 165*cdf0e10cSrcweir xBroadcaster->removePropertiesChangeListener(&m_aPropertiesChangeListeners); 166*cdf0e10cSrcweir } 167*cdf0e10cSrcweir 168*cdf0e10cSrcweir // log off ourself 169*cdf0e10cSrcweir Reference< ::com::sun::star::lang::XComponent > xComp(m_xMainForm, UNO_QUERY); 170*cdf0e10cSrcweir if (xComp.is()) 171*cdf0e10cSrcweir xComp->removeEventListener((::com::sun::star::lang::XEventListener*)(::com::sun::star::beans::XPropertyChangeListener*)this); 172*cdf0e10cSrcweir } 173*cdf0e10cSrcweir 174*cdf0e10cSrcweir // ------------------------------------------------------------------------- 175*cdf0e10cSrcweir void SbaXFormAdapter::StartListening() 176*cdf0e10cSrcweir { 177*cdf0e10cSrcweir // log off all our multiplexers 178*cdf0e10cSrcweir START_MULTIPLEXER_LISTENING(LoadListener, m_aLoadListeners, ::com::sun::star::form::XLoadable, m_xMainForm); 179*cdf0e10cSrcweir START_MULTIPLEXER_LISTENING(RowSetListener, m_aRowSetListeners, ::com::sun::star::sdbc::XRowSet, m_xMainForm); 180*cdf0e10cSrcweir START_MULTIPLEXER_LISTENING(RowSetApproveListener, m_aRowSetApproveListeners, ::com::sun::star::sdb::XRowSetApproveBroadcaster, m_xMainForm); 181*cdf0e10cSrcweir START_MULTIPLEXER_LISTENING(SQLErrorListener, m_aErrorListeners, ::com::sun::star::sdb::XSQLErrorBroadcaster, m_xMainForm); 182*cdf0e10cSrcweir START_MULTIPLEXER_LISTENING(SubmitListener, m_aSubmitListeners, ::com::sun::star::form::XSubmit, m_xMainForm); 183*cdf0e10cSrcweir START_MULTIPLEXER_LISTENING(ResetListener, m_aResetListeners, ::com::sun::star::form::XReset, m_xMainForm); 184*cdf0e10cSrcweir 185*cdf0e10cSrcweir if (m_aParameterListeners.getLength()) 186*cdf0e10cSrcweir { 187*cdf0e10cSrcweir Reference< ::com::sun::star::form::XDatabaseParameterBroadcaster > xBroadcaster(m_xMainForm, UNO_QUERY); 188*cdf0e10cSrcweir if (xBroadcaster.is()) 189*cdf0e10cSrcweir xBroadcaster->addParameterListener(&m_aParameterListeners); 190*cdf0e10cSrcweir } 191*cdf0e10cSrcweir 192*cdf0e10cSrcweir START_PROPERTY_MULTIPLEXER_LISTENING(PropertyChangeListener, m_aPropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm); 193*cdf0e10cSrcweir START_PROPERTY_MULTIPLEXER_LISTENING(VetoableChangeListener, m_aVetoablePropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm); 194*cdf0e10cSrcweir if (m_aPropertiesChangeListeners.getLength()) 195*cdf0e10cSrcweir { 196*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XMultiPropertySet > xBroadcaster(m_xMainForm, UNO_QUERY); 197*cdf0e10cSrcweir ::rtl::OUString sEmpty; 198*cdf0e10cSrcweir if (xBroadcaster.is()) 199*cdf0e10cSrcweir xBroadcaster->addPropertiesChangeListener(::comphelper::StringSequence(&sEmpty, 1), &m_aPropertiesChangeListeners); 200*cdf0e10cSrcweir } 201*cdf0e10cSrcweir 202*cdf0e10cSrcweir // log off ourself 203*cdf0e10cSrcweir Reference< ::com::sun::star::lang::XComponent > xComp(m_xMainForm, UNO_QUERY); 204*cdf0e10cSrcweir if (xComp.is()) 205*cdf0e10cSrcweir xComp->addEventListener((::com::sun::star::lang::XEventListener*)(::com::sun::star::beans::XPropertyChangeListener*)this); 206*cdf0e10cSrcweir } 207*cdf0e10cSrcweir 208*cdf0e10cSrcweir // ------------------------------------------------------------------------- 209*cdf0e10cSrcweir void SbaXFormAdapter::AttachForm(const Reference< ::com::sun::star::sdbc::XRowSet >& xNewMaster) 210*cdf0e10cSrcweir { 211*cdf0e10cSrcweir if (xNewMaster == m_xMainForm) 212*cdf0e10cSrcweir return; 213*cdf0e10cSrcweir 214*cdf0e10cSrcweir DBG_ASSERT(xNewMaster.get() != static_cast< ::com::sun::star::sdbc::XRowSet* >(this), "SbaXFormAdapter::AttachForm : invalid argument !"); 215*cdf0e10cSrcweir 216*cdf0e10cSrcweir if (m_xMainForm.is()) 217*cdf0e10cSrcweir { 218*cdf0e10cSrcweir StopListening(); 219*cdf0e10cSrcweir 220*cdf0e10cSrcweir // if our old master is loaded we have to send an 'unloaded' event 221*cdf0e10cSrcweir Reference< ::com::sun::star::form::XLoadable > xLoadable(m_xMainForm, UNO_QUERY); 222*cdf0e10cSrcweir if (xLoadable->isLoaded()) 223*cdf0e10cSrcweir { 224*cdf0e10cSrcweir ::com::sun::star::lang::EventObject aEvt(*this); 225*cdf0e10cSrcweir ::cppu::OInterfaceIteratorHelper aIt(m_aLoadListeners); 226*cdf0e10cSrcweir while (aIt.hasMoreElements()) 227*cdf0e10cSrcweir ((::com::sun::star::form::XLoadListener*)aIt.next())->unloaded(aEvt); 228*cdf0e10cSrcweir } 229*cdf0e10cSrcweir } 230*cdf0e10cSrcweir 231*cdf0e10cSrcweir m_xMainForm = xNewMaster; 232*cdf0e10cSrcweir 233*cdf0e10cSrcweir if (m_xMainForm.is()) 234*cdf0e10cSrcweir { 235*cdf0e10cSrcweir StartListening(); 236*cdf0e10cSrcweir 237*cdf0e10cSrcweir // if our new master is loaded we have to send an 'loaded' event 238*cdf0e10cSrcweir Reference< ::com::sun::star::form::XLoadable > xLoadable(m_xMainForm, UNO_QUERY); 239*cdf0e10cSrcweir if (xLoadable->isLoaded()) 240*cdf0e10cSrcweir { 241*cdf0e10cSrcweir ::com::sun::star::lang::EventObject aEvt(*this); 242*cdf0e10cSrcweir ::cppu::OInterfaceIteratorHelper aIt(m_aLoadListeners); 243*cdf0e10cSrcweir while (aIt.hasMoreElements()) 244*cdf0e10cSrcweir ((::com::sun::star::form::XLoadListener*)aIt.next())->loaded(aEvt); 245*cdf0e10cSrcweir } 246*cdf0e10cSrcweir } 247*cdf0e10cSrcweir 248*cdf0e10cSrcweir // TODO : perhaps _all_ of our listeners should be notified about our new state 249*cdf0e10cSrcweir // (nearly every aspect of us may have changed with new master form) 250*cdf0e10cSrcweir } 251*cdf0e10cSrcweir 252*cdf0e10cSrcweir // ::com::sun::star::sdbc::XCloseable 253*cdf0e10cSrcweir // ------------------------------------------------------------------------- 254*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::close() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 255*cdf0e10cSrcweir { 256*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XCloseable > xIface(m_xMainForm, UNO_QUERY); 257*cdf0e10cSrcweir if (xIface.is()) 258*cdf0e10cSrcweir xIface->close(); 259*cdf0e10cSrcweir } 260*cdf0e10cSrcweir 261*cdf0e10cSrcweir // ::com::sun::star::sdbc::XResultSetMetaDataSupplier 262*cdf0e10cSrcweir // ------------------------------------------------------------------------- 263*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL SbaXFormAdapter::getMetaData() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 264*cdf0e10cSrcweir { 265*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSetMetaDataSupplier > xIface(m_xMainForm, UNO_QUERY); 266*cdf0e10cSrcweir if (xIface.is()) 267*cdf0e10cSrcweir return xIface->getMetaData(); 268*cdf0e10cSrcweir return Reference< ::com::sun::star::sdbc::XResultSetMetaData > (); 269*cdf0e10cSrcweir } 270*cdf0e10cSrcweir 271*cdf0e10cSrcweir // ::com::sun::star::sdbc::XColumnLocate 272*cdf0e10cSrcweir // ------------------------------------------------------------------------- 273*cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::findColumn(const ::rtl::OUString& columnName) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 274*cdf0e10cSrcweir { 275*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XColumnLocate > xIface(m_xMainForm, UNO_QUERY); 276*cdf0e10cSrcweir if (xIface.is()) 277*cdf0e10cSrcweir return xIface->findColumn(columnName); 278*cdf0e10cSrcweir return 0; 279*cdf0e10cSrcweir } 280*cdf0e10cSrcweir 281*cdf0e10cSrcweir // ::com::sun::star::sdbcx::XColumnsSupplier 282*cdf0e10cSrcweir // ------------------------------------------------------------------------- 283*cdf0e10cSrcweir Reference< ::com::sun::star::container::XNameAccess > SAL_CALL SbaXFormAdapter::getColumns() throw( RuntimeException ) 284*cdf0e10cSrcweir { 285*cdf0e10cSrcweir Reference< ::com::sun::star::sdbcx::XColumnsSupplier > xIface(m_xMainForm, UNO_QUERY); 286*cdf0e10cSrcweir if (xIface.is()) 287*cdf0e10cSrcweir return xIface->getColumns(); 288*cdf0e10cSrcweir return Reference< ::com::sun::star::container::XNameAccess > (); 289*cdf0e10cSrcweir } 290*cdf0e10cSrcweir 291*cdf0e10cSrcweir // ::com::sun::star::sdbc::XRow 292*cdf0e10cSrcweir // ------------------------------------------------------------------------- 293*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::wasNull() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 294*cdf0e10cSrcweir { 295*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 296*cdf0e10cSrcweir if (xIface.is()) 297*cdf0e10cSrcweir return xIface->wasNull(); 298*cdf0e10cSrcweir return sal_True; 299*cdf0e10cSrcweir } 300*cdf0e10cSrcweir // ------------------------------------------------------------------------- 301*cdf0e10cSrcweir ::rtl::OUString SAL_CALL SbaXFormAdapter::getString(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 302*cdf0e10cSrcweir { 303*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 304*cdf0e10cSrcweir if (xIface.is()) 305*cdf0e10cSrcweir return xIface->getString(columnIndex); 306*cdf0e10cSrcweir return ::rtl::OUString(); 307*cdf0e10cSrcweir } 308*cdf0e10cSrcweir // ------------------------------------------------------------------------- 309*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::getBoolean(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 310*cdf0e10cSrcweir { 311*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 312*cdf0e10cSrcweir if (xIface.is()) 313*cdf0e10cSrcweir return xIface->getBoolean(columnIndex); 314*cdf0e10cSrcweir return sal_False; 315*cdf0e10cSrcweir } 316*cdf0e10cSrcweir // ------------------------------------------------------------------------- 317*cdf0e10cSrcweir sal_Int8 SAL_CALL SbaXFormAdapter::getByte(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 318*cdf0e10cSrcweir { 319*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 320*cdf0e10cSrcweir if (xIface.is()) 321*cdf0e10cSrcweir return xIface->getByte(columnIndex); 322*cdf0e10cSrcweir return 0; 323*cdf0e10cSrcweir } 324*cdf0e10cSrcweir // ------------------------------------------------------------------------- 325*cdf0e10cSrcweir sal_Int16 SAL_CALL SbaXFormAdapter::getShort(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 326*cdf0e10cSrcweir { 327*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 328*cdf0e10cSrcweir if (xIface.is()) 329*cdf0e10cSrcweir return xIface->getShort(columnIndex); 330*cdf0e10cSrcweir return 0; 331*cdf0e10cSrcweir } 332*cdf0e10cSrcweir // ------------------------------------------------------------------------- 333*cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::getInt(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 334*cdf0e10cSrcweir { 335*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 336*cdf0e10cSrcweir if (xIface.is()) 337*cdf0e10cSrcweir return xIface->getInt(columnIndex); 338*cdf0e10cSrcweir return 0; 339*cdf0e10cSrcweir } 340*cdf0e10cSrcweir // ------------------------------------------------------------------------- 341*cdf0e10cSrcweir sal_Int64 SAL_CALL SbaXFormAdapter::getLong(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 342*cdf0e10cSrcweir { 343*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 344*cdf0e10cSrcweir if (xIface.is()) 345*cdf0e10cSrcweir return xIface->getLong(columnIndex); 346*cdf0e10cSrcweir return 0; 347*cdf0e10cSrcweir } 348*cdf0e10cSrcweir // ------------------------------------------------------------------------- 349*cdf0e10cSrcweir float SAL_CALL SbaXFormAdapter::getFloat(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 350*cdf0e10cSrcweir { 351*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 352*cdf0e10cSrcweir if (xIface.is()) 353*cdf0e10cSrcweir return xIface->getFloat(columnIndex); 354*cdf0e10cSrcweir return 0.0; 355*cdf0e10cSrcweir } 356*cdf0e10cSrcweir // ------------------------------------------------------------------------- 357*cdf0e10cSrcweir double SAL_CALL SbaXFormAdapter::getDouble(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 358*cdf0e10cSrcweir { 359*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 360*cdf0e10cSrcweir if (xIface.is()) 361*cdf0e10cSrcweir return xIface->getDouble(columnIndex); 362*cdf0e10cSrcweir return 0.0; 363*cdf0e10cSrcweir } 364*cdf0e10cSrcweir // ------------------------------------------------------------------------- 365*cdf0e10cSrcweir Sequence< sal_Int8 > SAL_CALL SbaXFormAdapter::getBytes(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 366*cdf0e10cSrcweir { 367*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 368*cdf0e10cSrcweir if (xIface.is()) 369*cdf0e10cSrcweir return xIface->getBytes(columnIndex); 370*cdf0e10cSrcweir return Sequence <sal_Int8> (); 371*cdf0e10cSrcweir } 372*cdf0e10cSrcweir // ------------------------------------------------------------------------- 373*cdf0e10cSrcweir ::com::sun::star::util::Date SAL_CALL SbaXFormAdapter::getDate(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 374*cdf0e10cSrcweir { 375*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 376*cdf0e10cSrcweir if (xIface.is()) 377*cdf0e10cSrcweir return xIface->getDate(columnIndex); 378*cdf0e10cSrcweir return ::com::sun::star::util::Date(); 379*cdf0e10cSrcweir } 380*cdf0e10cSrcweir // ------------------------------------------------------------------------- 381*cdf0e10cSrcweir ::com::sun::star::util::Time SAL_CALL SbaXFormAdapter::getTime(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 382*cdf0e10cSrcweir { 383*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 384*cdf0e10cSrcweir if (xIface.is()) 385*cdf0e10cSrcweir return xIface->getTime(columnIndex); 386*cdf0e10cSrcweir return ::com::sun::star::util::Time(); 387*cdf0e10cSrcweir } 388*cdf0e10cSrcweir // ------------------------------------------------------------------------- 389*cdf0e10cSrcweir ::com::sun::star::util::DateTime SAL_CALL SbaXFormAdapter::getTimestamp(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 390*cdf0e10cSrcweir { 391*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 392*cdf0e10cSrcweir if (xIface.is()) 393*cdf0e10cSrcweir return xIface->getTimestamp(columnIndex); 394*cdf0e10cSrcweir return ::com::sun::star::util::DateTime(); 395*cdf0e10cSrcweir } 396*cdf0e10cSrcweir // ------------------------------------------------------------------------- 397*cdf0e10cSrcweir Reference< ::com::sun::star::io::XInputStream > SAL_CALL SbaXFormAdapter::getBinaryStream(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 398*cdf0e10cSrcweir { 399*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 400*cdf0e10cSrcweir if (xIface.is()) 401*cdf0e10cSrcweir return xIface->getBinaryStream(columnIndex); 402*cdf0e10cSrcweir return Reference< ::com::sun::star::io::XInputStream > (); 403*cdf0e10cSrcweir } 404*cdf0e10cSrcweir // ------------------------------------------------------------------------- 405*cdf0e10cSrcweir Reference< ::com::sun::star::io::XInputStream > SAL_CALL SbaXFormAdapter::getCharacterStream(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 406*cdf0e10cSrcweir { 407*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 408*cdf0e10cSrcweir if (xIface.is()) 409*cdf0e10cSrcweir return xIface->getCharacterStream(columnIndex); 410*cdf0e10cSrcweir return Reference< ::com::sun::star::io::XInputStream > (); 411*cdf0e10cSrcweir } 412*cdf0e10cSrcweir // ------------------------------------------------------------------------- 413*cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getObject(sal_Int32 columnIndex, const Reference< ::com::sun::star::container::XNameAccess >& typeMap) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 414*cdf0e10cSrcweir { 415*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 416*cdf0e10cSrcweir if (xIface.is()) 417*cdf0e10cSrcweir return xIface->getObject(columnIndex, typeMap); 418*cdf0e10cSrcweir return Any(); 419*cdf0e10cSrcweir } 420*cdf0e10cSrcweir // ------------------------------------------------------------------------- 421*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRef > SAL_CALL SbaXFormAdapter::getRef(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 422*cdf0e10cSrcweir { 423*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 424*cdf0e10cSrcweir if (xIface.is()) 425*cdf0e10cSrcweir return xIface->getRef(columnIndex); 426*cdf0e10cSrcweir return Reference< ::com::sun::star::sdbc::XRef > (); 427*cdf0e10cSrcweir } 428*cdf0e10cSrcweir // ------------------------------------------------------------------------- 429*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XBlob > SAL_CALL SbaXFormAdapter::getBlob(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 430*cdf0e10cSrcweir { 431*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 432*cdf0e10cSrcweir if (xIface.is()) 433*cdf0e10cSrcweir return xIface->getBlob(columnIndex); 434*cdf0e10cSrcweir return Reference< ::com::sun::star::sdbc::XBlob > (); 435*cdf0e10cSrcweir } 436*cdf0e10cSrcweir // ------------------------------------------------------------------------- 437*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XClob > SAL_CALL SbaXFormAdapter::getClob(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 438*cdf0e10cSrcweir { 439*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 440*cdf0e10cSrcweir if (xIface.is()) 441*cdf0e10cSrcweir return xIface->getClob(columnIndex); 442*cdf0e10cSrcweir return Reference< ::com::sun::star::sdbc::XClob > (); 443*cdf0e10cSrcweir } 444*cdf0e10cSrcweir // ------------------------------------------------------------------------- 445*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XArray > SAL_CALL SbaXFormAdapter::getArray(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 446*cdf0e10cSrcweir { 447*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRow > xIface(m_xMainForm, UNO_QUERY); 448*cdf0e10cSrcweir if (xIface.is()) 449*cdf0e10cSrcweir return xIface->getArray(columnIndex); 450*cdf0e10cSrcweir return Reference< ::com::sun::star::sdbc::XArray > (); 451*cdf0e10cSrcweir } 452*cdf0e10cSrcweir 453*cdf0e10cSrcweir // ::com::sun::star::sdbcx::XRowLocate 454*cdf0e10cSrcweir // ------------------------------------------------------------------------- 455*cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getBookmark() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 456*cdf0e10cSrcweir { 457*cdf0e10cSrcweir Reference< ::com::sun::star::sdbcx::XRowLocate > xIface(m_xMainForm, UNO_QUERY); 458*cdf0e10cSrcweir if (xIface.is()) 459*cdf0e10cSrcweir return xIface->getBookmark(); 460*cdf0e10cSrcweir return Any(); 461*cdf0e10cSrcweir } 462*cdf0e10cSrcweir // ------------------------------------------------------------------------- 463*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::moveToBookmark(const Any& bookmark) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 464*cdf0e10cSrcweir { 465*cdf0e10cSrcweir Reference< ::com::sun::star::sdbcx::XRowLocate > xIface(m_xMainForm, UNO_QUERY); 466*cdf0e10cSrcweir if (xIface.is()) 467*cdf0e10cSrcweir return xIface->moveToBookmark(bookmark); 468*cdf0e10cSrcweir return sal_False; 469*cdf0e10cSrcweir } 470*cdf0e10cSrcweir // ------------------------------------------------------------------------- 471*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::moveRelativeToBookmark(const Any& bookmark, sal_Int32 rows) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 472*cdf0e10cSrcweir { 473*cdf0e10cSrcweir Reference< ::com::sun::star::sdbcx::XRowLocate > xIface(m_xMainForm, UNO_QUERY); 474*cdf0e10cSrcweir if (xIface.is()) 475*cdf0e10cSrcweir return xIface->moveRelativeToBookmark(bookmark,rows); 476*cdf0e10cSrcweir return sal_False; 477*cdf0e10cSrcweir } 478*cdf0e10cSrcweir // ------------------------------------------------------------------------- 479*cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::compareBookmarks(const Any& _first, const Any& _second) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 480*cdf0e10cSrcweir { 481*cdf0e10cSrcweir Reference< ::com::sun::star::sdbcx::XRowLocate > xIface(m_xMainForm, UNO_QUERY); 482*cdf0e10cSrcweir if (xIface.is()) 483*cdf0e10cSrcweir return xIface->compareBookmarks(_first, _second); 484*cdf0e10cSrcweir return 0; 485*cdf0e10cSrcweir } 486*cdf0e10cSrcweir 487*cdf0e10cSrcweir // ------------------------------------------------------------------------- 488*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::hasOrderedBookmarks() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 489*cdf0e10cSrcweir { 490*cdf0e10cSrcweir Reference< ::com::sun::star::sdbcx::XRowLocate > xIface(m_xMainForm, UNO_QUERY); 491*cdf0e10cSrcweir if (xIface.is()) 492*cdf0e10cSrcweir return xIface->hasOrderedBookmarks(); 493*cdf0e10cSrcweir return sal_False; 494*cdf0e10cSrcweir } 495*cdf0e10cSrcweir 496*cdf0e10cSrcweir // ------------------------------------------------------------------------- 497*cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::hashBookmark(const Any& bookmark) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 498*cdf0e10cSrcweir { 499*cdf0e10cSrcweir Reference< ::com::sun::star::sdbcx::XRowLocate > xIface(m_xMainForm, UNO_QUERY); 500*cdf0e10cSrcweir if (xIface.is()) 501*cdf0e10cSrcweir return xIface->hashBookmark(bookmark); 502*cdf0e10cSrcweir return 0; 503*cdf0e10cSrcweir } 504*cdf0e10cSrcweir 505*cdf0e10cSrcweir // ::com::sun::star::sdbc::XRowUpdate 506*cdf0e10cSrcweir // ------------------------------------------------------------------------- 507*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateNull(sal_Int32 columnIndex) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 508*cdf0e10cSrcweir { 509*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 510*cdf0e10cSrcweir if (xIface.is()) 511*cdf0e10cSrcweir xIface->updateNull(columnIndex); 512*cdf0e10cSrcweir } 513*cdf0e10cSrcweir // ------------------------------------------------------------------------- 514*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateBoolean(sal_Int32 columnIndex, sal_Bool x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 515*cdf0e10cSrcweir { 516*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 517*cdf0e10cSrcweir if (xIface.is()) 518*cdf0e10cSrcweir xIface->updateBoolean(columnIndex, x); 519*cdf0e10cSrcweir } 520*cdf0e10cSrcweir // ------------------------------------------------------------------------- 521*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateByte(sal_Int32 columnIndex, sal_Int8 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 522*cdf0e10cSrcweir { 523*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 524*cdf0e10cSrcweir if (xIface.is()) 525*cdf0e10cSrcweir xIface->updateByte(columnIndex, x); 526*cdf0e10cSrcweir } 527*cdf0e10cSrcweir // ------------------------------------------------------------------------- 528*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateShort(sal_Int32 columnIndex, sal_Int16 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 529*cdf0e10cSrcweir { 530*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 531*cdf0e10cSrcweir if (xIface.is()) 532*cdf0e10cSrcweir xIface->updateShort(columnIndex, x); 533*cdf0e10cSrcweir } 534*cdf0e10cSrcweir // ------------------------------------------------------------------------- 535*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateInt(sal_Int32 columnIndex, sal_Int32 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 536*cdf0e10cSrcweir { 537*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 538*cdf0e10cSrcweir if (xIface.is()) 539*cdf0e10cSrcweir xIface->updateInt(columnIndex, x); 540*cdf0e10cSrcweir } 541*cdf0e10cSrcweir // ------------------------------------------------------------------------- 542*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateLong(sal_Int32 columnIndex, sal_Int64 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 543*cdf0e10cSrcweir { 544*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 545*cdf0e10cSrcweir if (xIface.is()) 546*cdf0e10cSrcweir xIface->updateLong(columnIndex, x); 547*cdf0e10cSrcweir } 548*cdf0e10cSrcweir // ------------------------------------------------------------------------- 549*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateFloat(sal_Int32 columnIndex, float x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 550*cdf0e10cSrcweir { 551*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 552*cdf0e10cSrcweir if (xIface.is()) 553*cdf0e10cSrcweir xIface->updateFloat(columnIndex, x); 554*cdf0e10cSrcweir } 555*cdf0e10cSrcweir // ------------------------------------------------------------------------- 556*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateDouble(sal_Int32 columnIndex, double x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 557*cdf0e10cSrcweir { 558*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 559*cdf0e10cSrcweir if (xIface.is()) 560*cdf0e10cSrcweir xIface->updateDouble(columnIndex, x); 561*cdf0e10cSrcweir } 562*cdf0e10cSrcweir // ------------------------------------------------------------------------- 563*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateString(sal_Int32 columnIndex, const ::rtl::OUString& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 564*cdf0e10cSrcweir { 565*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 566*cdf0e10cSrcweir if (xIface.is()) 567*cdf0e10cSrcweir xIface->updateString(columnIndex, x); 568*cdf0e10cSrcweir } 569*cdf0e10cSrcweir // ------------------------------------------------------------------------- 570*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateBytes(sal_Int32 columnIndex, const Sequence< sal_Int8 >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 571*cdf0e10cSrcweir { 572*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 573*cdf0e10cSrcweir if (xIface.is()) 574*cdf0e10cSrcweir xIface->updateBytes(columnIndex, x); 575*cdf0e10cSrcweir } 576*cdf0e10cSrcweir // ------------------------------------------------------------------------- 577*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateDate(sal_Int32 columnIndex, const ::com::sun::star::util::Date& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 578*cdf0e10cSrcweir { 579*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 580*cdf0e10cSrcweir if (xIface.is()) 581*cdf0e10cSrcweir xIface->updateDate(columnIndex, x); 582*cdf0e10cSrcweir } 583*cdf0e10cSrcweir // ------------------------------------------------------------------------- 584*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateTime(sal_Int32 columnIndex, const ::com::sun::star::util::Time& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 585*cdf0e10cSrcweir { 586*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 587*cdf0e10cSrcweir if (xIface.is()) 588*cdf0e10cSrcweir xIface->updateTime(columnIndex, x); 589*cdf0e10cSrcweir } 590*cdf0e10cSrcweir // ------------------------------------------------------------------------- 591*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateTimestamp(sal_Int32 columnIndex, const ::com::sun::star::util::DateTime& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 592*cdf0e10cSrcweir { 593*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 594*cdf0e10cSrcweir if (xIface.is()) 595*cdf0e10cSrcweir xIface->updateTimestamp(columnIndex, x); 596*cdf0e10cSrcweir } 597*cdf0e10cSrcweir // ------------------------------------------------------------------------- 598*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateBinaryStream(sal_Int32 columnIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 599*cdf0e10cSrcweir { 600*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 601*cdf0e10cSrcweir if (xIface.is()) 602*cdf0e10cSrcweir xIface->updateBinaryStream(columnIndex, x, length); 603*cdf0e10cSrcweir } 604*cdf0e10cSrcweir // ------------------------------------------------------------------------- 605*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateCharacterStream(sal_Int32 columnIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 606*cdf0e10cSrcweir { 607*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 608*cdf0e10cSrcweir if (xIface.is()) 609*cdf0e10cSrcweir xIface->updateCharacterStream(columnIndex, x, length); 610*cdf0e10cSrcweir } 611*cdf0e10cSrcweir // ------------------------------------------------------------------------- 612*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateObject(sal_Int32 columnIndex, const Any& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 613*cdf0e10cSrcweir { 614*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 615*cdf0e10cSrcweir if (xIface.is()) 616*cdf0e10cSrcweir xIface->updateObject(columnIndex, x); 617*cdf0e10cSrcweir } 618*cdf0e10cSrcweir // ------------------------------------------------------------------------- 619*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateNumericObject(sal_Int32 columnIndex, const Any& x, sal_Int32 scale) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 620*cdf0e10cSrcweir { 621*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XRowUpdate > xIface(m_xMainForm, UNO_QUERY); 622*cdf0e10cSrcweir if (xIface.is()) 623*cdf0e10cSrcweir xIface->updateNumericObject(columnIndex, x, scale); 624*cdf0e10cSrcweir } 625*cdf0e10cSrcweir 626*cdf0e10cSrcweir // ::com::sun::star::sdbc::XResultSet 627*cdf0e10cSrcweir // ------------------------------------------------------------------------- 628*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::next() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 629*cdf0e10cSrcweir { 630*cdf0e10cSrcweir if (m_xMainForm.is()) 631*cdf0e10cSrcweir return m_xMainForm->next(); 632*cdf0e10cSrcweir return sal_False; 633*cdf0e10cSrcweir } 634*cdf0e10cSrcweir // ------------------------------------------------------------------------- 635*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::isBeforeFirst() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 636*cdf0e10cSrcweir { 637*cdf0e10cSrcweir if (m_xMainForm.is()) 638*cdf0e10cSrcweir return m_xMainForm->isBeforeFirst(); 639*cdf0e10cSrcweir return sal_False; 640*cdf0e10cSrcweir } 641*cdf0e10cSrcweir // ------------------------------------------------------------------------- 642*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::isAfterLast() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 643*cdf0e10cSrcweir { 644*cdf0e10cSrcweir if (m_xMainForm.is()) 645*cdf0e10cSrcweir return m_xMainForm->isAfterLast(); 646*cdf0e10cSrcweir return sal_False; 647*cdf0e10cSrcweir } 648*cdf0e10cSrcweir // ------------------------------------------------------------------------- 649*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::isFirst() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 650*cdf0e10cSrcweir { 651*cdf0e10cSrcweir if (m_xMainForm.is()) 652*cdf0e10cSrcweir return m_xMainForm->isFirst(); 653*cdf0e10cSrcweir return sal_False; 654*cdf0e10cSrcweir } 655*cdf0e10cSrcweir // ------------------------------------------------------------------------- 656*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::isLast() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 657*cdf0e10cSrcweir { 658*cdf0e10cSrcweir if (m_xMainForm.is()) 659*cdf0e10cSrcweir return m_xMainForm->isLast(); 660*cdf0e10cSrcweir return sal_False; 661*cdf0e10cSrcweir } 662*cdf0e10cSrcweir // ------------------------------------------------------------------------- 663*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::beforeFirst() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 664*cdf0e10cSrcweir { 665*cdf0e10cSrcweir if (m_xMainForm.is()) 666*cdf0e10cSrcweir m_xMainForm->beforeFirst(); 667*cdf0e10cSrcweir } 668*cdf0e10cSrcweir // ------------------------------------------------------------------------- 669*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::afterLast() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 670*cdf0e10cSrcweir { 671*cdf0e10cSrcweir if (m_xMainForm.is()) 672*cdf0e10cSrcweir m_xMainForm->afterLast(); 673*cdf0e10cSrcweir } 674*cdf0e10cSrcweir // ------------------------------------------------------------------------- 675*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::first() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 676*cdf0e10cSrcweir { 677*cdf0e10cSrcweir if (m_xMainForm.is()) 678*cdf0e10cSrcweir return m_xMainForm->first(); 679*cdf0e10cSrcweir return sal_False; 680*cdf0e10cSrcweir } 681*cdf0e10cSrcweir // ------------------------------------------------------------------------- 682*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::last() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 683*cdf0e10cSrcweir { 684*cdf0e10cSrcweir if (m_xMainForm.is()) 685*cdf0e10cSrcweir return m_xMainForm->last(); 686*cdf0e10cSrcweir return sal_False; 687*cdf0e10cSrcweir } 688*cdf0e10cSrcweir // ------------------------------------------------------------------------- 689*cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::getRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 690*cdf0e10cSrcweir { 691*cdf0e10cSrcweir if (m_xMainForm.is()) 692*cdf0e10cSrcweir return m_xMainForm->getRow(); 693*cdf0e10cSrcweir return sal_False; 694*cdf0e10cSrcweir } 695*cdf0e10cSrcweir // ------------------------------------------------------------------------- 696*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::absolute(sal_Int32 row) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 697*cdf0e10cSrcweir { 698*cdf0e10cSrcweir if (m_xMainForm.is()) 699*cdf0e10cSrcweir return m_xMainForm->absolute(row); 700*cdf0e10cSrcweir return sal_False; 701*cdf0e10cSrcweir } 702*cdf0e10cSrcweir // ------------------------------------------------------------------------- 703*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::relative(sal_Int32 rows) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 704*cdf0e10cSrcweir { 705*cdf0e10cSrcweir if (m_xMainForm.is()) 706*cdf0e10cSrcweir return m_xMainForm->relative(rows); 707*cdf0e10cSrcweir return sal_False; 708*cdf0e10cSrcweir } 709*cdf0e10cSrcweir // ------------------------------------------------------------------------- 710*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::previous() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 711*cdf0e10cSrcweir { 712*cdf0e10cSrcweir if (m_xMainForm.is()) 713*cdf0e10cSrcweir return m_xMainForm->previous(); 714*cdf0e10cSrcweir return sal_False; 715*cdf0e10cSrcweir } 716*cdf0e10cSrcweir // ------------------------------------------------------------------------- 717*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::refreshRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 718*cdf0e10cSrcweir { 719*cdf0e10cSrcweir if (m_xMainForm.is()) 720*cdf0e10cSrcweir m_xMainForm->refreshRow(); 721*cdf0e10cSrcweir } 722*cdf0e10cSrcweir 723*cdf0e10cSrcweir // ------------------------------------------------------------------------- 724*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::rowUpdated() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 725*cdf0e10cSrcweir { 726*cdf0e10cSrcweir if (m_xMainForm.is()) 727*cdf0e10cSrcweir return m_xMainForm->rowUpdated(); 728*cdf0e10cSrcweir return sal_False; 729*cdf0e10cSrcweir } 730*cdf0e10cSrcweir // ------------------------------------------------------------------------- 731*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::rowInserted() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 732*cdf0e10cSrcweir { 733*cdf0e10cSrcweir if (m_xMainForm.is()) 734*cdf0e10cSrcweir return m_xMainForm->rowInserted(); 735*cdf0e10cSrcweir return sal_False; 736*cdf0e10cSrcweir } 737*cdf0e10cSrcweir // ------------------------------------------------------------------------- 738*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::rowDeleted() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 739*cdf0e10cSrcweir { 740*cdf0e10cSrcweir if (m_xMainForm.is()) 741*cdf0e10cSrcweir return m_xMainForm->rowDeleted(); 742*cdf0e10cSrcweir return sal_False; 743*cdf0e10cSrcweir } 744*cdf0e10cSrcweir // ------------------------------------------------------------------------- 745*cdf0e10cSrcweir Reference< XInterface > SAL_CALL SbaXFormAdapter::getStatement() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 746*cdf0e10cSrcweir { 747*cdf0e10cSrcweir if (m_xMainForm.is()) 748*cdf0e10cSrcweir return m_xMainForm->getStatement(); 749*cdf0e10cSrcweir return NULL; 750*cdf0e10cSrcweir } 751*cdf0e10cSrcweir 752*cdf0e10cSrcweir // ::com::sun::star::sdbc::XResultSetUpdate 753*cdf0e10cSrcweir // ------------------------------------------------------------------------- 754*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::insertRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 755*cdf0e10cSrcweir { 756*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSetUpdate > xIface(m_xMainForm, UNO_QUERY); 757*cdf0e10cSrcweir if (xIface.is()) 758*cdf0e10cSrcweir xIface->insertRow(); 759*cdf0e10cSrcweir } 760*cdf0e10cSrcweir // ------------------------------------------------------------------------- 761*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::updateRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 762*cdf0e10cSrcweir { 763*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSetUpdate > xIface(m_xMainForm, UNO_QUERY); 764*cdf0e10cSrcweir if (xIface.is()) 765*cdf0e10cSrcweir xIface->updateRow(); 766*cdf0e10cSrcweir } 767*cdf0e10cSrcweir // ------------------------------------------------------------------------- 768*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::deleteRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 769*cdf0e10cSrcweir { 770*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSetUpdate > xIface(m_xMainForm, UNO_QUERY); 771*cdf0e10cSrcweir if (xIface.is()) 772*cdf0e10cSrcweir xIface->deleteRow(); 773*cdf0e10cSrcweir } 774*cdf0e10cSrcweir // ------------------------------------------------------------------------- 775*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::cancelRowUpdates() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 776*cdf0e10cSrcweir { 777*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSetUpdate > xIface(m_xMainForm, UNO_QUERY); 778*cdf0e10cSrcweir if (xIface.is()) 779*cdf0e10cSrcweir xIface->cancelRowUpdates(); 780*cdf0e10cSrcweir } 781*cdf0e10cSrcweir // ------------------------------------------------------------------------- 782*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::moveToInsertRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 783*cdf0e10cSrcweir { 784*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSetUpdate > xIface(m_xMainForm, UNO_QUERY); 785*cdf0e10cSrcweir if (xIface.is()) 786*cdf0e10cSrcweir xIface->moveToInsertRow(); 787*cdf0e10cSrcweir } 788*cdf0e10cSrcweir // ------------------------------------------------------------------------- 789*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::moveToCurrentRow() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 790*cdf0e10cSrcweir { 791*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSetUpdate > xIface(m_xMainForm, UNO_QUERY); 792*cdf0e10cSrcweir if (xIface.is()) 793*cdf0e10cSrcweir xIface->moveToCurrentRow(); 794*cdf0e10cSrcweir } 795*cdf0e10cSrcweir 796*cdf0e10cSrcweir // ::com::sun::star::sdbc::XRowSet 797*cdf0e10cSrcweir // ------------------------------------------------------------------------- 798*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::execute() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 799*cdf0e10cSrcweir { 800*cdf0e10cSrcweir if (m_xMainForm.is()) 801*cdf0e10cSrcweir m_xMainForm->execute(); 802*cdf0e10cSrcweir } 803*cdf0e10cSrcweir // ------------------------------------------------------------------------- 804*cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, sdbc, RowSetListener, m_aRowSetListeners, ::com::sun::star::sdbc::XRowSet, m_xMainForm) 805*cdf0e10cSrcweir 806*cdf0e10cSrcweir // ::com::sun::star::sdbcx::XDeleteRows 807*cdf0e10cSrcweir // ------------------------------------------------------------------------- 808*cdf0e10cSrcweir Sequence<sal_Int32> SAL_CALL SbaXFormAdapter::deleteRows(const Sequence< Any >& rows) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 809*cdf0e10cSrcweir { 810*cdf0e10cSrcweir Reference< ::com::sun::star::sdbcx::XDeleteRows > xIface(m_xMainForm, UNO_QUERY); 811*cdf0e10cSrcweir if (xIface.is()) 812*cdf0e10cSrcweir return xIface->deleteRows(rows); 813*cdf0e10cSrcweir return Sequence<sal_Int32>(); 814*cdf0e10cSrcweir } 815*cdf0e10cSrcweir 816*cdf0e10cSrcweir // ::com::sun::star::sdbc::XWarningsSupplier 817*cdf0e10cSrcweir // ------------------------------------------------------------------------- 818*cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getWarnings() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 819*cdf0e10cSrcweir { 820*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XWarningsSupplier > xIface(m_xMainForm, UNO_QUERY); 821*cdf0e10cSrcweir if (xIface.is()) 822*cdf0e10cSrcweir return xIface->getWarnings(); 823*cdf0e10cSrcweir return Any(); 824*cdf0e10cSrcweir } 825*cdf0e10cSrcweir // ------------------------------------------------------------------------- 826*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::clearWarnings() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 827*cdf0e10cSrcweir { 828*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XWarningsSupplier > xIface(m_xMainForm, UNO_QUERY); 829*cdf0e10cSrcweir if (xIface.is()) 830*cdf0e10cSrcweir xIface->clearWarnings(); 831*cdf0e10cSrcweir } 832*cdf0e10cSrcweir 833*cdf0e10cSrcweir // ::com::sun::star::sdb::XRowSetApproveBroadcaster 834*cdf0e10cSrcweir // ------------------------------------------------------------------------- 835*cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, sdb, RowSetApproveListener, m_aRowSetApproveListeners, ::com::sun::star::sdb::XRowSetApproveBroadcaster, m_xMainForm) 836*cdf0e10cSrcweir 837*cdf0e10cSrcweir // com::sun::star::sdbc::XSQLErrorBroadcaster 838*cdf0e10cSrcweir // ------------------------------------------------------------------------- 839*cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, sdb, SQLErrorListener, m_aErrorListeners, ::com::sun::star::sdb::XSQLErrorBroadcaster, m_xMainForm) 840*cdf0e10cSrcweir 841*cdf0e10cSrcweir // ::com::sun::star::sdb::XResultSetAccess 842*cdf0e10cSrcweir // ------------------------------------------------------------------------- 843*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL SbaXFormAdapter::createResultSet() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 844*cdf0e10cSrcweir { 845*cdf0e10cSrcweir Reference< ::com::sun::star::sdb::XResultSetAccess > xIface(m_xMainForm, UNO_QUERY); 846*cdf0e10cSrcweir if (xIface.is()) 847*cdf0e10cSrcweir return xIface->createResultSet(); 848*cdf0e10cSrcweir return Reference< ::com::sun::star::sdbc::XResultSet > (); 849*cdf0e10cSrcweir } 850*cdf0e10cSrcweir 851*cdf0e10cSrcweir // com::sun::star::form::XLoadable 852*cdf0e10cSrcweir // ------------------------------------------------------------------------- 853*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::load() throw( RuntimeException ) 854*cdf0e10cSrcweir { 855*cdf0e10cSrcweir Reference< ::com::sun::star::form::XLoadable > xIface(m_xMainForm, UNO_QUERY); 856*cdf0e10cSrcweir if (xIface.is()) 857*cdf0e10cSrcweir xIface->load(); 858*cdf0e10cSrcweir } 859*cdf0e10cSrcweir // ------------------------------------------------------------------------- 860*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::unload() throw( RuntimeException ) 861*cdf0e10cSrcweir { 862*cdf0e10cSrcweir Reference< ::com::sun::star::form::XLoadable > xIface(m_xMainForm, UNO_QUERY); 863*cdf0e10cSrcweir if (xIface.is()) 864*cdf0e10cSrcweir xIface->unload(); 865*cdf0e10cSrcweir } 866*cdf0e10cSrcweir // ------------------------------------------------------------------------- 867*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::reload() throw( RuntimeException ) 868*cdf0e10cSrcweir { 869*cdf0e10cSrcweir Reference< ::com::sun::star::form::XLoadable > xIface(m_xMainForm, UNO_QUERY); 870*cdf0e10cSrcweir if (xIface.is()) 871*cdf0e10cSrcweir xIface->reload(); 872*cdf0e10cSrcweir } 873*cdf0e10cSrcweir // ------------------------------------------------------------------------- 874*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::isLoaded() throw( RuntimeException ) 875*cdf0e10cSrcweir { 876*cdf0e10cSrcweir Reference< ::com::sun::star::form::XLoadable > xIface(m_xMainForm, UNO_QUERY); 877*cdf0e10cSrcweir if (xIface.is()) 878*cdf0e10cSrcweir return xIface->isLoaded(); 879*cdf0e10cSrcweir return sal_False; 880*cdf0e10cSrcweir } 881*cdf0e10cSrcweir // ------------------------------------------------------------------------- 882*cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, form, LoadListener, m_aLoadListeners, ::com::sun::star::form::XLoadable, m_xMainForm) 883*cdf0e10cSrcweir 884*cdf0e10cSrcweir // ::com::sun::star::sdbc::XParameters 885*cdf0e10cSrcweir // ------------------------------------------------------------------------- 886*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setNull(sal_Int32 parameterIndex, sal_Int32 sqlType) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 887*cdf0e10cSrcweir { 888*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 889*cdf0e10cSrcweir if (xIface.is()) 890*cdf0e10cSrcweir xIface->setNull(parameterIndex, sqlType); 891*cdf0e10cSrcweir } 892*cdf0e10cSrcweir // ------------------------------------------------------------------------- 893*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setObjectNull(sal_Int32 parameterIndex, sal_Int32 sqlType, const ::rtl::OUString& typeName) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 894*cdf0e10cSrcweir { 895*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 896*cdf0e10cSrcweir if (xIface.is()) 897*cdf0e10cSrcweir xIface->setObjectNull(parameterIndex, sqlType, typeName); 898*cdf0e10cSrcweir } 899*cdf0e10cSrcweir // ------------------------------------------------------------------------- 900*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setBoolean(sal_Int32 parameterIndex, sal_Bool x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 901*cdf0e10cSrcweir { 902*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 903*cdf0e10cSrcweir if (xIface.is()) 904*cdf0e10cSrcweir xIface->setBoolean(parameterIndex, x); 905*cdf0e10cSrcweir } 906*cdf0e10cSrcweir // ------------------------------------------------------------------------- 907*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setByte(sal_Int32 parameterIndex, sal_Int8 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 908*cdf0e10cSrcweir { 909*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 910*cdf0e10cSrcweir if (xIface.is()) 911*cdf0e10cSrcweir xIface->setByte(parameterIndex, x); 912*cdf0e10cSrcweir } 913*cdf0e10cSrcweir // ------------------------------------------------------------------------- 914*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setShort(sal_Int32 parameterIndex, sal_Int16 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 915*cdf0e10cSrcweir { 916*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 917*cdf0e10cSrcweir if (xIface.is()) 918*cdf0e10cSrcweir xIface->setShort(parameterIndex, x); 919*cdf0e10cSrcweir } 920*cdf0e10cSrcweir // ------------------------------------------------------------------------- 921*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setInt(sal_Int32 parameterIndex, sal_Int32 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 922*cdf0e10cSrcweir { 923*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 924*cdf0e10cSrcweir if (xIface.is()) 925*cdf0e10cSrcweir xIface->setInt(parameterIndex, x); 926*cdf0e10cSrcweir } 927*cdf0e10cSrcweir // ------------------------------------------------------------------------- 928*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setLong(sal_Int32 parameterIndex, sal_Int64 x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 929*cdf0e10cSrcweir { 930*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 931*cdf0e10cSrcweir if (xIface.is()) 932*cdf0e10cSrcweir xIface->setLong(parameterIndex, x); 933*cdf0e10cSrcweir } 934*cdf0e10cSrcweir // ------------------------------------------------------------------------- 935*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setFloat(sal_Int32 parameterIndex, float x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 936*cdf0e10cSrcweir { 937*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 938*cdf0e10cSrcweir if (xIface.is()) 939*cdf0e10cSrcweir xIface->setFloat(parameterIndex, x); 940*cdf0e10cSrcweir } 941*cdf0e10cSrcweir // ------------------------------------------------------------------------- 942*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setDouble(sal_Int32 parameterIndex, double x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 943*cdf0e10cSrcweir { 944*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 945*cdf0e10cSrcweir if (xIface.is()) 946*cdf0e10cSrcweir xIface->setDouble(parameterIndex, x); 947*cdf0e10cSrcweir } 948*cdf0e10cSrcweir // ------------------------------------------------------------------------- 949*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setString(sal_Int32 parameterIndex, const ::rtl::OUString& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 950*cdf0e10cSrcweir { 951*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 952*cdf0e10cSrcweir if (xIface.is()) 953*cdf0e10cSrcweir xIface->setString(parameterIndex, x); 954*cdf0e10cSrcweir } 955*cdf0e10cSrcweir // ------------------------------------------------------------------------- 956*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setBytes(sal_Int32 parameterIndex, const Sequence< sal_Int8 >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 957*cdf0e10cSrcweir { 958*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 959*cdf0e10cSrcweir if (xIface.is()) 960*cdf0e10cSrcweir xIface->setBytes(parameterIndex, x); 961*cdf0e10cSrcweir } 962*cdf0e10cSrcweir // ------------------------------------------------------------------------- 963*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setDate(sal_Int32 parameterIndex, const ::com::sun::star::util::Date& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 964*cdf0e10cSrcweir { 965*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 966*cdf0e10cSrcweir if (xIface.is()) 967*cdf0e10cSrcweir xIface->setDate(parameterIndex, x); 968*cdf0e10cSrcweir } 969*cdf0e10cSrcweir // ------------------------------------------------------------------------- 970*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setTime(sal_Int32 parameterIndex, const ::com::sun::star::util::Time& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 971*cdf0e10cSrcweir { 972*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 973*cdf0e10cSrcweir if (xIface.is()) 974*cdf0e10cSrcweir xIface->setTime(parameterIndex, x); 975*cdf0e10cSrcweir } 976*cdf0e10cSrcweir // ------------------------------------------------------------------------- 977*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setTimestamp(sal_Int32 parameterIndex, const ::com::sun::star::util::DateTime& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 978*cdf0e10cSrcweir { 979*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 980*cdf0e10cSrcweir if (xIface.is()) 981*cdf0e10cSrcweir xIface->setTimestamp(parameterIndex, x); 982*cdf0e10cSrcweir } 983*cdf0e10cSrcweir // ------------------------------------------------------------------------- 984*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setBinaryStream(sal_Int32 parameterIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 985*cdf0e10cSrcweir { 986*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 987*cdf0e10cSrcweir if (xIface.is()) 988*cdf0e10cSrcweir xIface->setBinaryStream(parameterIndex, x, length); 989*cdf0e10cSrcweir } 990*cdf0e10cSrcweir // ------------------------------------------------------------------------- 991*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setCharacterStream(sal_Int32 parameterIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 992*cdf0e10cSrcweir { 993*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 994*cdf0e10cSrcweir if (xIface.is()) 995*cdf0e10cSrcweir xIface->setCharacterStream(parameterIndex, x, length); 996*cdf0e10cSrcweir } 997*cdf0e10cSrcweir // ------------------------------------------------------------------------- 998*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setObject(sal_Int32 parameterIndex, const Any& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 999*cdf0e10cSrcweir { 1000*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 1001*cdf0e10cSrcweir if (xIface.is()) 1002*cdf0e10cSrcweir xIface->setObject(parameterIndex, x); 1003*cdf0e10cSrcweir } 1004*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1005*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setObjectWithInfo(sal_Int32 parameterIndex, const Any& x, sal_Int32 targetSqlType, sal_Int32 scale) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 1006*cdf0e10cSrcweir { 1007*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 1008*cdf0e10cSrcweir if (xIface.is()) 1009*cdf0e10cSrcweir xIface->setObjectWithInfo(parameterIndex, x, targetSqlType, scale); 1010*cdf0e10cSrcweir } 1011*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1012*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setRef(sal_Int32 parameterIndex, const Reference< ::com::sun::star::sdbc::XRef >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 1013*cdf0e10cSrcweir { 1014*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 1015*cdf0e10cSrcweir if (xIface.is()) 1016*cdf0e10cSrcweir xIface->setRef(parameterIndex, x); 1017*cdf0e10cSrcweir } 1018*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1019*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setBlob(sal_Int32 parameterIndex, const Reference< ::com::sun::star::sdbc::XBlob >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 1020*cdf0e10cSrcweir { 1021*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 1022*cdf0e10cSrcweir if (xIface.is()) 1023*cdf0e10cSrcweir xIface->setBlob(parameterIndex, x); 1024*cdf0e10cSrcweir } 1025*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1026*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setClob(sal_Int32 parameterIndex, const Reference< ::com::sun::star::sdbc::XClob >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 1027*cdf0e10cSrcweir { 1028*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 1029*cdf0e10cSrcweir if (xIface.is()) 1030*cdf0e10cSrcweir xIface->setClob(parameterIndex, x); 1031*cdf0e10cSrcweir } 1032*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1033*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setArray(sal_Int32 parameterIndex, const Reference< ::com::sun::star::sdbc::XArray >& x) throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 1034*cdf0e10cSrcweir { 1035*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 1036*cdf0e10cSrcweir if (xIface.is()) 1037*cdf0e10cSrcweir xIface->setArray(parameterIndex, x); 1038*cdf0e10cSrcweir } 1039*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1040*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::clearParameters() throw( ::com::sun::star::sdbc::SQLException, RuntimeException ) 1041*cdf0e10cSrcweir { 1042*cdf0e10cSrcweir Reference< ::com::sun::star::sdbc::XParameters > xIface(m_xMainForm, UNO_QUERY); 1043*cdf0e10cSrcweir if (xIface.is()) 1044*cdf0e10cSrcweir xIface->clearParameters(); 1045*cdf0e10cSrcweir } 1046*cdf0e10cSrcweir 1047*cdf0e10cSrcweir // ::com::sun::star::form::XDatabaseParameterBroadcaster 1048*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1049*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::addParameterListener(const Reference< ::com::sun::star::form::XDatabaseParameterListener >& aListener) throw( RuntimeException ) 1050*cdf0e10cSrcweir { 1051*cdf0e10cSrcweir m_aParameterListeners.addInterface(aListener); 1052*cdf0e10cSrcweir if (m_aParameterListeners.getLength() == 1) 1053*cdf0e10cSrcweir { 1054*cdf0e10cSrcweir Reference< ::com::sun::star::form::XDatabaseParameterBroadcaster > xBroadcaster(m_xMainForm, UNO_QUERY); 1055*cdf0e10cSrcweir if (xBroadcaster.is()) 1056*cdf0e10cSrcweir xBroadcaster->addParameterListener(&m_aParameterListeners); 1057*cdf0e10cSrcweir } 1058*cdf0e10cSrcweir } 1059*cdf0e10cSrcweir 1060*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1061*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removeParameterListener(const Reference< ::com::sun::star::form::XDatabaseParameterListener >& aListener) throw( RuntimeException ) 1062*cdf0e10cSrcweir { 1063*cdf0e10cSrcweir if (m_aParameterListeners.getLength() == 1) 1064*cdf0e10cSrcweir { 1065*cdf0e10cSrcweir Reference< ::com::sun::star::form::XDatabaseParameterBroadcaster > xBroadcaster(m_xMainForm, UNO_QUERY); 1066*cdf0e10cSrcweir if (xBroadcaster.is()) 1067*cdf0e10cSrcweir xBroadcaster->removeParameterListener(&m_aParameterListeners); 1068*cdf0e10cSrcweir } 1069*cdf0e10cSrcweir m_aParameterListeners.removeInterface(aListener); 1070*cdf0e10cSrcweir } 1071*cdf0e10cSrcweir 1072*cdf0e10cSrcweir // ::com::sun::star::container::XChild 1073*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1074*cdf0e10cSrcweir Reference< XInterface > SAL_CALL SbaXFormAdapter::getParent() throw( RuntimeException ) 1075*cdf0e10cSrcweir { 1076*cdf0e10cSrcweir return m_xParent; 1077*cdf0e10cSrcweir } 1078*cdf0e10cSrcweir 1079*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1080*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setParent(const Reference< XInterface >& Parent) throw( ::com::sun::star::lang::NoSupportException, RuntimeException ) 1081*cdf0e10cSrcweir { 1082*cdf0e10cSrcweir m_xParent = Parent; 1083*cdf0e10cSrcweir } 1084*cdf0e10cSrcweir 1085*cdf0e10cSrcweir // ::com::sun::star::form::XSubmit 1086*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1087*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::submit(const Reference< ::com::sun::star::awt::XControl >& aControl, const ::com::sun::star::awt::MouseEvent& aMouseEvt) throw( RuntimeException ) 1088*cdf0e10cSrcweir { 1089*cdf0e10cSrcweir Reference< ::com::sun::star::form::XSubmit > xSubmit(m_xMainForm, UNO_QUERY); 1090*cdf0e10cSrcweir if (xSubmit.is()) 1091*cdf0e10cSrcweir xSubmit->submit(aControl, aMouseEvt); 1092*cdf0e10cSrcweir } 1093*cdf0e10cSrcweir 1094*cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, form, SubmitListener, m_aSubmitListeners, ::com::sun::star::form::XSubmit, m_xMainForm) 1095*cdf0e10cSrcweir 1096*cdf0e10cSrcweir // ::com::sun::star::awt::XTabControllerModel 1097*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1098*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::getGroupControl() throw( RuntimeException ) 1099*cdf0e10cSrcweir { 1100*cdf0e10cSrcweir DBG_ERROR("SAL_CALL SbaXFormAdapter::getGroupControl : not supported !"); 1101*cdf0e10cSrcweir return sal_False; 1102*cdf0e10cSrcweir } 1103*cdf0e10cSrcweir 1104*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1105*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setGroupControl(sal_Bool /*GroupControl*/) throw( RuntimeException ) 1106*cdf0e10cSrcweir { 1107*cdf0e10cSrcweir DBG_ERROR("SAL_CALL SbaXFormAdapter::setGroupControl : not supported !"); 1108*cdf0e10cSrcweir } 1109*cdf0e10cSrcweir 1110*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1111*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setControlModels(const Sequence< Reference< ::com::sun::star::awt::XControlModel > >& /*Controls*/) throw( RuntimeException ) 1112*cdf0e10cSrcweir { 1113*cdf0e10cSrcweir DBG_ERROR("SAL_CALL SbaXFormAdapter::setControlModels : not supported !"); 1114*cdf0e10cSrcweir } 1115*cdf0e10cSrcweir 1116*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1117*cdf0e10cSrcweir Sequence< Reference< ::com::sun::star::awt::XControlModel > > SAL_CALL SbaXFormAdapter::getControlModels() throw( RuntimeException ) 1118*cdf0e10cSrcweir { 1119*cdf0e10cSrcweir DBG_ERROR("SAL_CALL SbaXFormAdapter::getControlModels : not supported !"); 1120*cdf0e10cSrcweir return Sequence< Reference< ::com::sun::star::awt::XControlModel > >(); 1121*cdf0e10cSrcweir } 1122*cdf0e10cSrcweir 1123*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1124*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setGroup(const Sequence< Reference< ::com::sun::star::awt::XControlModel > >& /*_rGroup*/, const ::rtl::OUString& /*GroupName*/) throw( RuntimeException ) 1125*cdf0e10cSrcweir { 1126*cdf0e10cSrcweir DBG_ERROR("SAL_CALL SbaXFormAdapter::setGroup : not supported !"); 1127*cdf0e10cSrcweir } 1128*cdf0e10cSrcweir 1129*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1130*cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::getGroupCount() throw( RuntimeException ) 1131*cdf0e10cSrcweir { 1132*cdf0e10cSrcweir DBG_ERROR("SAL_CALL SbaXFormAdapter::getGroupCount : not supported !"); 1133*cdf0e10cSrcweir return 0; 1134*cdf0e10cSrcweir } 1135*cdf0e10cSrcweir 1136*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1137*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::getGroup(sal_Int32 /*nGroup*/, Sequence< Reference< ::com::sun::star::awt::XControlModel > >& /*_rGroup*/, ::rtl::OUString& /*Name*/) throw( RuntimeException ) 1138*cdf0e10cSrcweir { 1139*cdf0e10cSrcweir DBG_ERROR("SAL_CALL SbaXFormAdapter::getGroup : not supported !"); 1140*cdf0e10cSrcweir } 1141*cdf0e10cSrcweir 1142*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1143*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::getGroupByName(const ::rtl::OUString& /*Name*/, Sequence< Reference< ::com::sun::star::awt::XControlModel > >& /*_rGroup*/) throw( RuntimeException ) 1144*cdf0e10cSrcweir { 1145*cdf0e10cSrcweir DBG_ERROR("SAL_CALL SbaXFormAdapter::getGroupByName : not supported !"); 1146*cdf0e10cSrcweir } 1147*cdf0e10cSrcweir 1148*cdf0e10cSrcweir // ::com::sun::star::lang::XComponent 1149*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1150*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::dispose() throw( RuntimeException ) 1151*cdf0e10cSrcweir { 1152*cdf0e10cSrcweir // log off all multiplexers 1153*cdf0e10cSrcweir if (m_xMainForm.is()) 1154*cdf0e10cSrcweir StopListening(); 1155*cdf0e10cSrcweir 1156*cdf0e10cSrcweir ::com::sun::star::lang::EventObject aEvt(*this); 1157*cdf0e10cSrcweir m_aLoadListeners.disposeAndClear(aEvt); 1158*cdf0e10cSrcweir m_aRowSetListeners.disposeAndClear(aEvt); 1159*cdf0e10cSrcweir m_aRowSetApproveListeners.disposeAndClear(aEvt); 1160*cdf0e10cSrcweir m_aErrorListeners.disposeAndClear(aEvt); 1161*cdf0e10cSrcweir m_aParameterListeners.disposeAndClear(aEvt); 1162*cdf0e10cSrcweir m_aSubmitListeners.disposeAndClear(aEvt); 1163*cdf0e10cSrcweir m_aResetListeners.disposeAndClear(aEvt); 1164*cdf0e10cSrcweir 1165*cdf0e10cSrcweir m_aVetoablePropertyChangeListeners.disposeAndClear(); 1166*cdf0e10cSrcweir m_aPropertyChangeListeners.disposeAndClear(); 1167*cdf0e10cSrcweir m_aPropertiesChangeListeners.disposeAndClear(aEvt); 1168*cdf0e10cSrcweir 1169*cdf0e10cSrcweir m_aDisposeListeners.disposeAndClear(aEvt); 1170*cdf0e10cSrcweir m_aContainerListeners.disposeAndClear(aEvt); 1171*cdf0e10cSrcweir 1172*cdf0e10cSrcweir // dispose all childs 1173*cdf0e10cSrcweir for ( ::std::vector< Reference< ::com::sun::star::form::XFormComponent > >::iterator aIter = m_aChildren.begin(); 1174*cdf0e10cSrcweir aIter != m_aChildren.end(); 1175*cdf0e10cSrcweir ++aIter 1176*cdf0e10cSrcweir ) 1177*cdf0e10cSrcweir { 1178*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertySet > xSet(*aIter, UNO_QUERY); 1179*cdf0e10cSrcweir if (xSet.is()) 1180*cdf0e10cSrcweir xSet->removePropertyChangeListener(PROPERTY_NAME, (::com::sun::star::beans::XPropertyChangeListener*)this); 1181*cdf0e10cSrcweir 1182*cdf0e10cSrcweir Reference< ::com::sun::star::container::XChild > xChild(*aIter, UNO_QUERY); 1183*cdf0e10cSrcweir if (xChild.is()) 1184*cdf0e10cSrcweir xChild->setParent(Reference< XInterface > ()); 1185*cdf0e10cSrcweir 1186*cdf0e10cSrcweir Reference< ::com::sun::star::lang::XComponent > xComp(*aIter, UNO_QUERY); 1187*cdf0e10cSrcweir if (xComp.is()) 1188*cdf0e10cSrcweir xComp->dispose(); 1189*cdf0e10cSrcweir } 1190*cdf0e10cSrcweir m_aChildren.clear(); 1191*cdf0e10cSrcweir } 1192*cdf0e10cSrcweir 1193*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1194*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::addEventListener(const Reference< ::com::sun::star::lang::XEventListener >& xListener) throw( RuntimeException ) 1195*cdf0e10cSrcweir { 1196*cdf0e10cSrcweir m_aDisposeListeners.addInterface(xListener); 1197*cdf0e10cSrcweir } 1198*cdf0e10cSrcweir 1199*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1200*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removeEventListener(const Reference< ::com::sun::star::lang::XEventListener >& aListener) throw( RuntimeException ) 1201*cdf0e10cSrcweir { 1202*cdf0e10cSrcweir m_aDisposeListeners.removeInterface(aListener); 1203*cdf0e10cSrcweir } 1204*cdf0e10cSrcweir 1205*cdf0e10cSrcweir // ::com::sun::star::beans::XFastPropertySet 1206*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1207*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setFastPropertyValue(sal_Int32 nHandle, const Any& aValue) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1208*cdf0e10cSrcweir { 1209*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XFastPropertySet > xSet(m_xMainForm, UNO_QUERY); 1210*cdf0e10cSrcweir DBG_ASSERT(xSet.is(), "SAL_CALL SbaXFormAdapter::setFastPropertyValue : have no master form !"); 1211*cdf0e10cSrcweir 1212*cdf0e10cSrcweir if (m_nNamePropHandle == nHandle) 1213*cdf0e10cSrcweir { 1214*cdf0e10cSrcweir if (aValue.getValueType().getTypeClass() != TypeClass_STRING) 1215*cdf0e10cSrcweir { 1216*cdf0e10cSrcweir throw ::com::sun::star::lang::IllegalArgumentException(); 1217*cdf0e10cSrcweir } 1218*cdf0e10cSrcweir 1219*cdf0e10cSrcweir // for notifying property listeners 1220*cdf0e10cSrcweir ::com::sun::star::beans::PropertyChangeEvent aEvt; 1221*cdf0e10cSrcweir aEvt.Source = *this; 1222*cdf0e10cSrcweir aEvt.PropertyName = PROPERTY_NAME; 1223*cdf0e10cSrcweir aEvt.PropertyHandle = m_nNamePropHandle; 1224*cdf0e10cSrcweir aEvt.OldValue <<= m_sName; 1225*cdf0e10cSrcweir aEvt.NewValue = aValue; 1226*cdf0e10cSrcweir 1227*cdf0e10cSrcweir aValue >>= m_sName; 1228*cdf0e10cSrcweir 1229*cdf0e10cSrcweir ::cppu::OInterfaceIteratorHelper aIt(*m_aPropertyChangeListeners.getContainer(PROPERTY_NAME)); 1230*cdf0e10cSrcweir while (aIt.hasMoreElements()) 1231*cdf0e10cSrcweir ((::com::sun::star::beans::XPropertyChangeListener*)aIt.next())->propertyChange(aEvt); 1232*cdf0e10cSrcweir 1233*cdf0e10cSrcweir return; 1234*cdf0e10cSrcweir } 1235*cdf0e10cSrcweir 1236*cdf0e10cSrcweir xSet->setFastPropertyValue(nHandle, aValue); 1237*cdf0e10cSrcweir } 1238*cdf0e10cSrcweir 1239*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1240*cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getFastPropertyValue(sal_Int32 nHandle) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1241*cdf0e10cSrcweir { 1242*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XFastPropertySet > xSet(m_xMainForm, UNO_QUERY); 1243*cdf0e10cSrcweir DBG_ASSERT(xSet.is(), "SAL_CALL SbaXFormAdapter::getFastPropertyValue : have no master form !"); 1244*cdf0e10cSrcweir 1245*cdf0e10cSrcweir if (m_nNamePropHandle == nHandle) 1246*cdf0e10cSrcweir return makeAny(m_sName); 1247*cdf0e10cSrcweir 1248*cdf0e10cSrcweir return xSet->getFastPropertyValue(nHandle); 1249*cdf0e10cSrcweir } 1250*cdf0e10cSrcweir 1251*cdf0e10cSrcweir // ::com::sun::star::container::XNamed 1252*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1253*cdf0e10cSrcweir ::rtl::OUString SAL_CALL SbaXFormAdapter::getName() throw( RuntimeException ) 1254*cdf0e10cSrcweir { 1255*cdf0e10cSrcweir return ::comphelper::getString(getPropertyValue(PROPERTY_NAME)); 1256*cdf0e10cSrcweir } 1257*cdf0e10cSrcweir 1258*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1259*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setName(const ::rtl::OUString& aName) throw( RuntimeException ) 1260*cdf0e10cSrcweir { 1261*cdf0e10cSrcweir setPropertyValue(PROPERTY_NAME, makeAny(aName)); 1262*cdf0e10cSrcweir } 1263*cdf0e10cSrcweir 1264*cdf0e10cSrcweir // ::com::sun::star::io::XPersistObject 1265*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1266*cdf0e10cSrcweir ::rtl::OUString SAL_CALL SbaXFormAdapter::getServiceName() throw( RuntimeException ) 1267*cdf0e10cSrcweir { 1268*cdf0e10cSrcweir Reference< ::com::sun::star::io::XPersistObject > xPersist(m_xMainForm, UNO_QUERY); 1269*cdf0e10cSrcweir if (xPersist.is()) 1270*cdf0e10cSrcweir return xPersist->getServiceName(); 1271*cdf0e10cSrcweir return ::rtl::OUString(); 1272*cdf0e10cSrcweir } 1273*cdf0e10cSrcweir 1274*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1275*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::write(const Reference< ::com::sun::star::io::XObjectOutputStream >& _rxOutStream) throw( ::com::sun::star::io::IOException, RuntimeException ) 1276*cdf0e10cSrcweir { 1277*cdf0e10cSrcweir Reference< ::com::sun::star::io::XPersistObject > xPersist(m_xMainForm, UNO_QUERY); 1278*cdf0e10cSrcweir if (xPersist.is()) 1279*cdf0e10cSrcweir xPersist->write(_rxOutStream); 1280*cdf0e10cSrcweir } 1281*cdf0e10cSrcweir 1282*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1283*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::read(const Reference< ::com::sun::star::io::XObjectInputStream >& _rxInStream) throw( ::com::sun::star::io::IOException, RuntimeException ) 1284*cdf0e10cSrcweir { 1285*cdf0e10cSrcweir Reference< ::com::sun::star::io::XPersistObject > xPersist(m_xMainForm, UNO_QUERY); 1286*cdf0e10cSrcweir if (xPersist.is()) 1287*cdf0e10cSrcweir xPersist->read(_rxInStream); 1288*cdf0e10cSrcweir } 1289*cdf0e10cSrcweir 1290*cdf0e10cSrcweir // ::com::sun::star::beans::XMultiPropertySet 1291*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1292*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL SbaXFormAdapter::getPropertySetInfo() throw( RuntimeException ) 1293*cdf0e10cSrcweir { 1294*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XMultiPropertySet > xSet(m_xMainForm, UNO_QUERY); 1295*cdf0e10cSrcweir if (!xSet.is()) 1296*cdf0e10cSrcweir return Reference< ::com::sun::star::beans::XPropertySetInfo > (); 1297*cdf0e10cSrcweir 1298*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertySetInfo > xReturn = xSet->getPropertySetInfo(); 1299*cdf0e10cSrcweir if (-1 == m_nNamePropHandle) 1300*cdf0e10cSrcweir { 1301*cdf0e10cSrcweir // we need to determine the handle for the NAME property 1302*cdf0e10cSrcweir Sequence< ::com::sun::star::beans::Property> aProps = xReturn->getProperties(); 1303*cdf0e10cSrcweir const ::com::sun::star::beans::Property* pProps = aProps.getConstArray(); 1304*cdf0e10cSrcweir 1305*cdf0e10cSrcweir for (sal_Int32 i=0; i<aProps.getLength(); ++i, ++pProps) 1306*cdf0e10cSrcweir { 1307*cdf0e10cSrcweir if (pProps->Name.equals(PROPERTY_NAME)) 1308*cdf0e10cSrcweir { 1309*cdf0e10cSrcweir ((SbaXFormAdapter*)this)->m_nNamePropHandle = pProps->Handle; 1310*cdf0e10cSrcweir break; 1311*cdf0e10cSrcweir } 1312*cdf0e10cSrcweir } 1313*cdf0e10cSrcweir } 1314*cdf0e10cSrcweir return xReturn; 1315*cdf0e10cSrcweir } 1316*cdf0e10cSrcweir 1317*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1318*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setPropertyValues(const Sequence< ::rtl::OUString >& PropertyNames, const Sequence< Any >& Values) throw( ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1319*cdf0e10cSrcweir { 1320*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XMultiPropertySet > xSet(m_xMainForm, UNO_QUERY); 1321*cdf0e10cSrcweir if (xSet.is()) 1322*cdf0e10cSrcweir xSet->setPropertyValues(PropertyNames, Values); 1323*cdf0e10cSrcweir } 1324*cdf0e10cSrcweir 1325*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1326*cdf0e10cSrcweir Sequence< Any > SAL_CALL SbaXFormAdapter::getPropertyValues(const Sequence< ::rtl::OUString >& aPropertyNames) throw( RuntimeException ) 1327*cdf0e10cSrcweir { 1328*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XMultiPropertySet > xSet(m_xMainForm, UNO_QUERY); 1329*cdf0e10cSrcweir if (!xSet.is()) 1330*cdf0e10cSrcweir return Sequence< Any>(aPropertyNames.getLength()); 1331*cdf0e10cSrcweir 1332*cdf0e10cSrcweir Sequence< Any> aReturn = xSet->getPropertyValues(aPropertyNames); 1333*cdf0e10cSrcweir 1334*cdf0e10cSrcweir // search for (and fake) the NAME property 1335*cdf0e10cSrcweir const ::rtl::OUString* pNames = aPropertyNames.getConstArray(); 1336*cdf0e10cSrcweir Any* pValues = aReturn.getArray(); 1337*cdf0e10cSrcweir DBG_ASSERT(aReturn.getLength() == aPropertyNames.getLength(), "SAL_CALL SbaXFormAdapter::getPropertyValues : the main form returned an invalid-length sequence !"); 1338*cdf0e10cSrcweir for (sal_Int32 i=0; i<aPropertyNames.getLength(); ++i, ++pNames, ++pValues) 1339*cdf0e10cSrcweir if (pNames->equals(PROPERTY_NAME)) 1340*cdf0e10cSrcweir { 1341*cdf0e10cSrcweir (*pValues) <<= m_sName; 1342*cdf0e10cSrcweir break; 1343*cdf0e10cSrcweir } 1344*cdf0e10cSrcweir 1345*cdf0e10cSrcweir return aReturn; 1346*cdf0e10cSrcweir } 1347*cdf0e10cSrcweir 1348*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1349*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::addPropertiesChangeListener(const Sequence< ::rtl::OUString>& /*aPropertyNames*/, const Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener) throw( RuntimeException ) 1350*cdf0e10cSrcweir { 1351*cdf0e10cSrcweir // we completely ignore the property names, _all_ changes of _all_ properties will be forwarded to _all_ listeners 1352*cdf0e10cSrcweir m_aPropertiesChangeListeners.addInterface(xListener); 1353*cdf0e10cSrcweir if (m_aPropertiesChangeListeners.getLength() == 1) 1354*cdf0e10cSrcweir { 1355*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XMultiPropertySet > xBroadcaster(m_xMainForm, UNO_QUERY); 1356*cdf0e10cSrcweir ::rtl::OUString sEmpty; 1357*cdf0e10cSrcweir if (xBroadcaster.is()) 1358*cdf0e10cSrcweir xBroadcaster->addPropertiesChangeListener(Sequence< ::rtl::OUString>(&sEmpty, 1), &m_aPropertiesChangeListeners); 1359*cdf0e10cSrcweir } 1360*cdf0e10cSrcweir } 1361*cdf0e10cSrcweir 1362*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1363*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removePropertiesChangeListener(const Reference< ::com::sun::star::beans::XPropertiesChangeListener >& Listener) throw( RuntimeException ) 1364*cdf0e10cSrcweir { 1365*cdf0e10cSrcweir if (m_aPropertiesChangeListeners.getLength() == 1) 1366*cdf0e10cSrcweir { 1367*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XMultiPropertySet > xBroadcaster(m_xMainForm, UNO_QUERY); 1368*cdf0e10cSrcweir if (xBroadcaster.is()) 1369*cdf0e10cSrcweir xBroadcaster->removePropertiesChangeListener(&m_aPropertiesChangeListeners); 1370*cdf0e10cSrcweir } 1371*cdf0e10cSrcweir m_aPropertiesChangeListeners.removeInterface(Listener); 1372*cdf0e10cSrcweir } 1373*cdf0e10cSrcweir 1374*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1375*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::firePropertiesChangeEvent(const Sequence< ::rtl::OUString >& aPropertyNames, const Reference< ::com::sun::star::beans::XPropertiesChangeListener >& xListener) throw( RuntimeException ) 1376*cdf0e10cSrcweir { 1377*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XMultiPropertySet > xSet(m_xMainForm, UNO_QUERY); 1378*cdf0e10cSrcweir if (xSet.is()) 1379*cdf0e10cSrcweir xSet->firePropertiesChangeEvent(aPropertyNames, xListener); 1380*cdf0e10cSrcweir } 1381*cdf0e10cSrcweir 1382*cdf0e10cSrcweir 1383*cdf0e10cSrcweir // ::com::sun::star::beans::XPropertySet 1384*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1385*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setPropertyValue(const ::rtl::OUString& aPropertyName, const Any& aValue) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1386*cdf0e10cSrcweir { 1387*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertySet > xSet(m_xMainForm, UNO_QUERY); 1388*cdf0e10cSrcweir if (!xSet.is()) 1389*cdf0e10cSrcweir return; 1390*cdf0e10cSrcweir 1391*cdf0e10cSrcweir // special handling for the "name" property 1392*cdf0e10cSrcweir if (aPropertyName.equals(PROPERTY_NAME)) 1393*cdf0e10cSrcweir setFastPropertyValue(m_nNamePropHandle, aValue); 1394*cdf0e10cSrcweir 1395*cdf0e10cSrcweir xSet->setPropertyValue(aPropertyName, aValue); 1396*cdf0e10cSrcweir } 1397*cdf0e10cSrcweir 1398*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1399*cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getPropertyValue(const ::rtl::OUString& PropertyName) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1400*cdf0e10cSrcweir { 1401*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertySet > xSet(m_xMainForm, UNO_QUERY); 1402*cdf0e10cSrcweir if (!xSet.is()) 1403*cdf0e10cSrcweir return Any(); 1404*cdf0e10cSrcweir 1405*cdf0e10cSrcweir // special handling for the "name" property 1406*cdf0e10cSrcweir if (PropertyName.equals(PROPERTY_NAME)) 1407*cdf0e10cSrcweir return getFastPropertyValue(m_nNamePropHandle); 1408*cdf0e10cSrcweir 1409*cdf0e10cSrcweir return xSet->getPropertyValue(PropertyName); 1410*cdf0e10cSrcweir } 1411*cdf0e10cSrcweir 1412*cdf0e10cSrcweir IMPLEMENT_PROPERTY_LISTENER_ADMINISTRATION(SbaXFormAdapter, PropertyChangeListener, m_aPropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm); 1413*cdf0e10cSrcweir IMPLEMENT_PROPERTY_LISTENER_ADMINISTRATION(SbaXFormAdapter, VetoableChangeListener, m_aVetoablePropertyChangeListeners, ::com::sun::star::beans::XPropertySet, m_xMainForm); 1414*cdf0e10cSrcweir 1415*cdf0e10cSrcweir // ::com::sun::star::util::XCancellable 1416*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1417*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::cancel() throw( RuntimeException ) 1418*cdf0e10cSrcweir { 1419*cdf0e10cSrcweir Reference< ::com::sun::star::util::XCancellable > xCancel(m_xMainForm, UNO_QUERY); 1420*cdf0e10cSrcweir if (xCancel.is()) 1421*cdf0e10cSrcweir return; 1422*cdf0e10cSrcweir xCancel->cancel(); 1423*cdf0e10cSrcweir } 1424*cdf0e10cSrcweir 1425*cdf0e10cSrcweir // ::com::sun::star::beans::XPropertyState 1426*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1427*cdf0e10cSrcweir ::com::sun::star::beans::PropertyState SAL_CALL SbaXFormAdapter::getPropertyState(const ::rtl::OUString& PropertyName) throw( ::com::sun::star::beans::UnknownPropertyException, RuntimeException ) 1428*cdf0e10cSrcweir { 1429*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertyState > xState(m_xMainForm, UNO_QUERY); 1430*cdf0e10cSrcweir if (xState.is()) 1431*cdf0e10cSrcweir return xState->getPropertyState(PropertyName); 1432*cdf0e10cSrcweir return ::com::sun::star::beans::PropertyState_DEFAULT_VALUE; 1433*cdf0e10cSrcweir } 1434*cdf0e10cSrcweir 1435*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1436*cdf0e10cSrcweir Sequence< ::com::sun::star::beans::PropertyState> SAL_CALL SbaXFormAdapter::getPropertyStates(const Sequence< ::rtl::OUString >& aPropertyName) throw( ::com::sun::star::beans::UnknownPropertyException, RuntimeException ) 1437*cdf0e10cSrcweir { 1438*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertyState > xState(m_xMainForm, UNO_QUERY); 1439*cdf0e10cSrcweir if (xState.is()) 1440*cdf0e10cSrcweir return xState->getPropertyStates(aPropertyName); 1441*cdf0e10cSrcweir 1442*cdf0e10cSrcweir // set them all to DEFAULT 1443*cdf0e10cSrcweir Sequence< ::com::sun::star::beans::PropertyState> aReturn(aPropertyName.getLength()); 1444*cdf0e10cSrcweir ::com::sun::star::beans::PropertyState* pStates = aReturn.getArray(); 1445*cdf0e10cSrcweir for (sal_uInt16 i=0; i<aPropertyName.getLength(); ++i, ++pStates) 1446*cdf0e10cSrcweir *pStates = ::com::sun::star::beans::PropertyState_DEFAULT_VALUE; 1447*cdf0e10cSrcweir return aReturn; 1448*cdf0e10cSrcweir } 1449*cdf0e10cSrcweir 1450*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1451*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::setPropertyToDefault(const ::rtl::OUString& PropertyName) throw( ::com::sun::star::beans::UnknownPropertyException, RuntimeException ) 1452*cdf0e10cSrcweir { 1453*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertyState > xState(m_xMainForm, UNO_QUERY); 1454*cdf0e10cSrcweir if (xState.is()) 1455*cdf0e10cSrcweir xState->setPropertyToDefault(PropertyName); 1456*cdf0e10cSrcweir } 1457*cdf0e10cSrcweir 1458*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1459*cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getPropertyDefault(const ::rtl::OUString& aPropertyName) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1460*cdf0e10cSrcweir { 1461*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertyState > xState(m_xMainForm, UNO_QUERY); 1462*cdf0e10cSrcweir if (xState.is()) 1463*cdf0e10cSrcweir return xState->getPropertyDefault(aPropertyName); 1464*cdf0e10cSrcweir return Any(); 1465*cdf0e10cSrcweir } 1466*cdf0e10cSrcweir 1467*cdf0e10cSrcweir // ::com::sun::star::form::XReset 1468*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1469*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::reset() throw( RuntimeException ) 1470*cdf0e10cSrcweir { 1471*cdf0e10cSrcweir Reference< ::com::sun::star::form::XReset > xReset(m_xMainForm, UNO_QUERY); 1472*cdf0e10cSrcweir if (xReset.is()) 1473*cdf0e10cSrcweir xReset->reset(); 1474*cdf0e10cSrcweir } 1475*cdf0e10cSrcweir 1476*cdf0e10cSrcweir IMPLEMENT_LISTENER_ADMINISTRATION(SbaXFormAdapter, form, ResetListener, m_aResetListeners, ::com::sun::star::form::XReset, m_xMainForm) 1477*cdf0e10cSrcweir 1478*cdf0e10cSrcweir // ::com::sun::star::container::XNameContainer 1479*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1480*cdf0e10cSrcweir void SbaXFormAdapter::implInsert(const Any& aElement, sal_Int32 nIndex, const ::rtl::OUString* pNewElName) throw( ::com::sun::star::lang::IllegalArgumentException ) 1481*cdf0e10cSrcweir { 1482*cdf0e10cSrcweir // extract the form component 1483*cdf0e10cSrcweir if (aElement.getValueType().getTypeClass() != TypeClass_INTERFACE) 1484*cdf0e10cSrcweir { 1485*cdf0e10cSrcweir throw ::com::sun::star::lang::IllegalArgumentException(); 1486*cdf0e10cSrcweir } 1487*cdf0e10cSrcweir 1488*cdf0e10cSrcweir Reference< ::com::sun::star::form::XFormComponent > xElement(*(Reference< XInterface > *)aElement.getValue(), UNO_QUERY); 1489*cdf0e10cSrcweir if (!xElement.is()) 1490*cdf0e10cSrcweir { 1491*cdf0e10cSrcweir throw ::com::sun::star::lang::IllegalArgumentException(); 1492*cdf0e10cSrcweir } 1493*cdf0e10cSrcweir 1494*cdf0e10cSrcweir // for the name we need the propset 1495*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertySet > xElementSet(xElement, UNO_QUERY); 1496*cdf0e10cSrcweir if (!xElementSet.is()) 1497*cdf0e10cSrcweir { 1498*cdf0e10cSrcweir throw ::com::sun::star::lang::IllegalArgumentException(); 1499*cdf0e10cSrcweir } 1500*cdf0e10cSrcweir ::rtl::OUString sName; 1501*cdf0e10cSrcweir try 1502*cdf0e10cSrcweir { 1503*cdf0e10cSrcweir if (pNewElName) 1504*cdf0e10cSrcweir xElementSet->setPropertyValue(PROPERTY_NAME, makeAny(*pNewElName)); 1505*cdf0e10cSrcweir 1506*cdf0e10cSrcweir xElementSet->getPropertyValue(PROPERTY_NAME) >>= sName; 1507*cdf0e10cSrcweir } 1508*cdf0e10cSrcweir catch(Exception&) 1509*cdf0e10cSrcweir { 1510*cdf0e10cSrcweir // the set didn't support the name prop 1511*cdf0e10cSrcweir throw ::com::sun::star::lang::IllegalArgumentException(); 1512*cdf0e10cSrcweir } 1513*cdf0e10cSrcweir 1514*cdf0e10cSrcweir // check the index 1515*cdf0e10cSrcweir OSL_ASSERT(nIndex >= 0); 1516*cdf0e10cSrcweir if (sal::static_int_cast< sal_uInt32 >(nIndex) > m_aChildren.size()) 1517*cdf0e10cSrcweir nIndex = m_aChildren.size(); 1518*cdf0e10cSrcweir 1519*cdf0e10cSrcweir DBG_ASSERT(m_aChildren.size() == m_aChildNames.size(), "SAL_CALL SbaXFormAdapter::implInsert : inconsistent container state !"); 1520*cdf0e10cSrcweir m_aChildren.insert(m_aChildren.begin() + nIndex, xElement); 1521*cdf0e10cSrcweir m_aChildNames.insert(m_aChildNames.begin() + nIndex, sName); 1522*cdf0e10cSrcweir 1523*cdf0e10cSrcweir // listen for a changes of the name 1524*cdf0e10cSrcweir xElementSet->addPropertyChangeListener(PROPERTY_NAME, (::com::sun::star::beans::XPropertyChangeListener*)this); 1525*cdf0e10cSrcweir 1526*cdf0e10cSrcweir // we are now the parent of the new element 1527*cdf0e10cSrcweir xElement->setParent((::com::sun::star::container::XContainer*)this); 1528*cdf0e10cSrcweir 1529*cdf0e10cSrcweir // notify the container listeners 1530*cdf0e10cSrcweir ::com::sun::star::container::ContainerEvent aEvt; 1531*cdf0e10cSrcweir aEvt.Source = *this; 1532*cdf0e10cSrcweir aEvt.Accessor <<= nIndex; 1533*cdf0e10cSrcweir aEvt.Element <<= xElement; 1534*cdf0e10cSrcweir ::cppu::OInterfaceIteratorHelper aIt(m_aContainerListeners); 1535*cdf0e10cSrcweir while (aIt.hasMoreElements()) 1536*cdf0e10cSrcweir ((::com::sun::star::container::XContainerListener*)aIt.next())->elementInserted(aEvt); 1537*cdf0e10cSrcweir } 1538*cdf0e10cSrcweir 1539*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1540*cdf0e10cSrcweir sal_Int32 SbaXFormAdapter::implGetPos(const ::rtl::OUString& rName) 1541*cdf0e10cSrcweir { 1542*cdf0e10cSrcweir ::std::vector< ::rtl::OUString>::iterator aIter = ::std::find_if( m_aChildNames.begin(), 1543*cdf0e10cSrcweir m_aChildNames.end(), 1544*cdf0e10cSrcweir ::std::bind2nd(::std::equal_to< rtl::OUString>(),rName)); 1545*cdf0e10cSrcweir 1546*cdf0e10cSrcweir if(aIter != m_aChildNames.end()) 1547*cdf0e10cSrcweir return aIter - m_aChildNames.begin(); 1548*cdf0e10cSrcweir 1549*cdf0e10cSrcweir return -1; 1550*cdf0e10cSrcweir } 1551*cdf0e10cSrcweir 1552*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1553*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::insertByName(const ::rtl::OUString& aName, const Any& aElement) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::ElementExistException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1554*cdf0e10cSrcweir { 1555*cdf0e10cSrcweir implInsert(aElement, m_aChildren.size(), &aName); 1556*cdf0e10cSrcweir } 1557*cdf0e10cSrcweir 1558*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1559*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removeByName(const ::rtl::OUString& Name) throw( ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1560*cdf0e10cSrcweir { 1561*cdf0e10cSrcweir sal_Int32 nPos = implGetPos(Name); 1562*cdf0e10cSrcweir if (-1 == nPos) 1563*cdf0e10cSrcweir { 1564*cdf0e10cSrcweir throw ::com::sun::star::container::NoSuchElementException(); 1565*cdf0e10cSrcweir } 1566*cdf0e10cSrcweir removeByIndex(nPos); 1567*cdf0e10cSrcweir } 1568*cdf0e10cSrcweir 1569*cdf0e10cSrcweir // ::com::sun::star::container::XNameReplace 1570*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1571*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::replaceByName(const ::rtl::OUString& aName, const Any& aElement) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1572*cdf0e10cSrcweir { 1573*cdf0e10cSrcweir sal_Int32 nPos = implGetPos(aName); 1574*cdf0e10cSrcweir if (-1 == nPos) 1575*cdf0e10cSrcweir { 1576*cdf0e10cSrcweir throw ::com::sun::star::container::NoSuchElementException(); 1577*cdf0e10cSrcweir } 1578*cdf0e10cSrcweir replaceByIndex(nPos, aElement); 1579*cdf0e10cSrcweir } 1580*cdf0e10cSrcweir 1581*cdf0e10cSrcweir // ::com::sun::star::container::XNameAccess 1582*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1583*cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getByName(const ::rtl::OUString& aName) throw( ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1584*cdf0e10cSrcweir { 1585*cdf0e10cSrcweir sal_Int32 nPos = implGetPos(aName); 1586*cdf0e10cSrcweir if (-1 == nPos) 1587*cdf0e10cSrcweir { 1588*cdf0e10cSrcweir throw ::com::sun::star::container::NoSuchElementException(); 1589*cdf0e10cSrcweir } 1590*cdf0e10cSrcweir return makeAny(m_aChildren[nPos]); 1591*cdf0e10cSrcweir } 1592*cdf0e10cSrcweir 1593*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1594*cdf0e10cSrcweir Sequence< ::rtl::OUString > SAL_CALL SbaXFormAdapter::getElementNames() throw( RuntimeException ) 1595*cdf0e10cSrcweir { 1596*cdf0e10cSrcweir ::rtl::OUString *pChildNames = m_aChildNames.empty() ? 0 : &m_aChildNames[0]; 1597*cdf0e10cSrcweir return Sequence< ::rtl::OUString >(pChildNames, m_aChildNames.size()); 1598*cdf0e10cSrcweir } 1599*cdf0e10cSrcweir 1600*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1601*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::hasByName(const ::rtl::OUString& aName) throw( RuntimeException ) 1602*cdf0e10cSrcweir { 1603*cdf0e10cSrcweir return (-1 != implGetPos(aName)); 1604*cdf0e10cSrcweir } 1605*cdf0e10cSrcweir 1606*cdf0e10cSrcweir // ::com::sun::star::container::XElementAccess 1607*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1608*cdf0e10cSrcweir Type SAL_CALL SbaXFormAdapter::getElementType() throw(RuntimeException) 1609*cdf0e10cSrcweir { 1610*cdf0e10cSrcweir return ::getCppuType( 1611*cdf0e10cSrcweir static_cast< Reference< ::com::sun::star::form::XFormComponent >* >(NULL)); 1612*cdf0e10cSrcweir } 1613*cdf0e10cSrcweir 1614*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1615*cdf0e10cSrcweir sal_Bool SAL_CALL SbaXFormAdapter::hasElements() throw(RuntimeException) 1616*cdf0e10cSrcweir { 1617*cdf0e10cSrcweir return m_aChildren.size() > 0; 1618*cdf0e10cSrcweir } 1619*cdf0e10cSrcweir 1620*cdf0e10cSrcweir 1621*cdf0e10cSrcweir // ::com::sun::star::container::XIndexContainer 1622*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1623*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::insertByIndex(sal_Int32 _rIndex, const Any& Element) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1624*cdf0e10cSrcweir { 1625*cdf0e10cSrcweir if ( ( _rIndex < 0 ) || ( (size_t)_rIndex >= m_aChildren.size() ) ) 1626*cdf0e10cSrcweir throw ::com::sun::star::lang::IndexOutOfBoundsException(); 1627*cdf0e10cSrcweir implInsert(Element, _rIndex); 1628*cdf0e10cSrcweir } 1629*cdf0e10cSrcweir 1630*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1631*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removeByIndex(sal_Int32 _rIndex) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1632*cdf0e10cSrcweir { 1633*cdf0e10cSrcweir if ( ( _rIndex < 0 ) || ( (size_t)_rIndex >= m_aChildren.size() ) ) 1634*cdf0e10cSrcweir throw ::com::sun::star::lang::IndexOutOfBoundsException(); 1635*cdf0e10cSrcweir 1636*cdf0e10cSrcweir Reference< ::com::sun::star::form::XFormComponent > xAffected = *(m_aChildren.begin() + _rIndex); 1637*cdf0e10cSrcweir 1638*cdf0e10cSrcweir DBG_ASSERT(m_aChildren.size() == m_aChildNames.size(), "SAL_CALL SbaXFormAdapter::removeByIndex : inconsistent container state !"); 1639*cdf0e10cSrcweir m_aChildren.erase(m_aChildren.begin() + _rIndex); 1640*cdf0e10cSrcweir m_aChildNames.erase(m_aChildNames.begin() + _rIndex); 1641*cdf0e10cSrcweir 1642*cdf0e10cSrcweir // no need to listen anymore 1643*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertySet > xAffectedSet(xAffected, UNO_QUERY); 1644*cdf0e10cSrcweir xAffectedSet->removePropertyChangeListener(PROPERTY_NAME, (::com::sun::star::beans::XPropertyChangeListener*)this); 1645*cdf0e10cSrcweir 1646*cdf0e10cSrcweir // we are no longer the parent 1647*cdf0e10cSrcweir xAffected->setParent(Reference< XInterface > ()); 1648*cdf0e10cSrcweir 1649*cdf0e10cSrcweir // notify container listeners 1650*cdf0e10cSrcweir ::com::sun::star::container::ContainerEvent aEvt; 1651*cdf0e10cSrcweir aEvt.Source = *this; 1652*cdf0e10cSrcweir aEvt.Element <<= xAffected; 1653*cdf0e10cSrcweir ::cppu::OInterfaceIteratorHelper aIt(m_aContainerListeners); 1654*cdf0e10cSrcweir while (aIt.hasMoreElements()) 1655*cdf0e10cSrcweir ((::com::sun::star::container::XContainerListener*)aIt.next())->elementRemoved(aEvt); 1656*cdf0e10cSrcweir 1657*cdf0e10cSrcweir } 1658*cdf0e10cSrcweir 1659*cdf0e10cSrcweir // ::com::sun::star::container::XIndexReplace 1660*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1661*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::replaceByIndex(sal_Int32 _rIndex, const Any& Element) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1662*cdf0e10cSrcweir { 1663*cdf0e10cSrcweir if ( ( _rIndex < 0 ) || ( (size_t)_rIndex >= m_aChildren.size() ) ) 1664*cdf0e10cSrcweir throw ::com::sun::star::lang::IndexOutOfBoundsException(); 1665*cdf0e10cSrcweir 1666*cdf0e10cSrcweir // extract the form component 1667*cdf0e10cSrcweir if (Element.getValueType().getTypeClass() != TypeClass_INTERFACE) 1668*cdf0e10cSrcweir { 1669*cdf0e10cSrcweir throw ::com::sun::star::lang::IllegalArgumentException(); 1670*cdf0e10cSrcweir } 1671*cdf0e10cSrcweir 1672*cdf0e10cSrcweir Reference< ::com::sun::star::form::XFormComponent > xElement(*(Reference< XInterface > *)Element.getValue(), UNO_QUERY); 1673*cdf0e10cSrcweir if (!xElement.is()) 1674*cdf0e10cSrcweir { 1675*cdf0e10cSrcweir throw ::com::sun::star::lang::IllegalArgumentException(); 1676*cdf0e10cSrcweir } 1677*cdf0e10cSrcweir 1678*cdf0e10cSrcweir // for the name we need the propset 1679*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertySet > xElementSet(xElement, UNO_QUERY); 1680*cdf0e10cSrcweir if (!xElementSet.is()) 1681*cdf0e10cSrcweir { 1682*cdf0e10cSrcweir throw ::com::sun::star::lang::IllegalArgumentException(); 1683*cdf0e10cSrcweir } 1684*cdf0e10cSrcweir ::rtl::OUString sName; 1685*cdf0e10cSrcweir try 1686*cdf0e10cSrcweir { 1687*cdf0e10cSrcweir xElementSet->getPropertyValue(PROPERTY_NAME) >>= sName; 1688*cdf0e10cSrcweir } 1689*cdf0e10cSrcweir catch(Exception&) 1690*cdf0e10cSrcweir { 1691*cdf0e10cSrcweir // the set didn't support the name prop 1692*cdf0e10cSrcweir throw ::com::sun::star::lang::IllegalArgumentException(); 1693*cdf0e10cSrcweir } 1694*cdf0e10cSrcweir 1695*cdf0e10cSrcweir Reference< ::com::sun::star::form::XFormComponent > xOld = *(m_aChildren.begin() + _rIndex); 1696*cdf0e10cSrcweir 1697*cdf0e10cSrcweir DBG_ASSERT(m_aChildren.size() == m_aChildNames.size(), "SAL_CALL SbaXFormAdapter::replaceByIndex : inconsistent container state !"); 1698*cdf0e10cSrcweir *(m_aChildren.begin() + _rIndex) = xElement; 1699*cdf0e10cSrcweir *(m_aChildNames.begin() + _rIndex) = sName; 1700*cdf0e10cSrcweir 1701*cdf0e10cSrcweir // correct property change listening 1702*cdf0e10cSrcweir Reference< ::com::sun::star::beans::XPropertySet > xOldSet(xOld, UNO_QUERY); 1703*cdf0e10cSrcweir xOldSet->removePropertyChangeListener(PROPERTY_NAME, (::com::sun::star::beans::XPropertyChangeListener*)this); 1704*cdf0e10cSrcweir xElementSet->addPropertyChangeListener(PROPERTY_NAME, (::com::sun::star::beans::XPropertyChangeListener*)this); 1705*cdf0e10cSrcweir 1706*cdf0e10cSrcweir // parent reset 1707*cdf0e10cSrcweir xOld->setParent(Reference< XInterface > ()); 1708*cdf0e10cSrcweir xElement->setParent((::com::sun::star::container::XContainer*)this); 1709*cdf0e10cSrcweir 1710*cdf0e10cSrcweir // notify container listeners 1711*cdf0e10cSrcweir ::com::sun::star::container::ContainerEvent aEvt; 1712*cdf0e10cSrcweir aEvt.Source = *this; 1713*cdf0e10cSrcweir aEvt.Accessor <<= (sal_Int32)_rIndex; 1714*cdf0e10cSrcweir aEvt.Element <<= xElement; 1715*cdf0e10cSrcweir aEvt.ReplacedElement <<= xOld; 1716*cdf0e10cSrcweir 1717*cdf0e10cSrcweir ::cppu::OInterfaceIteratorHelper aIt(m_aContainerListeners); 1718*cdf0e10cSrcweir while (aIt.hasMoreElements()) 1719*cdf0e10cSrcweir ((::com::sun::star::container::XContainerListener*)aIt.next())->elementReplaced(aEvt); 1720*cdf0e10cSrcweir } 1721*cdf0e10cSrcweir 1722*cdf0e10cSrcweir // ::com::sun::star::container::XIndexAccess 1723*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1724*cdf0e10cSrcweir sal_Int32 SAL_CALL SbaXFormAdapter::getCount() throw( RuntimeException ) 1725*cdf0e10cSrcweir { 1726*cdf0e10cSrcweir return m_aChildren.size(); 1727*cdf0e10cSrcweir } 1728*cdf0e10cSrcweir 1729*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1730*cdf0e10cSrcweir Any SAL_CALL SbaXFormAdapter::getByIndex(sal_Int32 _rIndex) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, RuntimeException ) 1731*cdf0e10cSrcweir { 1732*cdf0e10cSrcweir if ( ( _rIndex < 0 ) || ( (size_t)_rIndex >= m_aChildren.size() ) ) 1733*cdf0e10cSrcweir throw ::com::sun::star::lang::IndexOutOfBoundsException(); 1734*cdf0e10cSrcweir 1735*cdf0e10cSrcweir Reference< ::com::sun::star::form::XFormComponent > xElement = *(m_aChildren.begin() + _rIndex); 1736*cdf0e10cSrcweir return makeAny(xElement); 1737*cdf0e10cSrcweir } 1738*cdf0e10cSrcweir 1739*cdf0e10cSrcweir // ::com::sun::star::container::XContainer 1740*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1741*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::addContainerListener(const Reference< ::com::sun::star::container::XContainerListener >& xListener) throw( RuntimeException ) 1742*cdf0e10cSrcweir { 1743*cdf0e10cSrcweir m_aContainerListeners.addInterface(xListener); 1744*cdf0e10cSrcweir } 1745*cdf0e10cSrcweir 1746*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1747*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::removeContainerListener(const Reference< ::com::sun::star::container::XContainerListener >& xListener) throw( RuntimeException ) 1748*cdf0e10cSrcweir { 1749*cdf0e10cSrcweir m_aContainerListeners.removeInterface(xListener); 1750*cdf0e10cSrcweir } 1751*cdf0e10cSrcweir 1752*cdf0e10cSrcweir // ::com::sun::star::container::XEnumerationAccess 1753*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1754*cdf0e10cSrcweir Reference< ::com::sun::star::container::XEnumeration > SAL_CALL SbaXFormAdapter::createEnumeration() throw( RuntimeException ) 1755*cdf0e10cSrcweir { 1756*cdf0e10cSrcweir return new ::comphelper::OEnumerationByName(this); 1757*cdf0e10cSrcweir } 1758*cdf0e10cSrcweir 1759*cdf0e10cSrcweir // ::com::sun::star::beans::XPropertyChangeListener 1760*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1761*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::propertyChange(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw( RuntimeException ) 1762*cdf0e10cSrcweir { 1763*cdf0e10cSrcweir if (evt.PropertyName.equals(PROPERTY_NAME)) 1764*cdf0e10cSrcweir { 1765*cdf0e10cSrcweir ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent > >::iterator aIter = ::std::find_if( m_aChildren.begin(), 1766*cdf0e10cSrcweir m_aChildren.end(), 1767*cdf0e10cSrcweir ::std::bind2nd(::std::equal_to< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >(),evt.Source)); 1768*cdf0e10cSrcweir 1769*cdf0e10cSrcweir if(aIter != m_aChildren.end()) 1770*cdf0e10cSrcweir { 1771*cdf0e10cSrcweir sal_Int32 nPos = aIter - m_aChildren.begin(); 1772*cdf0e10cSrcweir DBG_ASSERT(*(m_aChildNames.begin() + nPos) == ::comphelper::getString(evt.OldValue), "SAL_CALL SbaXFormAdapter::propertyChange : object has a wrong name !"); 1773*cdf0e10cSrcweir *(m_aChildNames.begin() + nPos) = ::comphelper::getString(evt.NewValue); 1774*cdf0e10cSrcweir } 1775*cdf0e10cSrcweir } 1776*cdf0e10cSrcweir } 1777*cdf0e10cSrcweir 1778*cdf0e10cSrcweir // ::com::sun::star::lang::XEventListener 1779*cdf0e10cSrcweir // ------------------------------------------------------------------------- 1780*cdf0e10cSrcweir void SAL_CALL SbaXFormAdapter::disposing(const ::com::sun::star::lang::EventObject& Source) throw( RuntimeException ) 1781*cdf0e10cSrcweir { 1782*cdf0e10cSrcweir // was it our main form ? 1783*cdf0e10cSrcweir if (Source.Source == m_xMainForm) 1784*cdf0e10cSrcweir dispose(); 1785*cdf0e10cSrcweir 1786*cdf0e10cSrcweir ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent > >::iterator aIter = ::std::find_if( m_aChildren.begin(), 1787*cdf0e10cSrcweir m_aChildren.end(), 1788*cdf0e10cSrcweir ::std::bind2nd(::std::equal_to< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >(),Source.Source)); 1789*cdf0e10cSrcweir if(aIter != m_aChildren.end()) 1790*cdf0e10cSrcweir removeByIndex(aIter - m_aChildren.begin()); 1791*cdf0e10cSrcweir } 1792*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 1793*cdf0e10cSrcweir 1794*cdf0e10cSrcweir 1795