1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove 25*b1cdbd2cSJim Jagielski #include "precompiled_dbaccess.hxx" 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include "advancedsettings.hxx" 28*b1cdbd2cSJim Jagielski #include "advancedsettingsdlg.hxx" 29*b1cdbd2cSJim Jagielski #include "moduledbu.hxx" 30*b1cdbd2cSJim Jagielski #include "dsitems.hxx" 31*b1cdbd2cSJim Jagielski #include "DbAdminImpl.hxx" 32*b1cdbd2cSJim Jagielski #include "DriverSettings.hxx" 33*b1cdbd2cSJim Jagielski #include "optionalboolitem.hxx" 34*b1cdbd2cSJim Jagielski #include "dbu_resource.hrc" 35*b1cdbd2cSJim Jagielski #include "dbu_dlg.hrc" 36*b1cdbd2cSJim Jagielski #include "dbadmin.hrc" 37*b1cdbd2cSJim Jagielski #include "advancedsettings.hrc" 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski /** === begin UNO includes === **/ 40*b1cdbd2cSJim Jagielski /** === end UNO includes === **/ 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski #include <svl/eitem.hxx> 43*b1cdbd2cSJim Jagielski #include <svl/intitem.hxx> 44*b1cdbd2cSJim Jagielski #include <svl/stritem.hxx> 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski #include <vcl/msgbox.hxx> 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski //........................................................................ 49*b1cdbd2cSJim Jagielski namespace dbaui 50*b1cdbd2cSJim Jagielski { 51*b1cdbd2cSJim Jagielski //........................................................................ 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski /** === begin UNO using === **/ 54*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Reference; 55*b1cdbd2cSJim Jagielski using ::com::sun::star::lang::XMultiServiceFactory; 56*b1cdbd2cSJim Jagielski using ::com::sun::star::uno::Any; 57*b1cdbd2cSJim Jagielski using ::com::sun::star::beans::XPropertySet; 58*b1cdbd2cSJim Jagielski using ::com::sun::star::sdbc::XConnection; 59*b1cdbd2cSJim Jagielski using ::com::sun::star::sdbc::XDriver; 60*b1cdbd2cSJim Jagielski /** === end UNO using === **/ 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski //======================================================================== 63*b1cdbd2cSJim Jagielski //= SpecialSettingsPage 64*b1cdbd2cSJim Jagielski //======================================================================== 65*b1cdbd2cSJim Jagielski struct BooleanSettingDesc 66*b1cdbd2cSJim Jagielski { 67*b1cdbd2cSJim Jagielski CheckBox** ppControl; // the dialog's control which displays this setting 68*b1cdbd2cSJim Jagielski sal_uInt16 nControlResId; // the resource ID to load the control from 69*b1cdbd2cSJim Jagielski sal_uInt16 nItemId; // the ID of the item (in an SfxItemSet) which corresponds to this setting 70*b1cdbd2cSJim Jagielski bool bInvertedDisplay; // true if and only if the checkbox is checked when the item is sal_False, and vice versa 71*b1cdbd2cSJim Jagielski }; 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski //======================================================================== 74*b1cdbd2cSJim Jagielski //= SpecialSettingsPage 75*b1cdbd2cSJim Jagielski //======================================================================== SpecialSettingsPage(Window * pParent,const SfxItemSet & _rCoreAttrs,const DataSourceMetaData & _rDSMeta)76*b1cdbd2cSJim Jagielski SpecialSettingsPage::SpecialSettingsPage( Window* pParent, const SfxItemSet& _rCoreAttrs, const DataSourceMetaData& _rDSMeta ) 77*b1cdbd2cSJim Jagielski :OGenericAdministrationPage( pParent, ModuleRes( PAGE_ADVANCED_SETTINGS_SPECIAL ), _rCoreAttrs ) 78*b1cdbd2cSJim Jagielski ,m_aTopLine( this, ModuleRes( FL_DATAHANDLING ) ) 79*b1cdbd2cSJim Jagielski ,m_pIsSQL92Check( NULL ) 80*b1cdbd2cSJim Jagielski ,m_pAppendTableAlias( NULL ) 81*b1cdbd2cSJim Jagielski ,m_pAsBeforeCorrelationName( NULL ) 82*b1cdbd2cSJim Jagielski ,m_pEnableOuterJoin( NULL ) 83*b1cdbd2cSJim Jagielski ,m_pIgnoreDriverPrivileges( NULL ) 84*b1cdbd2cSJim Jagielski ,m_pParameterSubstitution( NULL ) 85*b1cdbd2cSJim Jagielski ,m_pSuppressVersionColumn( NULL ) 86*b1cdbd2cSJim Jagielski ,m_pCatalog( NULL ) 87*b1cdbd2cSJim Jagielski ,m_pSchema( NULL ) 88*b1cdbd2cSJim Jagielski ,m_pIndexAppendix( NULL ) 89*b1cdbd2cSJim Jagielski ,m_pDosLineEnds( NULL ) 90*b1cdbd2cSJim Jagielski ,m_pCheckRequiredFields( NULL ) 91*b1cdbd2cSJim Jagielski ,m_pIgnoreCurrency(NULL) 92*b1cdbd2cSJim Jagielski ,m_pEscapeDateTime(NULL) 93*b1cdbd2cSJim Jagielski ,m_pPrimaryKeySupport(NULL) 94*b1cdbd2cSJim Jagielski ,m_pRespectDriverResultSetType(NULL) 95*b1cdbd2cSJim Jagielski ,m_pBooleanComparisonModeLabel( NULL ) 96*b1cdbd2cSJim Jagielski ,m_pBooleanComparisonMode( NULL ) 97*b1cdbd2cSJim Jagielski ,m_pMaxRowScanLabel( NULL ) 98*b1cdbd2cSJim Jagielski ,m_pMaxRowScan( NULL ) 99*b1cdbd2cSJim Jagielski ,m_aControlDependencies() 100*b1cdbd2cSJim Jagielski ,m_aBooleanSettings() 101*b1cdbd2cSJim Jagielski ,m_bHasBooleanComparisonMode( _rDSMeta.getFeatureSet().has( DSID_BOOLEANCOMPARISON ) ) 102*b1cdbd2cSJim Jagielski ,m_bHasMaxRowScan( _rDSMeta.getFeatureSet().has( DSID_MAX_ROW_SCAN ) ) 103*b1cdbd2cSJim Jagielski { 104*b1cdbd2cSJim Jagielski impl_initBooleanSettings(); 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski const FeatureSet& rFeatures( _rDSMeta.getFeatureSet() ); 107*b1cdbd2cSJim Jagielski // create all the check boxes for the boolean settings 108*b1cdbd2cSJim Jagielski for ( BooleanSettingDescs::const_iterator setting = m_aBooleanSettings.begin(); 109*b1cdbd2cSJim Jagielski setting != m_aBooleanSettings.end(); 110*b1cdbd2cSJim Jagielski ++setting 111*b1cdbd2cSJim Jagielski ) 112*b1cdbd2cSJim Jagielski { 113*b1cdbd2cSJim Jagielski sal_uInt16 nItemId = setting->nItemId; 114*b1cdbd2cSJim Jagielski if ( rFeatures.has( nItemId ) ) 115*b1cdbd2cSJim Jagielski { 116*b1cdbd2cSJim Jagielski sal_uInt16 nResourceId = setting->nControlResId; 117*b1cdbd2cSJim Jagielski (*setting->ppControl) = new CheckBox( this, ModuleRes( nResourceId ) ); 118*b1cdbd2cSJim Jagielski (*setting->ppControl)->SetClickHdl( getControlModifiedLink() ); 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski // check whether this must be a tristate check box 121*b1cdbd2cSJim Jagielski const SfxPoolItem& rItem = _rCoreAttrs.Get( nItemId ); 122*b1cdbd2cSJim Jagielski if ( rItem.ISA( OptionalBoolItem ) ) 123*b1cdbd2cSJim Jagielski (*setting->ppControl)->EnableTriState( sal_True ); 124*b1cdbd2cSJim Jagielski } 125*b1cdbd2cSJim Jagielski } 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski if ( m_pAsBeforeCorrelationName && m_pAppendTableAlias ) 128*b1cdbd2cSJim Jagielski // make m_pAsBeforeCorrelationName depend on m_pAppendTableAlias 129*b1cdbd2cSJim Jagielski m_aControlDependencies.enableOnCheckMark( *m_pAppendTableAlias, *m_pAsBeforeCorrelationName ); 130*b1cdbd2cSJim Jagielski 131*b1cdbd2cSJim Jagielski // move the controls to the appropriate positions 132*b1cdbd2cSJim Jagielski Point aPos( m_aTopLine.GetPosPixel() ); 133*b1cdbd2cSJim Jagielski aPos.Move( 0, m_aTopLine.GetSizePixel().Height() ); 134*b1cdbd2cSJim Jagielski Size aFirstDistance( LogicToPixel( Size( INDENTED_X, RELATED_CONTROLS ), MAP_APPFONT ) ); 135*b1cdbd2cSJim Jagielski aPos.Move( aFirstDistance.Width(), aFirstDistance.Height() ); 136*b1cdbd2cSJim Jagielski 137*b1cdbd2cSJim Jagielski Size aUnrelatedControls( LogicToPixel( Size( RELATED_CONTROLS, RELATED_CONTROLS ), MAP_APPFONT ) ); 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski for ( BooleanSettingDescs::const_iterator setting = m_aBooleanSettings.begin(); 140*b1cdbd2cSJim Jagielski setting != m_aBooleanSettings.end(); 141*b1cdbd2cSJim Jagielski ++setting 142*b1cdbd2cSJim Jagielski ) 143*b1cdbd2cSJim Jagielski { 144*b1cdbd2cSJim Jagielski if ( !*setting->ppControl ) 145*b1cdbd2cSJim Jagielski continue; 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski (*setting->ppControl)->SetPosPixel( aPos ); 148*b1cdbd2cSJim Jagielski aPos.Move( 0, (*setting->ppControl)->GetSizePixel().Height() ); 149*b1cdbd2cSJim Jagielski aPos.Move( 0, aUnrelatedControls.Height() ); 150*b1cdbd2cSJim Jagielski } 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski // create the controls for the boolean comparison mode 153*b1cdbd2cSJim Jagielski if ( m_bHasBooleanComparisonMode ) 154*b1cdbd2cSJim Jagielski { 155*b1cdbd2cSJim Jagielski m_pBooleanComparisonModeLabel = new FixedText( this, ModuleRes( FT_BOOLEANCOMPARISON ) ); 156*b1cdbd2cSJim Jagielski m_pBooleanComparisonMode = new ListBox( this, ModuleRes( LB_BOOLEANCOMPARISON ) ); 157*b1cdbd2cSJim Jagielski m_pBooleanComparisonMode->SetDropDownLineCount( 4 ); 158*b1cdbd2cSJim Jagielski m_pBooleanComparisonMode->SetSelectHdl( getControlModifiedLink() ); 159*b1cdbd2cSJim Jagielski 160*b1cdbd2cSJim Jagielski Point aLabelPos( m_pBooleanComparisonModeLabel->GetPosPixel() ); 161*b1cdbd2cSJim Jagielski Point aControlPos( m_pBooleanComparisonMode->GetPosPixel() ); 162*b1cdbd2cSJim Jagielski long nMoveUp = aControlPos.Y() - aPos.Y(); 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski m_pBooleanComparisonModeLabel->SetPosPixel( Point( aLabelPos.X(), aLabelPos.Y() - nMoveUp ) ); 165*b1cdbd2cSJim Jagielski m_pBooleanComparisonMode->SetPosPixel( Point( aControlPos.X(), aControlPos.Y() - nMoveUp ) ); 166*b1cdbd2cSJim Jagielski } 167*b1cdbd2cSJim Jagielski // create the controls for the max row scan 168*b1cdbd2cSJim Jagielski if ( m_bHasMaxRowScan ) 169*b1cdbd2cSJim Jagielski { 170*b1cdbd2cSJim Jagielski m_pMaxRowScanLabel = new FixedText( this, ModuleRes( FT_MAXROWSCAN ) ); 171*b1cdbd2cSJim Jagielski m_pMaxRowScan = new NumericField( this, ModuleRes( NF_MAXROWSCAN ) ); 172*b1cdbd2cSJim Jagielski m_pMaxRowScan->SetModifyHdl(getControlModifiedLink()); 173*b1cdbd2cSJim Jagielski m_pMaxRowScan->SetUseThousandSep(sal_False); 174*b1cdbd2cSJim Jagielski 175*b1cdbd2cSJim Jagielski Point aLabelPos( m_pMaxRowScanLabel->GetPosPixel() ); 176*b1cdbd2cSJim Jagielski Point aControlPos( m_pMaxRowScan->GetPosPixel() ); 177*b1cdbd2cSJim Jagielski long nMoveUp = aControlPos.Y() - aPos.Y(); 178*b1cdbd2cSJim Jagielski 179*b1cdbd2cSJim Jagielski m_pMaxRowScanLabel->SetPosPixel( Point( aLabelPos.X(), aLabelPos.Y() - nMoveUp ) ); 180*b1cdbd2cSJim Jagielski m_pMaxRowScan->SetPosPixel( Point( aControlPos.X(), aControlPos.Y() - nMoveUp ) ); 181*b1cdbd2cSJim Jagielski } 182*b1cdbd2cSJim Jagielski 183*b1cdbd2cSJim Jagielski FreeResource(); 184*b1cdbd2cSJim Jagielski } 185*b1cdbd2cSJim Jagielski 186*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- ~SpecialSettingsPage()187*b1cdbd2cSJim Jagielski SpecialSettingsPage::~SpecialSettingsPage() 188*b1cdbd2cSJim Jagielski { 189*b1cdbd2cSJim Jagielski m_aControlDependencies.clear(); 190*b1cdbd2cSJim Jagielski 191*b1cdbd2cSJim Jagielski DELETEZ( m_pIsSQL92Check ); 192*b1cdbd2cSJim Jagielski DELETEZ( m_pAppendTableAlias ); 193*b1cdbd2cSJim Jagielski DELETEZ( m_pAsBeforeCorrelationName ); 194*b1cdbd2cSJim Jagielski DELETEZ( m_pParameterSubstitution ); 195*b1cdbd2cSJim Jagielski DELETEZ( m_pIgnoreDriverPrivileges ); 196*b1cdbd2cSJim Jagielski DELETEZ( m_pSuppressVersionColumn ); 197*b1cdbd2cSJim Jagielski DELETEZ( m_pEnableOuterJoin ); 198*b1cdbd2cSJim Jagielski DELETEZ( m_pCatalog ); 199*b1cdbd2cSJim Jagielski DELETEZ( m_pSchema ); 200*b1cdbd2cSJim Jagielski DELETEZ( m_pIndexAppendix ); 201*b1cdbd2cSJim Jagielski DELETEZ( m_pDosLineEnds ); 202*b1cdbd2cSJim Jagielski DELETEZ( m_pCheckRequiredFields ); 203*b1cdbd2cSJim Jagielski DELETEZ( m_pIgnoreCurrency ); 204*b1cdbd2cSJim Jagielski DELETEZ( m_pEscapeDateTime ); 205*b1cdbd2cSJim Jagielski DELETEZ( m_pPrimaryKeySupport ); 206*b1cdbd2cSJim Jagielski DELETEZ( m_pRespectDriverResultSetType ); 207*b1cdbd2cSJim Jagielski DELETEZ( m_pBooleanComparisonModeLabel ); 208*b1cdbd2cSJim Jagielski DELETEZ( m_pBooleanComparisonMode ); 209*b1cdbd2cSJim Jagielski DELETEZ( m_pMaxRowScanLabel ); 210*b1cdbd2cSJim Jagielski DELETEZ( m_pMaxRowScan ); 211*b1cdbd2cSJim Jagielski } 212*b1cdbd2cSJim Jagielski 213*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- impl_initBooleanSettings()214*b1cdbd2cSJim Jagielski void SpecialSettingsPage::impl_initBooleanSettings() 215*b1cdbd2cSJim Jagielski { 216*b1cdbd2cSJim Jagielski OSL_PRECOND( m_aBooleanSettings.empty(), "SpecialSettingsPage::impl_initBooleanSettings: called twice!" ); 217*b1cdbd2cSJim Jagielski 218*b1cdbd2cSJim Jagielski // for easier maintainance, write the table in this form, then copy it to m_aBooleanSettings 219*b1cdbd2cSJim Jagielski BooleanSettingDesc aSettings[] = { 220*b1cdbd2cSJim Jagielski { &m_pIsSQL92Check, CB_SQL92CHECK, DSID_SQL92CHECK, false }, 221*b1cdbd2cSJim Jagielski { &m_pAppendTableAlias, CB_APPENDTABLEALIAS, DSID_APPEND_TABLE_ALIAS, false }, 222*b1cdbd2cSJim Jagielski { &m_pAsBeforeCorrelationName, CB_AS_BEFORE_CORR_NAME, DSID_AS_BEFORE_CORRNAME, false }, 223*b1cdbd2cSJim Jagielski { &m_pEnableOuterJoin, CB_ENABLEOUTERJOIN, DSID_ENABLEOUTERJOIN, false }, 224*b1cdbd2cSJim Jagielski { &m_pIgnoreDriverPrivileges, CB_IGNOREDRIVER_PRIV, DSID_IGNOREDRIVER_PRIV, false }, 225*b1cdbd2cSJim Jagielski { &m_pParameterSubstitution, CB_PARAMETERNAMESUBST, DSID_PARAMETERNAMESUBST, false }, 226*b1cdbd2cSJim Jagielski { &m_pSuppressVersionColumn, CB_SUPPRESVERSIONCL, DSID_SUPPRESSVERSIONCL, true }, 227*b1cdbd2cSJim Jagielski { &m_pCatalog, CB_CATALOG, DSID_CATALOG, false }, 228*b1cdbd2cSJim Jagielski { &m_pSchema, CB_SCHEMA, DSID_SCHEMA, false }, 229*b1cdbd2cSJim Jagielski { &m_pIndexAppendix, CB_IGNOREINDEXAPPENDIX, DSID_INDEXAPPENDIX, false }, 230*b1cdbd2cSJim Jagielski { &m_pDosLineEnds, CB_DOSLINEENDS, DSID_DOSLINEENDS, false }, 231*b1cdbd2cSJim Jagielski { &m_pCheckRequiredFields, CB_CHECK_REQUIRED, DSID_CHECK_REQUIRED_FIELDS, false }, 232*b1cdbd2cSJim Jagielski { &m_pIgnoreCurrency, CB_IGNORECURRENCY, DSID_IGNORECURRENCY, false }, 233*b1cdbd2cSJim Jagielski { &m_pEscapeDateTime, CB_ESCAPE_DATETIME, DSID_ESCAPE_DATETIME, false }, 234*b1cdbd2cSJim Jagielski { &m_pPrimaryKeySupport, CB_PRIMARY_KEY_SUPPORT, DSID_PRIMARY_KEY_SUPPORT, false }, 235*b1cdbd2cSJim Jagielski { &m_pRespectDriverResultSetType, CB_RESPECTRESULTSETTYPE,DSID_RESPECTRESULTSETTYPE, false }, 236*b1cdbd2cSJim Jagielski { NULL, 0, 0, false } 237*b1cdbd2cSJim Jagielski }; 238*b1cdbd2cSJim Jagielski 239*b1cdbd2cSJim Jagielski for ( const BooleanSettingDesc* pCopy = aSettings; pCopy->nItemId != 0; ++pCopy ) 240*b1cdbd2cSJim Jagielski { 241*b1cdbd2cSJim Jagielski m_aBooleanSettings.push_back( *pCopy ); 242*b1cdbd2cSJim Jagielski } 243*b1cdbd2cSJim Jagielski } 244*b1cdbd2cSJim Jagielski 245*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- fillWindows(::std::vector<ISaveValueWrapper * > & _rControlList)246*b1cdbd2cSJim Jagielski void SpecialSettingsPage::fillWindows( ::std::vector< ISaveValueWrapper* >& _rControlList ) 247*b1cdbd2cSJim Jagielski { 248*b1cdbd2cSJim Jagielski if ( m_bHasBooleanComparisonMode ) 249*b1cdbd2cSJim Jagielski { 250*b1cdbd2cSJim Jagielski _rControlList.push_back( new ODisableWrapper< FixedText >( m_pBooleanComparisonModeLabel ) ); 251*b1cdbd2cSJim Jagielski } 252*b1cdbd2cSJim Jagielski if ( m_bHasMaxRowScan ) 253*b1cdbd2cSJim Jagielski { 254*b1cdbd2cSJim Jagielski _rControlList.push_back( new ODisableWrapper< FixedText >( m_pMaxRowScanLabel ) ); 255*b1cdbd2cSJim Jagielski } 256*b1cdbd2cSJim Jagielski } 257*b1cdbd2cSJim Jagielski 258*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- fillControls(::std::vector<ISaveValueWrapper * > & _rControlList)259*b1cdbd2cSJim Jagielski void SpecialSettingsPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList) 260*b1cdbd2cSJim Jagielski { 261*b1cdbd2cSJim Jagielski for ( BooleanSettingDescs::const_iterator setting = m_aBooleanSettings.begin(); 262*b1cdbd2cSJim Jagielski setting != m_aBooleanSettings.end(); 263*b1cdbd2cSJim Jagielski ++setting 264*b1cdbd2cSJim Jagielski ) 265*b1cdbd2cSJim Jagielski { 266*b1cdbd2cSJim Jagielski if ( *setting->ppControl ) 267*b1cdbd2cSJim Jagielski { 268*b1cdbd2cSJim Jagielski _rControlList.push_back( new OSaveValueWrapper< CheckBox >( *setting->ppControl ) ); 269*b1cdbd2cSJim Jagielski } 270*b1cdbd2cSJim Jagielski } 271*b1cdbd2cSJim Jagielski 272*b1cdbd2cSJim Jagielski if ( m_bHasBooleanComparisonMode ) 273*b1cdbd2cSJim Jagielski _rControlList.push_back( new OSaveValueWrapper< ListBox >( m_pBooleanComparisonMode ) ); 274*b1cdbd2cSJim Jagielski if ( m_bHasMaxRowScan ) 275*b1cdbd2cSJim Jagielski _rControlList.push_back(new OSaveValueWrapper<NumericField>(m_pMaxRowScan)); 276*b1cdbd2cSJim Jagielski } 277*b1cdbd2cSJim Jagielski 278*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- implInitControls(const SfxItemSet & _rSet,sal_Bool _bSaveValue)279*b1cdbd2cSJim Jagielski void SpecialSettingsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) 280*b1cdbd2cSJim Jagielski { 281*b1cdbd2cSJim Jagielski // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) 282*b1cdbd2cSJim Jagielski sal_Bool bValid, bReadonly; 283*b1cdbd2cSJim Jagielski getFlags( _rSet, bValid, bReadonly ); 284*b1cdbd2cSJim Jagielski 285*b1cdbd2cSJim Jagielski if ( !bValid ) 286*b1cdbd2cSJim Jagielski { 287*b1cdbd2cSJim Jagielski OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); 288*b1cdbd2cSJim Jagielski return; 289*b1cdbd2cSJim Jagielski } 290*b1cdbd2cSJim Jagielski 291*b1cdbd2cSJim Jagielski // the boolean items 292*b1cdbd2cSJim Jagielski for ( BooleanSettingDescs::const_iterator setting = m_aBooleanSettings.begin(); 293*b1cdbd2cSJim Jagielski setting != m_aBooleanSettings.end(); 294*b1cdbd2cSJim Jagielski ++setting 295*b1cdbd2cSJim Jagielski ) 296*b1cdbd2cSJim Jagielski { 297*b1cdbd2cSJim Jagielski if ( !*setting->ppControl ) 298*b1cdbd2cSJim Jagielski continue; 299*b1cdbd2cSJim Jagielski 300*b1cdbd2cSJim Jagielski ::boost::optional< bool > aValue; 301*b1cdbd2cSJim Jagielski 302*b1cdbd2cSJim Jagielski SFX_ITEMSET_GET( _rSet, pItem, SfxPoolItem, setting->nItemId, sal_True ); 303*b1cdbd2cSJim Jagielski if ( pItem->ISA( SfxBoolItem ) ) 304*b1cdbd2cSJim Jagielski { 305*b1cdbd2cSJim Jagielski aValue.reset( PTR_CAST( SfxBoolItem, pItem )->GetValue() ); 306*b1cdbd2cSJim Jagielski } 307*b1cdbd2cSJim Jagielski else if ( pItem->ISA( OptionalBoolItem ) ) 308*b1cdbd2cSJim Jagielski { 309*b1cdbd2cSJim Jagielski aValue = PTR_CAST( OptionalBoolItem, pItem )->GetFullValue(); 310*b1cdbd2cSJim Jagielski } 311*b1cdbd2cSJim Jagielski else 312*b1cdbd2cSJim Jagielski DBG_ERROR( "SpecialSettingsPage::implInitControls: unknown boolean item type!" ); 313*b1cdbd2cSJim Jagielski 314*b1cdbd2cSJim Jagielski if ( !aValue ) 315*b1cdbd2cSJim Jagielski { 316*b1cdbd2cSJim Jagielski (*setting->ppControl)->SetState( STATE_DONTKNOW ); 317*b1cdbd2cSJim Jagielski } 318*b1cdbd2cSJim Jagielski else 319*b1cdbd2cSJim Jagielski { 320*b1cdbd2cSJim Jagielski sal_Bool bValue = *aValue; 321*b1cdbd2cSJim Jagielski if ( setting->bInvertedDisplay ) 322*b1cdbd2cSJim Jagielski bValue = !bValue; 323*b1cdbd2cSJim Jagielski (*setting->ppControl)->Check( bValue ); 324*b1cdbd2cSJim Jagielski } 325*b1cdbd2cSJim Jagielski } 326*b1cdbd2cSJim Jagielski 327*b1cdbd2cSJim Jagielski // the non-boolean items 328*b1cdbd2cSJim Jagielski if ( m_bHasBooleanComparisonMode ) 329*b1cdbd2cSJim Jagielski { 330*b1cdbd2cSJim Jagielski SFX_ITEMSET_GET( _rSet, pBooleanComparison, SfxInt32Item, DSID_BOOLEANCOMPARISON, sal_True ); 331*b1cdbd2cSJim Jagielski m_pBooleanComparisonMode->SelectEntryPos( static_cast< sal_uInt16 >( pBooleanComparison->GetValue() ) ); 332*b1cdbd2cSJim Jagielski } 333*b1cdbd2cSJim Jagielski 334*b1cdbd2cSJim Jagielski if ( m_bHasMaxRowScan ) 335*b1cdbd2cSJim Jagielski { 336*b1cdbd2cSJim Jagielski SFX_ITEMSET_GET(_rSet, pMaxRowScan, SfxInt32Item, DSID_MAX_ROW_SCAN, sal_True); 337*b1cdbd2cSJim Jagielski m_pMaxRowScan->SetValue(pMaxRowScan->GetValue()); 338*b1cdbd2cSJim Jagielski } 339*b1cdbd2cSJim Jagielski 340*b1cdbd2cSJim Jagielski OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); 341*b1cdbd2cSJim Jagielski } 342*b1cdbd2cSJim Jagielski 343*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- FillItemSet(SfxItemSet & _rSet)344*b1cdbd2cSJim Jagielski sal_Bool SpecialSettingsPage::FillItemSet( SfxItemSet& _rSet ) 345*b1cdbd2cSJim Jagielski { 346*b1cdbd2cSJim Jagielski sal_Bool bChangedSomething = sal_False; 347*b1cdbd2cSJim Jagielski 348*b1cdbd2cSJim Jagielski // the boolean items 349*b1cdbd2cSJim Jagielski for ( BooleanSettingDescs::const_iterator setting = m_aBooleanSettings.begin(); 350*b1cdbd2cSJim Jagielski setting != m_aBooleanSettings.end(); 351*b1cdbd2cSJim Jagielski ++setting 352*b1cdbd2cSJim Jagielski ) 353*b1cdbd2cSJim Jagielski { 354*b1cdbd2cSJim Jagielski if ( !*setting->ppControl ) 355*b1cdbd2cSJim Jagielski continue; 356*b1cdbd2cSJim Jagielski fillBool( _rSet, *setting->ppControl, setting->nItemId, bChangedSomething, setting->bInvertedDisplay ); 357*b1cdbd2cSJim Jagielski } 358*b1cdbd2cSJim Jagielski 359*b1cdbd2cSJim Jagielski // the non-boolean items 360*b1cdbd2cSJim Jagielski if ( m_bHasBooleanComparisonMode ) 361*b1cdbd2cSJim Jagielski { 362*b1cdbd2cSJim Jagielski if ( m_pBooleanComparisonMode->GetSelectEntryPos() != m_pBooleanComparisonMode->GetSavedValue() ) 363*b1cdbd2cSJim Jagielski { 364*b1cdbd2cSJim Jagielski _rSet.Put( SfxInt32Item( DSID_BOOLEANCOMPARISON, m_pBooleanComparisonMode->GetSelectEntryPos() ) ); 365*b1cdbd2cSJim Jagielski bChangedSomething = sal_True; 366*b1cdbd2cSJim Jagielski } 367*b1cdbd2cSJim Jagielski } 368*b1cdbd2cSJim Jagielski if ( m_bHasMaxRowScan ) 369*b1cdbd2cSJim Jagielski { 370*b1cdbd2cSJim Jagielski fillInt32(_rSet,m_pMaxRowScan,DSID_MAX_ROW_SCAN,bChangedSomething); 371*b1cdbd2cSJim Jagielski } 372*b1cdbd2cSJim Jagielski return bChangedSomething; 373*b1cdbd2cSJim Jagielski } 374*b1cdbd2cSJim Jagielski 375*b1cdbd2cSJim Jagielski //======================================================================== 376*b1cdbd2cSJim Jagielski //= GeneratedValuesPage 377*b1cdbd2cSJim Jagielski //======================================================================== 378*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ GeneratedValuesPage(Window * pParent,const SfxItemSet & _rCoreAttrs)379*b1cdbd2cSJim Jagielski GeneratedValuesPage::GeneratedValuesPage( Window* pParent, const SfxItemSet& _rCoreAttrs ) 380*b1cdbd2cSJim Jagielski :OGenericAdministrationPage(pParent, ModuleRes( PAGE_GENERATED_VALUES ), _rCoreAttrs) 381*b1cdbd2cSJim Jagielski ,m_aAutoFixedLine ( this, ModuleRes( FL_SEPARATORAUTO ) ) 382*b1cdbd2cSJim Jagielski ,m_aAutoRetrievingEnabled( this, ModuleRes( CB_RETRIEVE_AUTO ) ) 383*b1cdbd2cSJim Jagielski ,m_aAutoIncrementLabel ( this, ModuleRes( FT_AUTOINCREMENTVALUE ) ) 384*b1cdbd2cSJim Jagielski ,m_aAutoIncrement ( this, ModuleRes( ET_AUTOINCREMENTVALUE ) ) 385*b1cdbd2cSJim Jagielski ,m_aAutoRetrievingLabel ( this, ModuleRes( FT_RETRIEVE_AUTO ) ) 386*b1cdbd2cSJim Jagielski ,m_aAutoRetrieving ( this, ModuleRes( ET_RETRIEVE_AUTO ) ) 387*b1cdbd2cSJim Jagielski { 388*b1cdbd2cSJim Jagielski m_aAutoRetrievingEnabled.SetClickHdl( getControlModifiedLink() ); 389*b1cdbd2cSJim Jagielski m_aAutoIncrement.SetModifyHdl( getControlModifiedLink() ); 390*b1cdbd2cSJim Jagielski m_aAutoRetrieving.SetModifyHdl( getControlModifiedLink() ); 391*b1cdbd2cSJim Jagielski 392*b1cdbd2cSJim Jagielski m_aControlDependencies.enableOnCheckMark( m_aAutoRetrievingEnabled, 393*b1cdbd2cSJim Jagielski m_aAutoIncrementLabel, m_aAutoIncrement, m_aAutoRetrievingLabel, m_aAutoRetrieving ); 394*b1cdbd2cSJim Jagielski 395*b1cdbd2cSJim Jagielski FreeResource(); 396*b1cdbd2cSJim Jagielski } 397*b1cdbd2cSJim Jagielski 398*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- ~GeneratedValuesPage()399*b1cdbd2cSJim Jagielski GeneratedValuesPage::~GeneratedValuesPage() 400*b1cdbd2cSJim Jagielski { 401*b1cdbd2cSJim Jagielski m_aControlDependencies.clear(); 402*b1cdbd2cSJim Jagielski } 403*b1cdbd2cSJim Jagielski 404*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- fillWindows(::std::vector<ISaveValueWrapper * > & _rControlList)405*b1cdbd2cSJim Jagielski void GeneratedValuesPage::fillWindows( ::std::vector< ISaveValueWrapper* >& _rControlList ) 406*b1cdbd2cSJim Jagielski { 407*b1cdbd2cSJim Jagielski _rControlList.push_back( new ODisableWrapper< FixedLine >( &m_aAutoFixedLine ) ); 408*b1cdbd2cSJim Jagielski _rControlList.push_back( new ODisableWrapper< FixedText >( &m_aAutoIncrementLabel ) ); 409*b1cdbd2cSJim Jagielski _rControlList.push_back( new ODisableWrapper< FixedText >( &m_aAutoRetrievingLabel ) ); 410*b1cdbd2cSJim Jagielski } 411*b1cdbd2cSJim Jagielski 412*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- fillControls(::std::vector<ISaveValueWrapper * > & _rControlList)413*b1cdbd2cSJim Jagielski void GeneratedValuesPage::fillControls( ::std::vector< ISaveValueWrapper* >& _rControlList ) 414*b1cdbd2cSJim Jagielski { 415*b1cdbd2cSJim Jagielski _rControlList.push_back( new OSaveValueWrapper< CheckBox >( &m_aAutoRetrievingEnabled ) ); 416*b1cdbd2cSJim Jagielski _rControlList.push_back( new OSaveValueWrapper< Edit >( &m_aAutoIncrement ) ); 417*b1cdbd2cSJim Jagielski _rControlList.push_back( new OSaveValueWrapper< Edit >( &m_aAutoRetrieving ) ); 418*b1cdbd2cSJim Jagielski } 419*b1cdbd2cSJim Jagielski 420*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- implInitControls(const SfxItemSet & _rSet,sal_Bool _bSaveValue)421*b1cdbd2cSJim Jagielski void GeneratedValuesPage::implInitControls( const SfxItemSet& _rSet, sal_Bool _bSaveValue ) 422*b1cdbd2cSJim Jagielski { 423*b1cdbd2cSJim Jagielski // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa) 424*b1cdbd2cSJim Jagielski sal_Bool bValid, bReadonly; 425*b1cdbd2cSJim Jagielski getFlags(_rSet, bValid, bReadonly); 426*b1cdbd2cSJim Jagielski 427*b1cdbd2cSJim Jagielski // collect the items 428*b1cdbd2cSJim Jagielski SFX_ITEMSET_GET(_rSet, pAutoIncrementItem, SfxStringItem, DSID_AUTOINCREMENTVALUE, sal_True); 429*b1cdbd2cSJim Jagielski SFX_ITEMSET_GET(_rSet, pAutoRetrieveValueItem, SfxStringItem, DSID_AUTORETRIEVEVALUE, sal_True); 430*b1cdbd2cSJim Jagielski SFX_ITEMSET_GET(_rSet, pAutoRetrieveEnabledItem, SfxBoolItem, DSID_AUTORETRIEVEENABLED, sal_True); 431*b1cdbd2cSJim Jagielski 432*b1cdbd2cSJim Jagielski // forward the values to the controls 433*b1cdbd2cSJim Jagielski if (bValid) 434*b1cdbd2cSJim Jagielski { 435*b1cdbd2cSJim Jagielski sal_Bool bEnabled = pAutoRetrieveEnabledItem->GetValue(); 436*b1cdbd2cSJim Jagielski m_aAutoRetrievingEnabled.Check( bEnabled ); 437*b1cdbd2cSJim Jagielski 438*b1cdbd2cSJim Jagielski m_aAutoIncrement.SetText( pAutoIncrementItem->GetValue() ); 439*b1cdbd2cSJim Jagielski m_aAutoIncrement.ClearModifyFlag(); 440*b1cdbd2cSJim Jagielski m_aAutoRetrieving.SetText( pAutoRetrieveValueItem->GetValue() ); 441*b1cdbd2cSJim Jagielski m_aAutoRetrieving.ClearModifyFlag(); 442*b1cdbd2cSJim Jagielski } 443*b1cdbd2cSJim Jagielski OGenericAdministrationPage::implInitControls( _rSet, _bSaveValue ); 444*b1cdbd2cSJim Jagielski } 445*b1cdbd2cSJim Jagielski 446*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- FillItemSet(SfxItemSet & _rSet)447*b1cdbd2cSJim Jagielski sal_Bool GeneratedValuesPage::FillItemSet(SfxItemSet& _rSet) 448*b1cdbd2cSJim Jagielski { 449*b1cdbd2cSJim Jagielski sal_Bool bChangedSomething = sal_False; 450*b1cdbd2cSJim Jagielski 451*b1cdbd2cSJim Jagielski fillString( _rSet, &m_aAutoIncrement, DSID_AUTOINCREMENTVALUE, bChangedSomething ); 452*b1cdbd2cSJim Jagielski fillBool( _rSet, &m_aAutoRetrievingEnabled, DSID_AUTORETRIEVEENABLED, bChangedSomething ); 453*b1cdbd2cSJim Jagielski fillString( _rSet, &m_aAutoRetrieving, DSID_AUTORETRIEVEVALUE, bChangedSomething ); 454*b1cdbd2cSJim Jagielski 455*b1cdbd2cSJim Jagielski return bChangedSomething; 456*b1cdbd2cSJim Jagielski } 457*b1cdbd2cSJim Jagielski 458*b1cdbd2cSJim Jagielski //======================================================================== 459*b1cdbd2cSJim Jagielski //= AdvancedSettingsDialog 460*b1cdbd2cSJim Jagielski //======================================================================== 461*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ AdvancedSettingsDialog(Window * _pParent,SfxItemSet * _pItems,const Reference<XMultiServiceFactory> & _rxORB,const Any & _aDataSourceName)462*b1cdbd2cSJim Jagielski AdvancedSettingsDialog::AdvancedSettingsDialog( Window* _pParent, SfxItemSet* _pItems, 463*b1cdbd2cSJim Jagielski const Reference< XMultiServiceFactory >& _rxORB, const Any& _aDataSourceName ) 464*b1cdbd2cSJim Jagielski :SfxTabDialog(_pParent, ModuleRes(DLG_DATABASE_ADVANCED), _pItems) 465*b1cdbd2cSJim Jagielski ,m_pItemSet(_pItems) 466*b1cdbd2cSJim Jagielski { 467*b1cdbd2cSJim Jagielski m_pImpl = ::std::auto_ptr<ODbDataSourceAdministrationHelper>(new ODbDataSourceAdministrationHelper(_rxORB,_pParent,this)); 468*b1cdbd2cSJim Jagielski m_pImpl->setDataSourceOrName(_aDataSourceName); 469*b1cdbd2cSJim Jagielski Reference< XPropertySet > xDatasource = m_pImpl->getCurrentDataSource(); 470*b1cdbd2cSJim Jagielski m_pImpl->translateProperties(xDatasource, *_pItems); 471*b1cdbd2cSJim Jagielski SetInputSet(_pItems); 472*b1cdbd2cSJim Jagielski // propagate this set as our new input set and reset the example set 473*b1cdbd2cSJim Jagielski delete pExampleSet; 474*b1cdbd2cSJim Jagielski pExampleSet = new SfxItemSet(*GetInputSetImpl()); 475*b1cdbd2cSJim Jagielski 476*b1cdbd2cSJim Jagielski const ::rtl::OUString eType = m_pImpl->getDatasourceType(*_pItems); 477*b1cdbd2cSJim Jagielski 478*b1cdbd2cSJim Jagielski DataSourceMetaData aMeta( eType ); 479*b1cdbd2cSJim Jagielski const FeatureSet& rFeatures( aMeta.getFeatureSet() ); 480*b1cdbd2cSJim Jagielski 481*b1cdbd2cSJim Jagielski // auto-generated values? 482*b1cdbd2cSJim Jagielski if ( rFeatures.supportsGeneratedValues() ) 483*b1cdbd2cSJim Jagielski AddTabPage( PAGE_GENERATED_VALUES, String( ModuleRes( STR_GENERATED_VALUE ) ), ODriversSettings::CreateGeneratedValuesPage, NULL ); 484*b1cdbd2cSJim Jagielski 485*b1cdbd2cSJim Jagielski // any "special settings"? 486*b1cdbd2cSJim Jagielski if ( rFeatures.supportsAnySpecialSetting() ) 487*b1cdbd2cSJim Jagielski AddTabPage( PAGE_ADVANCED_SETTINGS_SPECIAL, String( ModuleRes( STR_DS_BEHAVIOUR ) ), ODriversSettings::CreateSpecialSettingsPage, NULL ); 488*b1cdbd2cSJim Jagielski 489*b1cdbd2cSJim Jagielski // remove the reset button - it's meaning is much too ambiguous in this dialog 490*b1cdbd2cSJim Jagielski RemoveResetButton(); 491*b1cdbd2cSJim Jagielski FreeResource(); 492*b1cdbd2cSJim Jagielski } 493*b1cdbd2cSJim Jagielski 494*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- ~AdvancedSettingsDialog()495*b1cdbd2cSJim Jagielski AdvancedSettingsDialog::~AdvancedSettingsDialog() 496*b1cdbd2cSJim Jagielski { 497*b1cdbd2cSJim Jagielski SetInputSet(NULL); 498*b1cdbd2cSJim Jagielski DELETEZ(pExampleSet); 499*b1cdbd2cSJim Jagielski } 500*b1cdbd2cSJim Jagielski 501*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- doesHaveAnyAdvancedSettings(const::rtl::OUString & _sURL)502*b1cdbd2cSJim Jagielski bool AdvancedSettingsDialog::doesHaveAnyAdvancedSettings( const ::rtl::OUString& _sURL ) 503*b1cdbd2cSJim Jagielski { 504*b1cdbd2cSJim Jagielski DataSourceMetaData aMeta( _sURL ); 505*b1cdbd2cSJim Jagielski const FeatureSet& rFeatures( aMeta.getFeatureSet() ); 506*b1cdbd2cSJim Jagielski if ( rFeatures.supportsGeneratedValues() || rFeatures.supportsAnySpecialSetting() ) 507*b1cdbd2cSJim Jagielski return true; 508*b1cdbd2cSJim Jagielski return false; 509*b1cdbd2cSJim Jagielski } 510*b1cdbd2cSJim Jagielski 511*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- Execute()512*b1cdbd2cSJim Jagielski short AdvancedSettingsDialog::Execute() 513*b1cdbd2cSJim Jagielski { 514*b1cdbd2cSJim Jagielski short nRet = SfxTabDialog::Execute(); 515*b1cdbd2cSJim Jagielski if ( nRet == RET_OK ) 516*b1cdbd2cSJim Jagielski { 517*b1cdbd2cSJim Jagielski pExampleSet->Put(*GetOutputItemSet()); 518*b1cdbd2cSJim Jagielski m_pImpl->saveChanges(*pExampleSet); 519*b1cdbd2cSJim Jagielski } 520*b1cdbd2cSJim Jagielski return nRet; 521*b1cdbd2cSJim Jagielski } 522*b1cdbd2cSJim Jagielski 523*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- PageCreated(sal_uInt16 _nId,SfxTabPage & _rPage)524*b1cdbd2cSJim Jagielski void AdvancedSettingsDialog::PageCreated(sal_uInt16 _nId, SfxTabPage& _rPage) 525*b1cdbd2cSJim Jagielski { 526*b1cdbd2cSJim Jagielski // register ourself as modified listener 527*b1cdbd2cSJim Jagielski static_cast<OGenericAdministrationPage&>(_rPage).SetServiceFactory(m_pImpl->getORB()); 528*b1cdbd2cSJim Jagielski static_cast<OGenericAdministrationPage&>(_rPage).SetAdminDialog(this,this); 529*b1cdbd2cSJim Jagielski 530*b1cdbd2cSJim Jagielski AdjustLayout(); 531*b1cdbd2cSJim Jagielski Window *pWin = GetViewWindow(); 532*b1cdbd2cSJim Jagielski if(pWin) 533*b1cdbd2cSJim Jagielski pWin->Invalidate(); 534*b1cdbd2cSJim Jagielski 535*b1cdbd2cSJim Jagielski SfxTabDialog::PageCreated(_nId, _rPage); 536*b1cdbd2cSJim Jagielski } 537*b1cdbd2cSJim Jagielski 538*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- getOutputSet() const539*b1cdbd2cSJim Jagielski const SfxItemSet* AdvancedSettingsDialog::getOutputSet() const 540*b1cdbd2cSJim Jagielski { 541*b1cdbd2cSJim Jagielski return pExampleSet; 542*b1cdbd2cSJim Jagielski } 543*b1cdbd2cSJim Jagielski 544*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- getWriteOutputSet()545*b1cdbd2cSJim Jagielski SfxItemSet* AdvancedSettingsDialog::getWriteOutputSet() 546*b1cdbd2cSJim Jagielski { 547*b1cdbd2cSJim Jagielski return pExampleSet; 548*b1cdbd2cSJim Jagielski } 549*b1cdbd2cSJim Jagielski 550*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- createConnection()551*b1cdbd2cSJim Jagielski ::std::pair< Reference< XConnection >, sal_Bool > AdvancedSettingsDialog::createConnection() 552*b1cdbd2cSJim Jagielski { 553*b1cdbd2cSJim Jagielski return m_pImpl->createConnection(); 554*b1cdbd2cSJim Jagielski } 555*b1cdbd2cSJim Jagielski 556*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- getORB() const557*b1cdbd2cSJim Jagielski Reference< XMultiServiceFactory > AdvancedSettingsDialog::getORB() const 558*b1cdbd2cSJim Jagielski { 559*b1cdbd2cSJim Jagielski return m_pImpl->getORB(); 560*b1cdbd2cSJim Jagielski } 561*b1cdbd2cSJim Jagielski 562*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- getDriver()563*b1cdbd2cSJim Jagielski Reference< XDriver > AdvancedSettingsDialog::getDriver() 564*b1cdbd2cSJim Jagielski { 565*b1cdbd2cSJim Jagielski return m_pImpl->getDriver(); 566*b1cdbd2cSJim Jagielski } 567*b1cdbd2cSJim Jagielski 568*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- getDatasourceType(const SfxItemSet & _rSet) const569*b1cdbd2cSJim Jagielski ::rtl::OUString AdvancedSettingsDialog::getDatasourceType(const SfxItemSet& _rSet) const 570*b1cdbd2cSJim Jagielski { 571*b1cdbd2cSJim Jagielski return m_pImpl->getDatasourceType(_rSet); 572*b1cdbd2cSJim Jagielski } 573*b1cdbd2cSJim Jagielski 574*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- clearPassword()575*b1cdbd2cSJim Jagielski void AdvancedSettingsDialog::clearPassword() 576*b1cdbd2cSJim Jagielski { 577*b1cdbd2cSJim Jagielski m_pImpl->clearPassword(); 578*b1cdbd2cSJim Jagielski } 579*b1cdbd2cSJim Jagielski 580*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- setTitle(const::rtl::OUString & _sTitle)581*b1cdbd2cSJim Jagielski void AdvancedSettingsDialog::setTitle(const ::rtl::OUString& _sTitle) 582*b1cdbd2cSJim Jagielski { 583*b1cdbd2cSJim Jagielski SetText(_sTitle); 584*b1cdbd2cSJim Jagielski } 585*b1cdbd2cSJim Jagielski 586*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- enableConfirmSettings(bool _bEnable)587*b1cdbd2cSJim Jagielski void AdvancedSettingsDialog::enableConfirmSettings( bool _bEnable ) 588*b1cdbd2cSJim Jagielski { 589*b1cdbd2cSJim Jagielski (void)_bEnable; 590*b1cdbd2cSJim Jagielski } 591*b1cdbd2cSJim Jagielski 592*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- saveDatasource()593*b1cdbd2cSJim Jagielski sal_Bool AdvancedSettingsDialog::saveDatasource() 594*b1cdbd2cSJim Jagielski { 595*b1cdbd2cSJim Jagielski return PrepareLeaveCurrentPage(); 596*b1cdbd2cSJim Jagielski } 597*b1cdbd2cSJim Jagielski 598*b1cdbd2cSJim Jagielski //........................................................................ 599*b1cdbd2cSJim Jagielski } // namespace dbaui 600*b1cdbd2cSJim Jagielski //........................................................................ 601