User: hr      
Date: 2007-09-26 14:51:37+0000
Modified:
   dba/dbaccess/source/ui/misc/WCPage.cxx

Log:
 INTEGRATION: CWS dba24a (1.30.18); FILE MERGED
 2007/09/03 12:51:26 oj 1.30.18.3: #i73710# check src vector as well
 2007/08/30 08:19:53 oj 1.30.18.2: #i78257# check vector size of source vec
 2007/07/23 11:59:03 fs 1.30.18.1: when pasting tables, use a meaningful 
default in the wizard, as indicated by the current selection
 Issue number:  #i18907#
 Submitted by:  [EMAIL PROTECTED]
 Reviewed by:   [EMAIL PROTECTED]

File Changes:

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

File [changed]: WCPage.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/misc/WCPage.cxx?r1=1.30&r2=1.31
Delta lines:  +57 -32
---------------------
--- WCPage.cxx  2007-07-06 08:34:33+0000        1.30
+++ WCPage.cxx  2007-09-26 14:51:34+0000        1.31
@@ -102,7 +102,9 @@
 //========================================================================
 DBG_NAME(OCopyTable)
 //------------------------------------------------------------------------
-OCopyTable::OCopyTable( Window * pParent, EImportMode atWhat, sal_Bool 
bIsView, OCopyTableWizard::Wizard_Create_Style nLastAction )
+//--------dyf modify 2007/7/10
+OCopyTable::OCopyTable( Window * pParent, EImportMode atWhat, sal_Bool bIsView 
)//, OCopyTableWizard::Wizard_Create_Style nLastAction )
+//--------modify end
        : OWizardPage( pParent, ModuleRes(TAB_WIZ_COPYTABLE) ),
        m_ftTableName(                  this, ModuleRes( FT_TABLENAME           
) ),
        m_edTableName(                  this, ModuleRes( ET_TABLENAME           
) ),
@@ -170,28 +172,6 @@
 
                m_aCB_PrimaryColumn.Enable(m_bPKeyAllowed);
 
-               // reselect the last action before
-               switch(nLastAction)
-               {
-                       case OCopyTableWizard::WIZARD_DEF_DATA:
-                               m_aRB_DefData.Check(sal_True);
-                               break;
-                       case OCopyTableWizard::WIZARD_DEF:
-                               m_aRB_Def.Check(sal_True);
-                               break;
-                       case OCopyTableWizard::WIZARD_APPEND_DATA:
-                               m_aRB_AppendData.Check(sal_True);
-                               
m_pParent->EnableButton(OCopyTableWizard::WIZARD_NEXT,sal_False);
-                               break;
-                       case OCopyTableWizard::WIZARD_DEF_VIEW:
-                               if(m_bIsViewAllowed)
-                               {
-                                       m_aRB_View.Check(sal_True);
-                                       
m_pParent->EnableButton(OCopyTableWizard::WIZARD_NEXT,sal_False);
-                               }
-                               else
-                                       m_aRB_DefData.Check(sal_True);
-               }
                m_aRB_AppendData.SetClickHdl(   LINK( this, OCopyTable, 
AppendDataClickHdl      ) );
 
                m_aRB_DefData.SetClickHdl(              LINK( this, OCopyTable, 
RadioChangeHdl          ) );
@@ -232,14 +212,21 @@
 IMPL_LINK( OCopyTable, AppendDataClickHdl, Button*, /*pButton*/ )
 {
        DBG_CHKTHIS(OCopyTable,NULL);
+
+       SetAppendDataRadio();
+       return 0;
+}
+//--------dyf ADD
+void OCopyTable::SetAppendDataRadio()
+{
        m_pParent->EnableButton(OCopyTableWizard::WIZARD_NEXT,sal_True);
        m_aFT_KeyName.Enable(sal_False);
        m_aCB_PrimaryColumn.Enable(sal_False);
        m_edKeyName.Enable(sal_False);
        m_pParent->setCreateStyle(OCopyTableWizard::WIZARD_APPEND_DATA);
-
-       return 0;
 }
+
+//--------add end
 //------------------------------------------------------------------------
 IMPL_LINK( OCopyTable, RadioChangeHdl, Button*, pButton )
 {
@@ -386,19 +373,24 @@
                xTables = xSup->getTables();
        if(xTables.is() && xTables->hasByName(m_edTableName.GetText()))
        {
+        const ODatabaseExport::TColumnVector* pSrcColumns = 
m_pParent->getSrcVector();
+        const sal_uInt32 nSrcSize = pSrcColumns->size();
+        m_pParent->m_vColumnPos.resize( nSrcSize 
,ODatabaseExport::TPositions::value_type( COLUMN_POSITION_NOT_FOUND, 
COLUMN_POSITION_NOT_FOUND ) );
+           m_pParent->m_vColumnTypes.resize( nSrcSize , 
COLUMN_POSITION_NOT_FOUND );
+
                // set new destination
                xTables->getByName(m_edTableName.GetText()) >>= 
m_pParent->m_xDestObject;
                
m_pParent->loadData(m_pParent->m_xDestObject,m_pParent->m_vDestColumns,m_pParent->m_aDestVec);
                // #90027#
                const ODatabaseExport::TColumnVector* pDestColumns              
        = m_pParent->getDestVector();
                ODatabaseExport::TColumnVector::const_iterator aDestIter        
= pDestColumns->begin();
-               m_pParent->m_vColumnPos.reserve(pDestColumns->size()+1);
-               m_pParent->m_vColumnTypes.reserve(pDestColumns->size()+1);
+               const sal_uInt32 nDestSize = pDestColumns->size();
                sal_Bool bNotConvert;
-               for(sal_Int32 nPos = 1;aDestIter != 
pDestColumns->end();++aDestIter,++nPos)
+        sal_uInt32 i = 0;
+               for(sal_Int32 nPos = 1;aDestIter != pDestColumns->end() && i < 
nDestSize && i < nSrcSize;++aDestIter,++nPos,++i)
                {
                        bNotConvert = sal_True;
-                       m_pParent->m_vColumnPos.push_back( 
ODatabaseExport::TPositions::value_type(nPos,nPos) );
+                       m_pParent->m_vColumnPos[i] = 
ODatabaseExport::TPositions::value_type(nPos,nPos);
                        TOTypeInfoSP pTypeInfo = 
m_pParent->convertType((*aDestIter)->second->getTypeInfo(),bNotConvert);
                        if ( !bNotConvert )
                        {
@@ -407,10 +399,11 @@
                        }
                        
                        if ( pTypeInfo.get() )
-                               
m_pParent->m_vColumnTypes.push_back(pTypeInfo->nType);
+                               m_pParent->m_vColumnTypes[i] = pTypeInfo->nType;
                        else
-                               
m_pParent->m_vColumnTypes.push_back(DataType::VARCHAR);
+                               m_pParent->m_vColumnTypes[i] = 
DataType::VARCHAR;
                }
+        
        }
        if ( !m_pParent->m_xDestObject.is() )
        {
@@ -420,3 +413,35 @@
        return sal_True;
 }
 // 
-----------------------------------------------------------------------------
+//---dyf add 2006/7/10
+void OCopyTable::setCreateStyleAction()
+{
+       // reselect the last action before
+       switch(m_pParent->getCreateStyle())
+       {
+               case OCopyTableWizard::WIZARD_DEF_DATA:
+                       m_aRB_DefData.Check(sal_True);
+            RadioChangeHdl(&m_aRB_DefData);
+                       break;
+               case OCopyTableWizard::WIZARD_DEF:
+                       m_aRB_Def.Check(sal_True);
+            RadioChangeHdl(&m_aRB_Def);
+                       break;
+               case OCopyTableWizard::WIZARD_APPEND_DATA:
+                       m_aRB_AppendData.Check(sal_True);
+                       SetAppendDataRadio();
+                       break;
+               case OCopyTableWizard::WIZARD_DEF_VIEW:
+                       if(m_bIsViewAllowed)
+                       {
+                               m_aRB_View.Check(sal_True);
+                RadioChangeHdl(&m_aRB_View);
+                       }
+                       else
+            {
+                               m_aRB_DefData.Check(sal_True);
+                RadioChangeHdl(&m_aRB_DefData);
+            }
+       }
+}
+//---add end




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

Reply via email to