1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_dbaccess.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #ifndef DBAUI_CONNECTIONPAGESETUP_HXX 32*cdf0e10cSrcweir #include "ConnectionPageSetup.hxx" 33*cdf0e10cSrcweir #endif 34*cdf0e10cSrcweir #ifndef _DBAUI_AUTOCONTROLS_HRC_ 35*cdf0e10cSrcweir #include "AutoControls.hrc" 36*cdf0e10cSrcweir #endif 37*cdf0e10cSrcweir #ifndef _DBAUI_DBADMINSETUP_HRC_ 38*cdf0e10cSrcweir #include "dbadminsetup.hrc" 39*cdf0e10cSrcweir #endif 40*cdf0e10cSrcweir #ifndef _DBU_DLG_HRC_ 41*cdf0e10cSrcweir #include "dbu_dlg.hrc" 42*cdf0e10cSrcweir #endif 43*cdf0e10cSrcweir #ifndef _SFXITEMSET_HXX 44*cdf0e10cSrcweir #include <svl/itemset.hxx> 45*cdf0e10cSrcweir #endif 46*cdf0e10cSrcweir #ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX 47*cdf0e10cSrcweir #include <unotools/pathoptions.hxx> 48*cdf0e10cSrcweir #endif 49*cdf0e10cSrcweir #ifndef _SFXSTRITEM_HXX 50*cdf0e10cSrcweir #include <svl/stritem.hxx> 51*cdf0e10cSrcweir #endif 52*cdf0e10cSrcweir #ifndef _SFXENUMITEM_HXX 53*cdf0e10cSrcweir #include <svl/eitem.hxx> 54*cdf0e10cSrcweir #endif 55*cdf0e10cSrcweir #ifndef _SFXINTITEM_HXX 56*cdf0e10cSrcweir #include <svl/intitem.hxx> 57*cdf0e10cSrcweir #endif 58*cdf0e10cSrcweir #ifndef _DBAUI_DATASOURCEITEMS_HXX_ 59*cdf0e10cSrcweir #include "dsitems.hxx" 60*cdf0e10cSrcweir #endif 61*cdf0e10cSrcweir #ifndef _DBA_DBACCESS_HELPID_HRC_ 62*cdf0e10cSrcweir #include "dbaccess_helpid.hrc" 63*cdf0e10cSrcweir #endif 64*cdf0e10cSrcweir #ifndef _DBAUI_LOCALRESACCESS_HXX_ 65*cdf0e10cSrcweir #include "localresaccess.hxx" 66*cdf0e10cSrcweir #endif 67*cdf0e10cSrcweir #ifndef _OSL_PROCESS_H_ 68*cdf0e10cSrcweir #include <osl/process.h> 69*cdf0e10cSrcweir #endif 70*cdf0e10cSrcweir #ifndef _SV_MSGBOX_HXX 71*cdf0e10cSrcweir #include <vcl/msgbox.hxx> 72*cdf0e10cSrcweir #endif 73*cdf0e10cSrcweir #ifndef _FILEDLGHELPER_HXX 74*cdf0e10cSrcweir #include <sfx2/filedlghelper.hxx> 75*cdf0e10cSrcweir #endif 76*cdf0e10cSrcweir #ifndef _DBAUI_DBADMIN_HXX_ 77*cdf0e10cSrcweir #include "dbadmin.hxx" 78*cdf0e10cSrcweir #endif 79*cdf0e10cSrcweir #ifndef _DBAUI_DBADMIN_HRC_ 80*cdf0e10cSrcweir #include "dbadmin.hrc" 81*cdf0e10cSrcweir #endif 82*cdf0e10cSrcweir #ifndef _COMPHELPER_TYPES_HXX_ 83*cdf0e10cSrcweir #include <comphelper/types.hxx> 84*cdf0e10cSrcweir #endif 85*cdf0e10cSrcweir #ifndef _VCL_STDTEXT_HXX 86*cdf0e10cSrcweir #include <vcl/stdtext.hxx> 87*cdf0e10cSrcweir #endif 88*cdf0e10cSrcweir #ifndef _DBAUI_SQLMESSAGE_HXX_ 89*cdf0e10cSrcweir #include "sqlmessage.hxx" 90*cdf0e10cSrcweir #endif 91*cdf0e10cSrcweir #ifndef _DBAUI_ODBC_CONFIG_HXX_ 92*cdf0e10cSrcweir #include "odbcconfig.hxx" 93*cdf0e10cSrcweir #endif 94*cdf0e10cSrcweir #ifndef _DBAUI_DSSELECT_HXX_ 95*cdf0e10cSrcweir #include "dsselect.hxx" 96*cdf0e10cSrcweir #endif 97*cdf0e10cSrcweir #ifndef SVTOOLS_FILENOTATION_HXX_ 98*cdf0e10cSrcweir #include <svl/filenotation.hxx> 99*cdf0e10cSrcweir #endif 100*cdf0e10cSrcweir #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC 101*cdf0e10cSrcweir #include "dbustrings.hrc" 102*cdf0e10cSrcweir #endif 103*cdf0e10cSrcweir #ifndef _COM_SUN_STAR_UI_DIALOGS_XFOLDERPICKER_HPP_ 104*cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFolderPicker.hpp> 105*cdf0e10cSrcweir #endif 106*cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBC_XROW_HPP_ 107*cdf0e10cSrcweir #include <com/sun/star/sdbc/XRow.hpp> 108*cdf0e10cSrcweir #endif 109*cdf0e10cSrcweir #ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_ 110*cdf0e10cSrcweir #include <com/sun/star/awt/XWindow.hpp> 111*cdf0e10cSrcweir #endif 112*cdf0e10cSrcweir // #106016# ------------------------------------ 113*cdf0e10cSrcweir #ifndef _COM_SUN_STAR_TASK_XINTERACTIONHANDLER_HPP_ 114*cdf0e10cSrcweir #include <com/sun/star/task/XInteractionHandler.hpp> 115*cdf0e10cSrcweir #endif 116*cdf0e10cSrcweir #ifndef _COM_SUN_STAR_TASK_XPROGRESSHANDLER_HPP_ 117*cdf0e10cSrcweir #include <com/sun/star/ucb/XProgressHandler.hpp> 118*cdf0e10cSrcweir #endif 119*cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_ 120*cdf0e10cSrcweir #include <com/sun/star/sdbc/XConnection.hpp> 121*cdf0e10cSrcweir #endif 122*cdf0e10cSrcweir #ifndef DBAUI_TOOLS_HXX 123*cdf0e10cSrcweir #include "UITools.hxx" 124*cdf0e10cSrcweir #endif 125*cdf0e10cSrcweir #ifndef _UNOTOOLS_LOCALFILEHELPER_HXX 126*cdf0e10cSrcweir #include <unotools/localfilehelper.hxx> 127*cdf0e10cSrcweir #endif 128*cdf0e10cSrcweir #ifndef _UNOTOOLS_UCBHELPER_HXX 129*cdf0e10cSrcweir #include <unotools/ucbhelper.hxx> 130*cdf0e10cSrcweir #endif 131*cdf0e10cSrcweir #ifndef _UCBHELPER_COMMANDENVIRONMENT_HXX 132*cdf0e10cSrcweir #include <ucbhelper/commandenvironment.hxx> 133*cdf0e10cSrcweir #endif 134*cdf0e10cSrcweir #ifndef DBAUI_FILEPICKER_INTERACTION_HXX 135*cdf0e10cSrcweir #include "finteraction.hxx" 136*cdf0e10cSrcweir #endif 137*cdf0e10cSrcweir #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_ 138*cdf0e10cSrcweir #include <connectivity/CommonTools.hxx> 139*cdf0e10cSrcweir #endif 140*cdf0e10cSrcweir #ifndef _URLOBJ_HXX 141*cdf0e10cSrcweir #include <tools/urlobj.hxx> 142*cdf0e10cSrcweir #endif 143*cdf0e10cSrcweir #ifndef _SFX_DOCFILT_HACK_HXX 144*cdf0e10cSrcweir #include <sfx2/docfilt.hxx> 145*cdf0e10cSrcweir #endif 146*cdf0e10cSrcweir #ifndef _SV_MNEMONIC_HXX 147*cdf0e10cSrcweir #include <vcl/mnemonic.hxx> 148*cdf0e10cSrcweir #endif 149*cdf0e10cSrcweir 150*cdf0e10cSrcweir //......................................................................... 151*cdf0e10cSrcweir namespace dbaui 152*cdf0e10cSrcweir { 153*cdf0e10cSrcweir //......................................................................... 154*cdf0e10cSrcweir using namespace ::com::sun::star::uno; 155*cdf0e10cSrcweir using namespace ::com::sun::star::ucb; 156*cdf0e10cSrcweir using namespace ::com::sun::star::ui::dialogs; 157*cdf0e10cSrcweir using namespace ::com::sun::star::sdbc; 158*cdf0e10cSrcweir using namespace ::com::sun::star::beans; 159*cdf0e10cSrcweir using namespace ::com::sun::star::lang; 160*cdf0e10cSrcweir using namespace ::com::sun::star::container; 161*cdf0e10cSrcweir using namespace ::dbtools; 162*cdf0e10cSrcweir using namespace ::svt; 163*cdf0e10cSrcweir 164*cdf0e10cSrcweir 165*cdf0e10cSrcweir 166*cdf0e10cSrcweir OGenericAdministrationPage* OConnectionTabPageSetup::CreateDbaseTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) 167*cdf0e10cSrcweir { 168*cdf0e10cSrcweir OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_DBASE, _rAttrSet, STR_DBASE_HELPTEXT, STR_DBASE_HEADERTEXT, STR_DBASE_PATH_OR_FILE); 169*cdf0e10cSrcweir oDBWizardPage->FreeResource(); 170*cdf0e10cSrcweir return oDBWizardPage; 171*cdf0e10cSrcweir } 172*cdf0e10cSrcweir 173*cdf0e10cSrcweir 174*cdf0e10cSrcweir OGenericAdministrationPage* OConnectionTabPageSetup::CreateMSAccessTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) 175*cdf0e10cSrcweir { 176*cdf0e10cSrcweir OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_MSACCESS, _rAttrSet, STR_MSACCESS_HELPTEXT, STR_MSACCESS_HEADERTEXT, STR_MSACCESS_MDB_FILE); 177*cdf0e10cSrcweir oDBWizardPage->FreeResource(); 178*cdf0e10cSrcweir return oDBWizardPage; 179*cdf0e10cSrcweir } 180*cdf0e10cSrcweir 181*cdf0e10cSrcweir OGenericAdministrationPage* OConnectionTabPageSetup::CreateAdabasTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) 182*cdf0e10cSrcweir { 183*cdf0e10cSrcweir OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_ADABAS, _rAttrSet, STR_ADABAS_HELPTEXT, STR_ADABAS_HEADERTEXT, STR_ADABAS_DATABASE_NAME); 184*cdf0e10cSrcweir oDBWizardPage->FreeResource(); 185*cdf0e10cSrcweir return oDBWizardPage; 186*cdf0e10cSrcweir } 187*cdf0e10cSrcweir 188*cdf0e10cSrcweir OGenericAdministrationPage* OConnectionTabPageSetup::CreateADOTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) 189*cdf0e10cSrcweir { 190*cdf0e10cSrcweir OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_ADO, _rAttrSet, STR_ADO_HELPTEXT, STR_ADO_HEADERTEXT, STR_COMMONURL); 191*cdf0e10cSrcweir oDBWizardPage->FreeResource(); 192*cdf0e10cSrcweir return oDBWizardPage; 193*cdf0e10cSrcweir } 194*cdf0e10cSrcweir 195*cdf0e10cSrcweir OGenericAdministrationPage* OConnectionTabPageSetup::CreateODBCTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) 196*cdf0e10cSrcweir { 197*cdf0e10cSrcweir OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_ODBC, _rAttrSet, STR_ODBC_HELPTEXT, STR_ODBC_HEADERTEXT, STR_NAME_OF_ODBC_DATASOURCE); 198*cdf0e10cSrcweir oDBWizardPage->FreeResource(); 199*cdf0e10cSrcweir return oDBWizardPage; 200*cdf0e10cSrcweir } 201*cdf0e10cSrcweir 202*cdf0e10cSrcweir OGenericAdministrationPage* OConnectionTabPageSetup::CreateUserDefinedTabPage( Window* pParent, const SfxItemSet& _rAttrSet ) 203*cdf0e10cSrcweir { 204*cdf0e10cSrcweir OConnectionTabPageSetup* oDBWizardPage = new OConnectionTabPageSetup( pParent, PAGE_DBWIZARD_USERDEFINED, _rAttrSet, USHRT_MAX, USHRT_MAX, STR_COMMONURL); 205*cdf0e10cSrcweir oDBWizardPage->FreeResource(); 206*cdf0e10cSrcweir return oDBWizardPage; 207*cdf0e10cSrcweir } 208*cdf0e10cSrcweir 209*cdf0e10cSrcweir 210*cdf0e10cSrcweir //======================================================================== 211*cdf0e10cSrcweir //= OConnectionTabPageSetup 212*cdf0e10cSrcweir //======================================================================== 213*cdf0e10cSrcweir DBG_NAME(OConnectionTabPageSetup) 214*cdf0e10cSrcweir OConnectionTabPageSetup::OConnectionTabPageSetup(Window* pParent, sal_uInt16 _rId, const SfxItemSet& _rCoreAttrs, sal_uInt16 _nHelpTextResId, sal_uInt16 _nHeaderResId, sal_uInt16 _nUrlResId) 215*cdf0e10cSrcweir :OConnectionHelper(pParent, ModuleRes(_rId), _rCoreAttrs) 216*cdf0e10cSrcweir ,m_bUserGrabFocus(sal_True) 217*cdf0e10cSrcweir ,m_aFT_HelpText(this, ModuleRes(FT_AUTOWIZARDHELPTEXT)) 218*cdf0e10cSrcweir { 219*cdf0e10cSrcweir DBG_CTOR(OConnectionTabPageSetup, NULL); 220*cdf0e10cSrcweir 221*cdf0e10cSrcweir if ( USHRT_MAX != _nHelpTextResId ) 222*cdf0e10cSrcweir { 223*cdf0e10cSrcweir String sHelpText = String(ModuleRes(_nHelpTextResId)); 224*cdf0e10cSrcweir m_aFT_HelpText.SetText(sHelpText); 225*cdf0e10cSrcweir } 226*cdf0e10cSrcweir else 227*cdf0e10cSrcweir m_aFT_HelpText.Hide(); 228*cdf0e10cSrcweir 229*cdf0e10cSrcweir 230*cdf0e10cSrcweir if ( USHRT_MAX != _nHeaderResId ) 231*cdf0e10cSrcweir SetHeaderText(FT_AUTOWIZARDHEADER, _nHeaderResId); 232*cdf0e10cSrcweir 233*cdf0e10cSrcweir if ( USHRT_MAX != _nUrlResId ) 234*cdf0e10cSrcweir { 235*cdf0e10cSrcweir String sLabelText = String(ModuleRes(_nUrlResId)); 236*cdf0e10cSrcweir m_aFT_Connection.SetText(sLabelText); 237*cdf0e10cSrcweir if ( USHRT_MAX == _nHelpTextResId ) 238*cdf0e10cSrcweir { 239*cdf0e10cSrcweir Point aPos = m_aFT_HelpText.GetPosPixel(); 240*cdf0e10cSrcweir Point aFTPos = m_aFT_Connection.GetPosPixel(); 241*cdf0e10cSrcweir Point aEDPos = m_aConnectionURL.GetPosPixel(); 242*cdf0e10cSrcweir Point aPBPos = m_aPB_Connection.GetPosPixel(); 243*cdf0e10cSrcweir 244*cdf0e10cSrcweir aEDPos.Y() = aPos.Y() + aEDPos.Y() - aFTPos.Y(); 245*cdf0e10cSrcweir aPBPos.Y() = aPos.Y() + aPBPos.Y() - aFTPos.Y(); 246*cdf0e10cSrcweir aFTPos.Y() = aPos.Y(); 247*cdf0e10cSrcweir m_aFT_Connection.SetPosPixel(aFTPos); 248*cdf0e10cSrcweir m_aConnectionURL.SetPosPixel(aEDPos); 249*cdf0e10cSrcweir m_aPB_Connection.SetPosPixel(aPBPos); 250*cdf0e10cSrcweir } 251*cdf0e10cSrcweir } 252*cdf0e10cSrcweir else 253*cdf0e10cSrcweir m_aFT_Connection.Hide(); 254*cdf0e10cSrcweir 255*cdf0e10cSrcweir m_aConnectionURL.SetModifyHdl(LINK(this, OConnectionTabPageSetup, OnEditModified)); 256*cdf0e10cSrcweir 257*cdf0e10cSrcweir SetRoadmapStateValue(sal_False); 258*cdf0e10cSrcweir } 259*cdf0e10cSrcweir 260*cdf0e10cSrcweir // ----------------------------------------------------------------------- 261*cdf0e10cSrcweir OConnectionTabPageSetup::~OConnectionTabPageSetup() 262*cdf0e10cSrcweir { 263*cdf0e10cSrcweir DBG_DTOR(OConnectionTabPageSetup,NULL); 264*cdf0e10cSrcweir } 265*cdf0e10cSrcweir 266*cdf0e10cSrcweir // ----------------------------------------------------------------------- 267*cdf0e10cSrcweir void OConnectionTabPageSetup::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) 268*cdf0e10cSrcweir { 269*cdf0e10cSrcweir m_eType = m_pAdminDialog->getDatasourceType(_rSet); 270*cdf0e10cSrcweir // special handling for oracle, this can only happen 271*cdf0e10cSrcweir // if the user enters the same url as used for Oracle and we are on the JDBC path 272*cdf0e10cSrcweir //! TODO 273*cdf0e10cSrcweir //if ( ::dbaccess::DST_ORACLE_JDBC == m_eType ) 274*cdf0e10cSrcweir // m_eType = ::dbaccess::DST_JDBC; 275*cdf0e10cSrcweir 276*cdf0e10cSrcweir OConnectionHelper::implInitControls(_rSet, _bSaveValue); 277*cdf0e10cSrcweir 278*cdf0e10cSrcweir //! TODO 279*cdf0e10cSrcweir //if ( m_eType >= ::dbaccess::DST_USERDEFINE1 ) 280*cdf0e10cSrcweir //{ 281*cdf0e10cSrcweir // String sDisplayName = m_pCollection->getTypeDisplayName(m_eType); 282*cdf0e10cSrcweir // FixedText* ppTextControls[] ={&m_aFT_Connection}; 283*cdf0e10cSrcweir // for (size_t i = 0; i < sizeof(ppTextControls)/sizeof(ppTextControls[0]); ++i) 284*cdf0e10cSrcweir // { 285*cdf0e10cSrcweir // ppTextControls[i]->SetText(sDisplayName); 286*cdf0e10cSrcweir // } 287*cdf0e10cSrcweir //} 288*cdf0e10cSrcweir 289*cdf0e10cSrcweir callModifiedHdl(); 290*cdf0e10cSrcweir } 291*cdf0e10cSrcweir // ----------------------------------------------------------------------- 292*cdf0e10cSrcweir sal_Bool OConnectionTabPageSetup::commitPage( ::svt::WizardTypes::CommitPageReason /*_eReason*/ ) 293*cdf0e10cSrcweir { 294*cdf0e10cSrcweir return commitURL(); 295*cdf0e10cSrcweir } 296*cdf0e10cSrcweir 297*cdf0e10cSrcweir // ----------------------------------------------------------------------- 298*cdf0e10cSrcweir sal_Bool OConnectionTabPageSetup::FillItemSet(SfxItemSet& _rSet) 299*cdf0e10cSrcweir { 300*cdf0e10cSrcweir sal_Bool bChangedSomething = sal_False; 301*cdf0e10cSrcweir fillString(_rSet,&m_aConnectionURL, DSID_CONNECTURL, bChangedSomething); 302*cdf0e10cSrcweir return bChangedSomething; 303*cdf0e10cSrcweir } 304*cdf0e10cSrcweir // ----------------------------------------------------------------------- 305*cdf0e10cSrcweir bool OConnectionTabPageSetup::checkTestConnection() 306*cdf0e10cSrcweir { 307*cdf0e10cSrcweir return !m_aConnectionURL.IsVisible() || (m_aConnectionURL.GetTextNoPrefix().Len() != 0); 308*cdf0e10cSrcweir } 309*cdf0e10cSrcweir 310*cdf0e10cSrcweir // ----------------------------------------------------------------------- 311*cdf0e10cSrcweir IMPL_LINK(OConnectionTabPageSetup, OnEditModified, Edit*, /*_pEdit*/) 312*cdf0e10cSrcweir { 313*cdf0e10cSrcweir SetRoadmapStateValue(checkTestConnection()); 314*cdf0e10cSrcweir callModifiedHdl(); 315*cdf0e10cSrcweir return 0L; 316*cdf0e10cSrcweir } 317*cdf0e10cSrcweir //......................................................................... 318*cdf0e10cSrcweir } // namespace dbaui 319*cdf0e10cSrcweir //......................................................................... 320*cdf0e10cSrcweir 321*cdf0e10cSrcweir 322