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]
