Tag: cws_src680_dba24
User: oj      
Date: 05/02/23 02:17:51

Modified:
 /dba/dbaccess/source/core/dataaccess/
  databasedocument.cxx
 /dba/dbaccess/source/ui/app/
  AppController.cxx

Log:
 #i42461# change model data source concept

File Changes:

Directory: /dba/dbaccess/source/core/dataaccess/
================================================

File [changed]: databasedocument.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/dataaccess/databasedocument.cxx?r1=1.8.2.6&r2=1.8.2.7
Delta lines:  +60 -37
---------------------
--- databasedocument.cxx        22 Feb 2005 10:07:20 -0000      1.8.2.6
+++ databasedocument.cxx        23 Feb 2005 10:17:47 -0000      1.8.2.7
@@ -2,9 +2,9 @@
  *
  *  $RCSfile: databasedocument.cxx,v $
  *
- *  $Revision: 1.8.2.6 $
+ *  $Revision: 1.8.2.7 $
  *
- *  last change: $Author: oj $ $Date: 2005/02/22 10:07:20 $
+ *  last change: $Author: oj $ $Date: 2005/02/23 10:17:47 $
  *
  *  The Contents of this file are made available subject to the terms of
  *  either of the following licenses
@@ -350,27 +350,29 @@
 // 
-----------------------------------------------------------------------------
 ::rtl::OUString SAL_CALL ODatabaseDocument::getURL(  ) throw 
(RuntimeException) 
 {
+    
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
        MutexGuard aGuard(m_pImpl->m_aMutex);
        return m_pImpl->m_sFileURL;
 }
 // 
-----------------------------------------------------------------------------
 Sequence< PropertyValue > SAL_CALL ODatabaseDocument::getArgs(  ) throw 
(RuntimeException) 
 {
+    
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
        MutexGuard aGuard(m_pImpl->m_aMutex);
        return m_pImpl->m_aArgs;
 }
 // 
-----------------------------------------------------------------------------
 void SAL_CALL ODatabaseDocument::connectController( const Reference< 
XController >& _xController ) throw (RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
     
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
        m_pImpl->m_aControllers.push_back(_xController);
 }
 // 
-----------------------------------------------------------------------------
 void SAL_CALL ODatabaseDocument::disconnectController( const Reference< 
XController >& _xController ) throw (RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
        
m_pImpl->m_aControllers.erase(::std::find(m_pImpl->m_aControllers.begin(),m_pImpl->m_aControllers.end(),_xController));
        if ( m_pImpl->m_xCurrentController == _xController )
                m_pImpl->m_xCurrentController = NULL;
@@ -380,43 +382,48 @@
 // 
-----------------------------------------------------------------------------
 void SAL_CALL ODatabaseDocument::lockControllers(  ) throw (RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);   
        ++m_pImpl->m_nControllerLockCount;
 }
 // 
-----------------------------------------------------------------------------
 void SAL_CALL ODatabaseDocument::unlockControllers(  ) throw 
(RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        --m_pImpl->m_nControllerLockCount;
 }
 // 
-----------------------------------------------------------------------------
 sal_Bool SAL_CALL ODatabaseDocument::hasControllersLocked(  ) throw 
(RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        return m_pImpl->m_nControllerLockCount != 0;
 }
 // 
-----------------------------------------------------------------------------
 Reference< XController > SAL_CALL ODatabaseDocument::getCurrentController() 
throw (RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        return m_pImpl->m_xCurrentController.is() ? 
m_pImpl->m_xCurrentController : ( m_pImpl->m_aControllers.empty() ? Reference< 
XController >() : *m_pImpl->m_aControllers.begin() );
 }
 // 
-----------------------------------------------------------------------------
 void SAL_CALL ODatabaseDocument::setCurrentController( const Reference< 
XController >& _xController ) throw (NoSuchElementException, RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        m_pImpl->m_xCurrentController = _xController;
 }
 // 
-----------------------------------------------------------------------------
 Reference< XInterface > SAL_CALL ODatabaseDocument::getCurrentSelection(  ) 
throw (RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
 
        Reference< XInterface > xRet;
        Reference< XSelectionSupplier >  xDocView( getCurrentController(), 
UNO_QUERY );
@@ -430,29 +437,33 @@
 // XStorable
 sal_Bool SAL_CALL ODatabaseDocument::hasLocation(  ) throw (RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        return m_pImpl->m_sFileURL.getLength() != 0;
 }
 // 
-----------------------------------------------------------------------------
 ::rtl::OUString SAL_CALL ODatabaseDocument::getLocation(  ) throw 
(RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        return m_pImpl->m_sFileURL;
 }
 // 
-----------------------------------------------------------------------------
 sal_Bool SAL_CALL ODatabaseDocument::isReadonly(  ) throw (RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        return m_pImpl->m_bDocumentReadOnly;
 }
 // 
-----------------------------------------------------------------------------
 void SAL_CALL ODatabaseDocument::store(  ) throw (IOException, 
RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        
        store(m_pImpl->m_sFileURL,m_pImpl->m_aArgs);
 
@@ -482,8 +493,9 @@
 // 
-----------------------------------------------------------------------------
 void SAL_CALL ODatabaseDocument::storeAsURL( const ::rtl::OUString& sURL, 
const Sequence< PropertyValue >& lArguments ) throw (IOException, 
RuntimeException) 
 {
-       ClearableMutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       ClearableMutexGuard aGuard(m_pImpl->m_aMutex);
+       
        
        Reference<XSingleServiceFactory> 
xStorageFactory(m_pImpl->m_xServiceFactory->createInstance( 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.embed.StorageFactory"))
 ),UNO_QUERY);
        if ( xStorageFactory.is() )
@@ -550,8 +562,9 @@
 // 
-----------------------------------------------------------------------------
 void SAL_CALL ODatabaseDocument::storeToURL( const ::rtl::OUString& sURL, 
const Sequence< PropertyValue >& lArguments ) throw (IOException, 
RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        Reference<XSingleServiceFactory> 
xStorageFactory(m_pImpl->m_xServiceFactory->createInstance( 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.embed.StorageFactory"))
 ),UNO_QUERY);
        if ( xStorageFactory.is() )
        {
@@ -590,15 +603,17 @@
 // XModifiable
 sal_Bool SAL_CALL ODatabaseDocument::isModified(  ) throw (RuntimeException) 
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        return m_pImpl->m_bModified;
 }
 // 
-----------------------------------------------------------------------------
 void SAL_CALL ODatabaseDocument::setModified( sal_Bool _bModified ) throw 
(PropertyVetoException, RuntimeException) 
 {
-    ResettableMutexGuard _rGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+    ResettableMutexGuard _rGuard(m_pImpl->m_aMutex);
+       
        if ( m_pImpl->m_bModified != _bModified )
        {
                m_pImpl->m_bModified = _bModified;
@@ -683,8 +698,9 @@
 // 
-----------------------------------------------------------------------------
 Reference< XNameAccess > SAL_CALL ODatabaseDocument::getFormDocuments(  ) 
throw (RuntimeException)
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
 
        Reference< XNameAccess > xContainer = m_pImpl->m_xForms;
        if ( !xContainer.is() )
@@ -704,8 +720,9 @@
 // 
-----------------------------------------------------------------------------
 Reference< XNameAccess > SAL_CALL ODatabaseDocument::getReportDocuments(  ) 
throw (RuntimeException)
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
 
        Reference< XNameAccess > xContainer = m_pImpl->m_xReports;
        if ( !xContainer.is() )
@@ -937,8 +954,9 @@
 // 
-----------------------------------------------------------------------------
 Reference< ::drafts::com::sun::star::ui::XUIConfigurationManager > SAL_CALL 
ODatabaseDocument::getUIConfigurationManager(  ) throw (RuntimeException)
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
        if ( !m_xUIConfigurationManager.is() )
     {
         m_xUIConfigurationManager = Reference< 
::drafts::com::sun::star::ui::XUIConfigurationManager >(
@@ -980,8 +998,9 @@
 // 
-----------------------------------------------------------------------------
 Reference< XStorage > SAL_CALL ODatabaseDocument::getDocumentSubStorage( const 
::rtl::OUString& aStorageName, sal_Int32 nMode ) throw (RuntimeException)
 {
-       MutexGuard aGuard(m_pImpl->m_aMutex);
        
::connectivity::checkDisposed(ODatabaseDocument_OfficeDocument::rBHelper.bDisposed);
+       MutexGuard aGuard(m_pImpl->m_aMutex);
+       
 
        Reference< XStorage > xResult = 
m_pImpl->getStorage(aStorageName,this,nMode);
        if ( xResult.is() )
@@ -1133,6 +1152,7 @@
                        xComp->removeEventListener(this);
        }
 
+    m_pImpl->dispose();
        m_pImpl->m_xModel.clear();
        m_pImpl.clear();
 }
@@ -1209,6 +1229,8 @@
 //------------------------------------------------------------------
 void SAL_CALL ODatabaseDocument::commited( const 
::com::sun::star::lang::EventObject& aEvent ) throw 
(::com::sun::star::uno::RuntimeException)
 {
+    if ( m_pImpl.is() )
+    {
     ::osl::MutexGuard aGuard(m_pImpl->m_aMutex);
     TStorages::iterator aFind = 
m_pImpl->m_aStorages.find(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("database")));
     Reference<XStorage> xStorage(aEvent.Source,UNO_QUERY);
@@ -1224,6 +1246,7 @@
            {
                    OSL_ENSURE(0,"Exception Caught: Could not store embedded 
database!");
            }
+        }
     }
 }
 //------------------------------------------------------------------

Directory: /dba/dbaccess/source/ui/app/
=======================================

File [changed]: AppController.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppController.cxx?r1=1.12.4.5&r2=1.12.4.6
Delta lines:  +7 -5
-------------------
--- AppController.cxx   22 Feb 2005 08:56:31 -0000      1.12.4.5
+++ AppController.cxx   23 Feb 2005 10:17:48 -0000      1.12.4.6
@@ -2,9 +2,9 @@
  *
  *  $RCSfile: AppController.cxx,v $
  *
- *  $Revision: 1.12.4.5 $
+ *  $Revision: 1.12.4.6 $
  *
- *  last change: $Author: oj $ $Date: 2005/02/22 08:56:31 $
+ *  last change: $Author: oj $ $Date: 2005/02/23 10:17:48 $
  *
  *  The Contents of this file are made available subject to the terms of
  *  either of the following licenses
@@ -422,12 +422,15 @@
                Reference < XFrame > xFrame;
                attachFrame( xFrame );
 
+        if ( m_xDataSource.is() )
                m_xDataSource->removePropertyChangeListener(::rtl::OUString(), 
this);
+        m_xDataSource = NULL;
+
                Reference< XModifyBroadcaster >  xBroadcaster(m_xModel, 
UNO_QUERY);
                if ( xBroadcaster.is() )
                        
xBroadcaster->removeModifyListener(static_cast<XModifyListener*>(this));
 
-               if ( m_xDataSource.is() && m_xModel.is() )
+               if ( m_xModel.is() )
                {
                        ::rtl::OUString sUrl = m_xModel->getURL();
                        if ( sUrl.getLength() )
@@ -449,7 +452,6 @@
                        // forces the data source to reload
                }
 
-               m_xDataSource = NULL;
                m_xModel = NULL;
        }
        catch(Exception)




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to