LCOV - code coverage report
Current view: top level - dbaccess/source/ui/browser - formadapter.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 953 0.0 %
Date: 2012-08-25 Functions: 0 185 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 2038 0.0 %

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

Generated by: LCOV version 1.10