Tag: cws_src680_dba30
User: fs      
Date: 06/05/08 04:28:56

Modified:
 /dba/dbaccess/source/ui/tabledesign/
  TableController.cxx

Log:
 RESYNC: (1.101-1.103); FILE MERGED

File Changes:

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

File [changed]: TableController.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/tabledesign/TableController.cxx?r1=1.99.16.5&r2=1.99.16.6
Delta lines:  +37 -33
---------------------
--- TableController.cxx 20 Apr 2006 06:53:35 -0000      1.99.16.5
+++ TableController.cxx 8 May 2006 11:28:53 -0000       1.99.16.6
@@ -156,6 +156,7 @@
 #ifndef DBAUI_TOOLS_HXX
 #include "UITools.hxx"
 #endif
+#include <boost/mem_fn.hpp>
 
 #ifndef _CPPUHELPER_EXC_HLP_HXX_
 #include <cppuhelper/exc_hlp.hxx>
@@ -196,9 +197,9 @@
                }
        }
        
//------------------------------------------------------------------------------
-       struct OTableRowCompare : public ::std::binary_function< OTableRow*, 
::rtl::OUString, bool>
+       struct OTableRowCompare : public ::std::binary_function<  
::boost::shared_ptr<OTableRow> , ::rtl::OUString, bool>
        {
-               bool operator() (const OTableRow* lhs, const ::rtl::OUString& 
rhs) const 
+               bool operator() (const  ::boost::shared_ptr<OTableRow>  lhs, 
const ::rtl::OUString& rhs) const 
                {
                        OFieldDescription* pField = lhs->GetActFieldDescr();
                        return pField && pField->GetName() == rhs;
@@ -281,9 +282,7 @@
        OTableController_BASE::disposing();
        m_pView         = NULL;
 
-       ::std::vector<OTableRow*>::iterator aIter = m_vRowList.begin();
-       for(;aIter != m_vRowList.end();++aIter)
-               delete *aIter;
+    m_vRowList.clear();
 }
 // 
-----------------------------------------------------------------------------
 FeatureState OTableController::GetState(sal_uInt16 _nId) const
@@ -304,7 +303,8 @@
                        aReturn.bEnabled = isModified();
                        if ( aReturn.bEnabled )
                        {
-                               ::std::vector<OTableRow*>::const_iterator aIter 
= 
::std::find_if(m_vRowList.begin(),m_vRowList.end(),::std::mem_fun(&OTableRow::isValid));
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::const_iterator aIter = ::std::find_if(m_vRowList.begin(),m_vRowList.end(),
+                    ::boost::mem_fn(&OTableRow::isValid));
                                aReturn.bEnabled = aIter != m_vRowList.end();
                        }
                        break;
@@ -312,7 +312,8 @@
                        aReturn.bEnabled = isConnected() && isEditable();
                        if ( aReturn.bEnabled )
                        {
-                               ::std::vector<OTableRow*>::const_iterator aIter 
= 
::std::find_if(m_vRowList.begin(),m_vRowList.end(),::std::mem_fun(&OTableRow::isValid));
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::const_iterator aIter = ::std::find_if(m_vRowList.begin(),m_vRowList.end(),
+                    ::boost::mem_fn(&OTableRow::isValid));
                                aReturn.bEnabled = aIter != m_vRowList.end();
                        }
                        break;
@@ -335,7 +336,8 @@
                                );
                        if ( aReturn.bEnabled )
                        {
-                               ::std::vector<OTableRow*>::const_iterator aIter 
= 
::std::find_if(m_vRowList.begin(),m_vRowList.end(),::std::mem_fun(&OTableRow::isValid));
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::const_iterator aIter = ::std::find_if(m_vRowList.begin(),m_vRowList.end(),
+                    ::boost::mem_fn(&OTableRow::isValid));
                                aReturn.bEnabled = aIter != m_vRowList.end();
                        }
                        break;
@@ -707,10 +709,13 @@
 
        vos::OGuard aSolarGuard( Application::GetSolarMutex() );
        ::osl::MutexGuard aGuard(m_aMutex);
+    if ( getView() && getView()->IsInModalMode() )
+        return sal_False;
        sal_Bool bCheck = sal_True;
        if ( isModified() )
        {
-               ::std::vector<OTableRow*>::iterator aIter = 
::std::find_if(m_vRowList.begin(),m_vRowList.end(),::std::mem_fun(&OTableRow::isValid));
+               ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter 
= ::std::find_if(m_vRowList.begin(),m_vRowList.end(),
+            ::boost::mem_fn(&OTableRow::isValid));
                if ( aIter != m_vRowList.end() )
                {
                        QueryBox aQry(getView(), 
ModuleRes(TABLE_DESIGN_SAVEMODIFIED));
@@ -854,8 +859,8 @@
                Reference<XAppend> xAppend(xColumns,UNO_QUERY);
                OSL_ENSURE(xAppend.is(),"No XAppend Interface!");
 
-               ::std::vector<OTableRow*>::iterator aIter = m_vRowList.begin();
-               ::std::vector<OTableRow*>::iterator aEnd = m_vRowList.end();
+               ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter 
= m_vRowList.begin();
+               ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aEnd 
= m_vRowList.end();
                for(;aIter != aEnd;++aIter)
                {
                        OSL_ENSURE(*aIter,"OTableRow is null!");
@@ -931,12 +936,9 @@
 {
        //////////////////////////////////////////////////////////////////////
        // Wenn Datenstruktur bereits vorhanden, Struktur leeren
-       ::std::vector<OTableRow*>::iterator aIter = m_vRowList.begin();
-       for(;aIter != m_vRowList.end();++aIter)
-               delete *aIter;
        m_vRowList.clear();
 
-       OTableRow* pTabEdRow = NULL;
+       ::boost::shared_ptr<OTableRow>  pTabEdRow;
        Reference< XDatabaseMetaData> xMetaData = getMetaData( );
        //////////////////////////////////////////////////////////////////////
        // Datenstruktur mit Daten aus DatenDefinitionsObjekt fuellen
@@ -993,7 +995,7 @@
                        
if(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_ALIGN))
                                xColumn->getPropertyValue(PROPERTY_ALIGN)       
        >>= nAlign;
 
-                       pTabEdRow = new OTableRow();
+                       pTabEdRow.reset(new OTableRow());
                        pTabEdRow->SetReadOnly(!bIsAlterAllowed);
                        // search for type
                        sal_Bool bForce;
@@ -1034,7 +1036,7 @@
 
                        for(;pKeyBegin != pKeyEnd;++pKeyBegin)
                        {
-                               ::std::vector<OTableRow*>::iterator aIter = 
m_vRowList.begin();
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::iterator aIter = m_vRowList.begin();
                                for(;aIter != m_vRowList.end();++aIter)
                                {
                                        
if((*aIter)->GetActFieldDescr()->GetName() == *pKeyBegin)
@@ -1059,7 +1061,7 @@
        bool bReadRow = !isAddAllowed();
        for(sal_Int32 i=m_vRowList.size(); i<128; i++ )
        {
-               pTabEdRow = new OTableRow();
+               pTabEdRow.reset(new OTableRow());
                pTabEdRow->SetReadOnly(bReadRow);
                m_vRowList.push_back( pTabEdRow);
        }
@@ -1109,7 +1111,7 @@
        Reference< XDatabaseMetaData> xMetaData = getMetaData( );
 
        ::comphelper::UStringMixEqual bCase(xMetaData.is() ? 
xMetaData->supportsMixedCaseQuotedIdentifiers() : sal_True);
-       ::std::vector<OTableRow*>::const_iterator aIter = m_vRowList.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::const_iterator aIter = 
m_vRowList.begin();
        for(;aIter != m_vRowList.end();++aIter)
        {
                OFieldDescription* pFieldDesc = (*aIter)->GetActFieldDescr();
@@ -1119,7 +1121,7 @@
                        sal_uInt16 nErrorRes = sal_uInt16(-1);
                        sal_uInt16 nFieldPos = sal_uInt16(-1);
                        // first check for duplicate names
-                       ::std::vector<OTableRow*>::const_iterator aIter2 = 
aIter+1;
+                       ::std::vector< ::boost::shared_ptr<OTableRow> 
>::const_iterator aIter2 = aIter+1;
                        for(;aIter2 != m_vRowList.end();++aIter2)
                        {
                                OFieldDescription* pCompareDesc = 
(*aIter2)->GetActFieldDescr();
@@ -1147,7 +1149,7 @@
 
                        if (nReturn == RET_YES)
                        {
-                               OTableRow* pNewRow = new OTableRow();
+                               ::boost::shared_ptr<OTableRow>  pNewRow(new 
OTableRow());
                                TOTypeInfoSP pTypeInfo = 
::dbaui::queryPrimaryKeyType(m_aTypeInfo);
                                
                                if ( pTypeInfo.get() )
@@ -1177,15 +1179,17 @@
 // 
-----------------------------------------------------------------------------
 void OTableController::alterColumns()
 {
-       Reference<XColumnsSupplier> xColSup(m_xTable,UNO_QUERY);
+       Reference<XColumnsSupplier> xColSup(m_xTable,UNO_QUERY_THROW);
        OSL_ENSURE(xColSup.is(),"What happen here?!");
 
        Reference<XNameAccess> xColumns = xColSup->getColumns();
-       Reference<XIndexAccess> xIdxColumns(xColumns,UNO_QUERY);
+       Reference<XIndexAccess> xIdxColumns(xColumns,UNO_QUERY_THROW);
        OSL_ENSURE(xColumns.is(),"No columns");
+    if ( !xColumns.is() )
+        return;
        Reference<XAlterTable> xAlter(m_xTable,UNO_QUERY);      // can be null
 
-       sal_Int32 nColumnCount = xColumns->getElementNames().getLength();
+       sal_Int32 nColumnCount = xIdxColumns->getCount();
        Reference<XDrop> xDrop(xColumns,UNO_QUERY);                     // can 
be null
        Reference<XAppend> xAppend(xColumns,UNO_QUERY);         // can be null
        Reference<XDataDescriptorFactory> xColumnFactory(xColumns,UNO_QUERY); 
// can be null
@@ -1197,8 +1201,8 @@
 
 
        ::std::map< ::rtl::OUString,sal_Bool,::comphelper::UStringMixLess> 
aColumns(xMetaData.is() ? (xMetaData->supportsMixedCaseQuotedIdentifiers() ? 
true : false): sal_True);
-       ::std::vector<OTableRow*>::iterator aIter = m_vRowList.begin();
-       ::std::vector<OTableRow*>::iterator aEnd = m_vRowList.end();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter = 
m_vRowList.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aEnd = 
m_vRowList.end();
        // first look for columns where something other than the name changed
        for(sal_Int32 nPos = 0;aIter != aEnd;++aIter,++nPos)
        {
@@ -1521,8 +1525,8 @@
                                xKeyColumns = NULL;
                                Reference<XDrop> xDrop(xKeys,UNO_QUERY);
                                xDrop->dropByIndex(i); // delete the key
-                               ::std::vector<OTableRow*>::iterator aIter = 
m_vRowList.begin();
-                               ::std::vector<OTableRow*>::iterator aEnd = 
m_vRowList.end();
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::iterator aIter = m_vRowList.begin();
+                               ::std::vector< ::boost::shared_ptr<OTableRow> 
>::iterator aEnd = m_vRowList.end();
                                for(;aIter != aEnd;++aIter)
                                {
                                        OSL_ENSURE(*aIter,"OTableRow is null!");
@@ -1567,7 +1571,7 @@
                                setEditable( xMeta.is() && !xMeta->isReadOnly() 
&& (isAlterAllowed() || isDropAllowed() || isAddAllowed()) );
                                if(!isEditable())
                                {
-                                       ::std::vector<OTableRow*>::iterator 
aIter = m_vRowList.begin();
+                                       ::std::vector< 
::boost::shared_ptr<OTableRow> >::iterator aIter = m_vRowList.begin();
                                        for(; aIter != m_vRowList.end(); 
++aIter)
                                                (*aIter)->SetReadOnly(sal_True);
                                }
@@ -1619,7 +1623,7 @@
 {
        sal_Bool bAlterAllowed  = isAlterAllowed();
        sal_Bool bAddAllowed    = isAddAllowed();
-       ::std::vector<OTableRow*>::iterator aIter = m_vRowList.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::iterator aIter = 
m_vRowList.begin();
        for(;aIter != m_vRowList.end();++aIter)
        {
                OSL_ENSURE(*aIter,"OTableRow is null!");
@@ -1643,7 +1647,7 @@
 
        ::comphelper::UStringMixEqual bCase(xMetaData.is() ? 
xMetaData->supportsMixedCaseQuotedIdentifiers() : sal_True);
 
-       ::std::vector<OTableRow*>::const_iterator aIter = m_vRowList.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::const_iterator aIter = 
m_vRowList.begin();
        for(sal_Int32 i=0;aIter != m_vRowList.end();++aIter)
        {
                OFieldDescription* pFieldDesc = (*aIter)->GetActFieldDescr();
@@ -1698,8 +1702,8 @@
 sal_Int32 OTableController::getFirstEmptyRowPosition() const
 {
        sal_Int32 nRet = -1;
-       ::std::vector<OTableRow*>::const_iterator aIter = m_vRowList.begin();
-       ::std::vector<OTableRow*>::const_iterator aEnd = m_vRowList.end();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::const_iterator aIter = 
m_vRowList.begin();
+       ::std::vector< ::boost::shared_ptr<OTableRow> >::const_iterator aEnd = 
m_vRowList.end();
        for(;aIter != aEnd;++aIter)
        {
                if ( !*aIter || !(*aIter)->GetActFieldDescr() || 
!(*aIter)->GetActFieldDescr()->GetName().getLength() )




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

Reply via email to