summaryrefslogtreecommitdiffstats
path: root/dbaccess/source/ui/misc/WCPage.cxx
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2007-09-26 13:51:34 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2007-09-26 13:51:34 +0000
commitd3b42a6add9c6c6db6a781183afb89a109d160cf (patch)
tree6c2d17fbb0adda5c2b09f16add54fed9a9b6607c /dbaccess/source/ui/misc/WCPage.cxx
parentINTEGRATION: CWS dba24a (1.32.16); FILE MERGED (diff)
downloadcore-d3b42a6add9c6c6db6a781183afb89a109d160cf.tar.gz
core-d3b42a6add9c6c6db6a781183afb89a109d160cf.zip
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: dyf@openoffice.org Reviewed by: frank.schoenheit@sun.com
Diffstat (limited to 'dbaccess/source/ui/misc/WCPage.cxx')
-rw-r--r--dbaccess/source/ui/misc/WCPage.cxx91
1 files changed, 58 insertions, 33 deletions
diff --git a/dbaccess/source/ui/misc/WCPage.cxx b/dbaccess/source/ui/misc/WCPage.cxx
index 372cf943b934..45391d5cc589 100644
--- a/dbaccess/source/ui/misc/WCPage.cxx
+++ b/dbaccess/source/ui/misc/WCPage.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: WCPage.cxx,v $
*
- * $Revision: 1.30 $
+ * $Revision: 1.31 $
*
- * last change: $Author: rt $ $Date: 2007-07-06 08:34:33 $
+ * last change: $Author: hr $ $Date: 2007-09-26 14:51:34 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -102,7 +102,9 @@ using namespace ::com::sun::star::sdbcx;
//========================================================================
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 @@ OCopyTable::OCopyTable( Window * pParent, EImportMode atWhat, sal_Bool bIsView,
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 @@ OCopyTable::~OCopyTable()
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 @@ sal_Bool OCopyTable::checkAppendData()
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 @@ sal_Bool OCopyTable::checkAppendData()
}
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 @@ sal_Bool OCopyTable::checkAppendData()
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