1*96de5490SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*96de5490SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*96de5490SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*96de5490SAndrew Rist  * distributed with this work for additional information
6*96de5490SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*96de5490SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*96de5490SAndrew Rist  * "License"); you may not use this file except in compliance
9*96de5490SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*96de5490SAndrew Rist  *
11*96de5490SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*96de5490SAndrew Rist  *
13*96de5490SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*96de5490SAndrew Rist  * software distributed under the License is distributed on an
15*96de5490SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*96de5490SAndrew Rist  * KIND, either express or implied.  See the License for the
17*96de5490SAndrew Rist  * specific language governing permissions and limitations
18*96de5490SAndrew Rist  * under the License.
19*96de5490SAndrew Rist  *
20*96de5490SAndrew Rist  *************************************************************/
21*96de5490SAndrew Rist 
22*96de5490SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_dbaccess.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #ifndef DBAUI_CONNECTIONPAGE_HXX
28cdf0e10cSrcweir #include "ConnectionPage.hxx"
29cdf0e10cSrcweir #endif
30cdf0e10cSrcweir #ifndef DBAUI_CONNECTIONPAGE_HRC
31cdf0e10cSrcweir #include "ConnectionPage.hrc"
32cdf0e10cSrcweir #endif
33cdf0e10cSrcweir #ifndef _DBU_DLG_HRC_
34cdf0e10cSrcweir #include "dbu_dlg.hrc"
35cdf0e10cSrcweir #endif
36cdf0e10cSrcweir #ifndef DBACCESS_DSMETA_HXX
37cdf0e10cSrcweir #include "dsmeta.hxx"
38cdf0e10cSrcweir #endif
39cdf0e10cSrcweir #ifndef _SFXITEMSET_HXX
40cdf0e10cSrcweir #include <svl/itemset.hxx>
41cdf0e10cSrcweir #endif
42cdf0e10cSrcweir #ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX
43cdf0e10cSrcweir #include <unotools/pathoptions.hxx>
44cdf0e10cSrcweir #endif
45cdf0e10cSrcweir #ifndef _SFXSTRITEM_HXX
46cdf0e10cSrcweir #include <svl/stritem.hxx>
47cdf0e10cSrcweir #endif
48cdf0e10cSrcweir #ifndef _SFXENUMITEM_HXX
49cdf0e10cSrcweir #include <svl/eitem.hxx>
50cdf0e10cSrcweir #endif
51cdf0e10cSrcweir #ifndef _SFXINTITEM_HXX
52cdf0e10cSrcweir #include <svl/intitem.hxx>
53cdf0e10cSrcweir #endif
54cdf0e10cSrcweir #ifndef INCLUDED_SVTOOLS_MODULEOPTIONS_HXX
55cdf0e10cSrcweir #include <unotools/moduleoptions.hxx>
56cdf0e10cSrcweir #endif
57cdf0e10cSrcweir #ifndef _DBAUI_DATASOURCEITEMS_HXX_
58cdf0e10cSrcweir #include "dsitems.hxx"
59cdf0e10cSrcweir #endif
60cdf0e10cSrcweir #ifndef _DBA_DBACCESS_HELPID_HRC_
61cdf0e10cSrcweir #include "dbaccess_helpid.hrc"
62cdf0e10cSrcweir #endif
63cdf0e10cSrcweir #ifndef _DBAUI_LOCALRESACCESS_HXX_
64cdf0e10cSrcweir #include "localresaccess.hxx"
65cdf0e10cSrcweir #endif
66cdf0e10cSrcweir #ifndef _OSL_PROCESS_H_
67cdf0e10cSrcweir #include <osl/process.h>
68cdf0e10cSrcweir #endif
69cdf0e10cSrcweir #ifndef _SV_MSGBOX_HXX
70cdf0e10cSrcweir #include <vcl/msgbox.hxx>
71cdf0e10cSrcweir #endif
72cdf0e10cSrcweir #ifndef _FILEDLGHELPER_HXX
73cdf0e10cSrcweir #include <sfx2/filedlghelper.hxx>
74cdf0e10cSrcweir #endif
75cdf0e10cSrcweir #ifndef _DBAUI_DBADMIN_HXX_
76cdf0e10cSrcweir #include "dbadmin.hxx"
77cdf0e10cSrcweir #endif
78cdf0e10cSrcweir #ifndef _COMPHELPER_TYPES_HXX_
79cdf0e10cSrcweir #include <comphelper/types.hxx>
80cdf0e10cSrcweir #endif
81cdf0e10cSrcweir #ifndef _VCL_STDTEXT_HXX
82cdf0e10cSrcweir #include <vcl/stdtext.hxx>
83cdf0e10cSrcweir #endif
84cdf0e10cSrcweir #ifndef _DBAUI_SQLMESSAGE_HXX_
85cdf0e10cSrcweir #include "sqlmessage.hxx"
86cdf0e10cSrcweir #endif
87cdf0e10cSrcweir #ifndef _DBAUI_ODBC_CONFIG_HXX_
88cdf0e10cSrcweir #include "odbcconfig.hxx"
89cdf0e10cSrcweir #endif
90cdf0e10cSrcweir #ifndef _DBAUI_DSSELECT_HXX_
91cdf0e10cSrcweir #include "dsselect.hxx"
92cdf0e10cSrcweir #endif
93cdf0e10cSrcweir #ifndef SVTOOLS_FILENOTATION_HXX_
94cdf0e10cSrcweir #include <svl/filenotation.hxx>
95cdf0e10cSrcweir #endif
96cdf0e10cSrcweir #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC
97cdf0e10cSrcweir #include "dbustrings.hrc"
98cdf0e10cSrcweir #endif
99cdf0e10cSrcweir #ifndef _COM_SUN_STAR_UI_DIALOGS_XFOLDERPICKER_HPP_
100cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFolderPicker.hpp>
101cdf0e10cSrcweir #endif
102cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBC_XROW_HPP_
103cdf0e10cSrcweir #include <com/sun/star/sdbc/XRow.hpp>
104cdf0e10cSrcweir #endif
105cdf0e10cSrcweir #ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_
106cdf0e10cSrcweir #include <com/sun/star/awt/XWindow.hpp>
107cdf0e10cSrcweir #endif
108cdf0e10cSrcweir // #106016# ------------------------------------
109cdf0e10cSrcweir #ifndef _COM_SUN_STAR_TASK_XINTERACTIONHANDLER_HPP_
110cdf0e10cSrcweir #include <com/sun/star/task/XInteractionHandler.hpp>
111cdf0e10cSrcweir #endif
112cdf0e10cSrcweir #ifndef _COM_SUN_STAR_TASK_XPROGRESSHANDLER_HPP_
113cdf0e10cSrcweir #include <com/sun/star/ucb/XProgressHandler.hpp>
114cdf0e10cSrcweir #endif
115cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_
116cdf0e10cSrcweir #include <com/sun/star/sdbc/XConnection.hpp>
117cdf0e10cSrcweir #endif
118cdf0e10cSrcweir #ifndef  _COM_SUN_STAR_UI_DIALOGS_EXTENDEDFILEPICKERELEMENTIDS_HPP_
119cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
120cdf0e10cSrcweir #endif
121cdf0e10cSrcweir #ifndef  _COM_SUN_STAR_UI_DIALOGS_XFILEPICKERCONTROLACCESS_HPP_
122cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
123cdf0e10cSrcweir #endif
124cdf0e10cSrcweir #ifndef  _COM_SUN_STAR_UI_DIALOGS_XFILEPICKER_HPP_
125cdf0e10cSrcweir #include <com/sun/star/ui/dialogs/XFilePicker.hpp>
126cdf0e10cSrcweir #endif
127cdf0e10cSrcweir #ifndef DBAUI_TOOLS_HXX
128cdf0e10cSrcweir #include "UITools.hxx"
129cdf0e10cSrcweir #endif
130cdf0e10cSrcweir #ifndef _UNOTOOLS_LOCALFILEHELPER_HXX
131cdf0e10cSrcweir #include <unotools/localfilehelper.hxx>
132cdf0e10cSrcweir #endif
133cdf0e10cSrcweir #ifndef _UNOTOOLS_UCBHELPER_HXX
134cdf0e10cSrcweir #include <unotools/ucbhelper.hxx>
135cdf0e10cSrcweir #endif
136cdf0e10cSrcweir #ifndef _UCBHELPER_COMMANDENVIRONMENT_HXX
137cdf0e10cSrcweir #include <ucbhelper/commandenvironment.hxx>
138cdf0e10cSrcweir #endif
139cdf0e10cSrcweir #ifndef DBAUI_FILEPICKER_INTERACTION_HXX
140cdf0e10cSrcweir #include "finteraction.hxx"
141cdf0e10cSrcweir #endif
142cdf0e10cSrcweir #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_
143cdf0e10cSrcweir #include <connectivity/CommonTools.hxx>
144cdf0e10cSrcweir #endif
145cdf0e10cSrcweir #ifndef _URLOBJ_HXX
146cdf0e10cSrcweir #include <tools/urlobj.hxx>
147cdf0e10cSrcweir #endif
148cdf0e10cSrcweir #ifndef _SFX_DOCFILT_HACK_HXX
149cdf0e10cSrcweir #include <sfx2/docfilt.hxx>
150cdf0e10cSrcweir #endif
151cdf0e10cSrcweir #include "dsnItem.hxx"
152cdf0e10cSrcweir #if defined(WNT)
153cdf0e10cSrcweir #define _ADO_DATALINK_BROWSE_
154cdf0e10cSrcweir #endif
155cdf0e10cSrcweir 
156cdf0e10cSrcweir #ifdef _ADO_DATALINK_BROWSE_
157cdf0e10cSrcweir #if defined( WNT )
158cdf0e10cSrcweir     #include <tools/prewin.h>
159cdf0e10cSrcweir     #include <windows.h>
160cdf0e10cSrcweir     #include <tools/postwin.h>
161cdf0e10cSrcweir #endif
162cdf0e10cSrcweir #ifndef _SV_SYSDATA_HXX
163cdf0e10cSrcweir #include <vcl/sysdata.hxx>
164cdf0e10cSrcweir #endif
165cdf0e10cSrcweir #ifndef _DBAUI_ADO_DATALINK_HXX_
166cdf0e10cSrcweir #include "adodatalinks.hxx"
167cdf0e10cSrcweir #endif
168cdf0e10cSrcweir #endif //_ADO_DATALINK_BROWSE_
169cdf0e10cSrcweir 
170cdf0e10cSrcweir #include "AutoControls.hrc"
171cdf0e10cSrcweir 
172cdf0e10cSrcweir //.........................................................................
173cdf0e10cSrcweir namespace dbaui
174cdf0e10cSrcweir {
175cdf0e10cSrcweir //.........................................................................
176cdf0e10cSrcweir 	using namespace ::com::sun::star::uno;
177cdf0e10cSrcweir 	using namespace ::com::sun::star::ucb;
178cdf0e10cSrcweir 	using namespace ::com::sun::star::ui::dialogs;
179cdf0e10cSrcweir 	using namespace ::com::sun::star::sdbc;
180cdf0e10cSrcweir 	using namespace ::com::sun::star::beans;
181cdf0e10cSrcweir 	using namespace ::com::sun::star::lang;
182cdf0e10cSrcweir 	using namespace ::com::sun::star::container;
183cdf0e10cSrcweir 	using namespace ::dbtools;
184cdf0e10cSrcweir 	using namespace ::svt;
185cdf0e10cSrcweir 
Create(Window * pParent,const SfxItemSet & _rAttrSet)186cdf0e10cSrcweir 	SfxTabPage*	OConnectionTabPage::Create( Window* pParent,	const SfxItemSet& _rAttrSet )
187cdf0e10cSrcweir 	{
188cdf0e10cSrcweir 		return ( new OConnectionTabPage( pParent, _rAttrSet ) );
189cdf0e10cSrcweir 	}
190cdf0e10cSrcweir 	//========================================================================
191cdf0e10cSrcweir 	//= OConnectionTabPage
192cdf0e10cSrcweir 	//========================================================================
DBG_NAME(OConnectionTabPage)193cdf0e10cSrcweir 	DBG_NAME(OConnectionTabPage)
194cdf0e10cSrcweir 	OConnectionTabPage::OConnectionTabPage(Window* pParent, const SfxItemSet& _rCoreAttrs)
195cdf0e10cSrcweir         :OConnectionHelper(pParent, ModuleRes(PAGE_CONNECTION), _rCoreAttrs)
196cdf0e10cSrcweir 		,m_bUserGrabFocus(sal_True)
197cdf0e10cSrcweir 		,m_aFL1(this, ModuleRes(FL_SEPARATOR1))
198cdf0e10cSrcweir 		,m_aFL2(this, ModuleRes(FL_SEPARATOR2))
199cdf0e10cSrcweir 		,m_aUserNameLabel(this, ModuleRes(FT_USERNAME))
200cdf0e10cSrcweir 		,m_aUserName(this, ModuleRes(ET_USERNAME))
201cdf0e10cSrcweir 		,m_aPasswordRequired(this, ModuleRes(CB_PASSWORD_REQUIRED))
202cdf0e10cSrcweir 		,m_aFL3(this, ModuleRes(FL_SEPARATOR3))
203cdf0e10cSrcweir 		,m_aJavaDriverLabel(this, ModuleRes(FT_JDBCDRIVERCLASS))
204cdf0e10cSrcweir 		,m_aJavaDriver(this, ModuleRes(ET_JDBCDRIVERCLASS))
205cdf0e10cSrcweir 		,m_aTestJavaDriver(this, ModuleRes(PB_TESTDRIVERCLASS))
206cdf0e10cSrcweir 		,m_aTestConnection(this, ModuleRes(PB_TESTCONNECTION))
207cdf0e10cSrcweir 	{
208cdf0e10cSrcweir 		DBG_CTOR(OConnectionTabPage,NULL);
209cdf0e10cSrcweir 		m_aConnectionURL.SetModifyHdl(LINK(this, OConnectionTabPage, OnEditModified));
210cdf0e10cSrcweir 		m_aJavaDriver.SetModifyHdl(getControlModifiedLink());
211cdf0e10cSrcweir 		m_aJavaDriver.SetModifyHdl(LINK(this, OConnectionTabPage, OnEditModified));
212cdf0e10cSrcweir 		m_aUserName.SetModifyHdl(getControlModifiedLink());
213cdf0e10cSrcweir 		m_aPasswordRequired.SetClickHdl(getControlModifiedLink());
214cdf0e10cSrcweir 
215cdf0e10cSrcweir 		m_aTestConnection.SetClickHdl(LINK(this,OGenericAdministrationPage,OnTestConnectionClickHdl));
216cdf0e10cSrcweir 		m_aTestJavaDriver.SetClickHdl(LINK(this,OConnectionTabPage,OnTestJavaClickHdl));
217cdf0e10cSrcweir 
218cdf0e10cSrcweir 		FreeResource();
219cdf0e10cSrcweir 
220cdf0e10cSrcweir         LayoutHelper::fitSizeRightAligned( m_aTestConnection );
221cdf0e10cSrcweir 	}
222cdf0e10cSrcweir 
223cdf0e10cSrcweir 	// -----------------------------------------------------------------------
~OConnectionTabPage()224cdf0e10cSrcweir 	OConnectionTabPage::~OConnectionTabPage()
225cdf0e10cSrcweir 	{
226cdf0e10cSrcweir 		DBG_DTOR(OConnectionTabPage,NULL);
227cdf0e10cSrcweir 	}
228cdf0e10cSrcweir 
229cdf0e10cSrcweir     // -----------------------------------------------------------------------
implInitControls(const SfxItemSet & _rSet,sal_Bool _bSaveValue)230cdf0e10cSrcweir 	void OConnectionTabPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
231cdf0e10cSrcweir 	{
232cdf0e10cSrcweir 		// check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
233cdf0e10cSrcweir 		sal_Bool bValid, bReadonly;
234cdf0e10cSrcweir 		getFlags(_rSet, bValid, bReadonly);
235cdf0e10cSrcweir 
236cdf0e10cSrcweir         m_eType = m_pAdminDialog->getDatasourceType(_rSet);
237cdf0e10cSrcweir         OConnectionHelper::implInitControls( _rSet, _bSaveValue);
238cdf0e10cSrcweir 
239cdf0e10cSrcweir 		LocalResourceAccess aLocRes( PAGE_CONNECTION, RSC_TABPAGE );
240cdf0e10cSrcweir         ::dbaccess::DATASOURCE_TYPE eType = m_pCollection->determineType(m_eType);
241cdf0e10cSrcweir 		switch( eType )
242cdf0e10cSrcweir 		{
243cdf0e10cSrcweir 			case  ::dbaccess::DST_DBASE:
244cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_DBASE_PATH_OR_FILE)));
245cdf0e10cSrcweir 				m_aConnectionURL.SetHelpId(HID_DSADMIN_DBASE_PATH);
246cdf0e10cSrcweir 				break;
247cdf0e10cSrcweir 			case  ::dbaccess::DST_FLAT:
248cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_FLAT_PATH_OR_FILE)));
249cdf0e10cSrcweir 				m_aConnectionURL.SetHelpId(HID_DSADMIN_FLAT_PATH);
250cdf0e10cSrcweir 				break;
251cdf0e10cSrcweir 			case  ::dbaccess::DST_CALC:
252cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_CALC_PATH_OR_FILE)));
253cdf0e10cSrcweir 				m_aConnectionURL.SetHelpId(HID_DSADMIN_CALC_PATH);
254cdf0e10cSrcweir 				break;
255cdf0e10cSrcweir 			case  ::dbaccess::DST_ADABAS:
256cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_ADABAS_DATABASE_NAME)));
257cdf0e10cSrcweir 				m_aConnectionURL.SetHelpId(HID_DSADMIN_ADABAS_DATABASE);
258cdf0e10cSrcweir 				break;
259cdf0e10cSrcweir 			case  ::dbaccess::DST_ADO:
260cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_COMMONURL)));
261cdf0e10cSrcweir 				break;
262cdf0e10cSrcweir 			case  ::dbaccess::DST_MSACCESS:
263cdf0e10cSrcweir             case  ::dbaccess::DST_MSACCESS_2007:
264cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_MSACCESS_MDB_FILE)));
265cdf0e10cSrcweir 				m_aConnectionURL.SetHelpId(HID_DSADMIN_MSACCESS_MDB_FILE);
266cdf0e10cSrcweir 				break;
267cdf0e10cSrcweir             case  ::dbaccess::DST_MYSQL_NATIVE:
268cdf0e10cSrcweir 			case  ::dbaccess::DST_MYSQL_JDBC:
269cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_MYSQL_DATABASE_NAME)));
270cdf0e10cSrcweir                 m_aConnectionURL.SetHelpId( HID_DSADMIN_MYSQL_DATABASE );
271cdf0e10cSrcweir 				break;
272cdf0e10cSrcweir 			case  ::dbaccess::DST_ORACLE_JDBC:
273cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_ORACLE_DATABASE_NAME)));
274cdf0e10cSrcweir 				m_aConnectionURL.SetHelpId(HID_DSADMIN_ORACLE_DATABASE);
275cdf0e10cSrcweir 				break;
276cdf0e10cSrcweir 			case  ::dbaccess::DST_MYSQL_ODBC:
277cdf0e10cSrcweir 			case  ::dbaccess::DST_ODBC:
278cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_NAME_OF_ODBC_DATASOURCE)));
279cdf0e10cSrcweir 				m_aConnectionURL.SetHelpId( eType ==  ::dbaccess::DST_MYSQL_ODBC ? HID_DSADMIN_MYSQL_ODBC_DATASOURCE : HID_DSADMIN_ODBC_DATASOURCE);
280cdf0e10cSrcweir 				break;
281cdf0e10cSrcweir 			case  ::dbaccess::DST_LDAP:
282cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_HOSTNAME)));
283cdf0e10cSrcweir 				m_aConnectionURL.SetHelpId( HID_DSADMIN_LDAP_HOSTNAME );
284cdf0e10cSrcweir 				break;
285cdf0e10cSrcweir 			case  ::dbaccess::DST_MOZILLA:
286cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_MOZILLA_PROFILE_NAME)));
287cdf0e10cSrcweir 				m_aConnectionURL.SetHelpId( HID_DSADMIN_MOZILLA_PROFILE_NAME );
288cdf0e10cSrcweir 				break;
289cdf0e10cSrcweir 			case  ::dbaccess::DST_THUNDERBIRD:
290cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_THUNDERBIRD_PROFILE_NAME)));
291cdf0e10cSrcweir 				m_aConnectionURL.SetHelpId( HID_DSADMIN_THUNDERBIRD_PROFILE_NAME );
292cdf0e10cSrcweir 				break;
293cdf0e10cSrcweir 			case  ::dbaccess::DST_OUTLOOK:
294cdf0e10cSrcweir 			case  ::dbaccess::DST_OUTLOOKEXP:
295cdf0e10cSrcweir 			case  ::dbaccess::DST_EVOLUTION:
296cdf0e10cSrcweir 			case  ::dbaccess::DST_EVOLUTION_GROUPWISE:
297cdf0e10cSrcweir 			case  ::dbaccess::DST_EVOLUTION_LDAP:
298cdf0e10cSrcweir 			case  ::dbaccess::DST_KAB:
299cdf0e10cSrcweir 			case  ::dbaccess::DST_MACAB:
300cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_NO_ADDITIONAL_SETTINGS)));
301cdf0e10cSrcweir 				{
302cdf0e10cSrcweir 					String sText = m_aFT_Connection.GetText();
303cdf0e10cSrcweir 					sText.SearchAndReplaceAscii("%test",m_aTestConnection.GetText());
304cdf0e10cSrcweir 					String sTemp;
305cdf0e10cSrcweir 					sText.SearchAndReplaceAscii("~",sTemp);
306cdf0e10cSrcweir 					m_aFT_Connection.SetText(sText);
307cdf0e10cSrcweir 				}
308cdf0e10cSrcweir 				m_aConnectionURL.Hide();
309cdf0e10cSrcweir 				break;
310cdf0e10cSrcweir 			case  ::dbaccess::DST_JDBC:
311cdf0e10cSrcweir 			default:
312cdf0e10cSrcweir                 m_aFT_Connection.SetText(String(ModuleRes(STR_COMMONURL)));
313cdf0e10cSrcweir 				break;
314cdf0e10cSrcweir 		}
315cdf0e10cSrcweir 
316cdf0e10cSrcweir         ;
317cdf0e10cSrcweir         AuthenticationMode eAuthMode( DataSourceMetaData::getAuthentication( m_eType ) );
318cdf0e10cSrcweir         bool bShowUserAuthenfication = ( eAuthMode != AuthNone );
319cdf0e10cSrcweir         bool bShowUser = ( eAuthMode == AuthUserPwd );
320cdf0e10cSrcweir 
321cdf0e10cSrcweir         m_aPB_Connection.SetHelpId(HID_DSADMIN_BROWSECONN);
322cdf0e10cSrcweir 		m_aFL2.Show( bShowUserAuthenfication );
323cdf0e10cSrcweir 		m_aUserNameLabel.Show( bShowUser && bShowUserAuthenfication );
324cdf0e10cSrcweir 		m_aUserName.Show( bShowUser && bShowUserAuthenfication );
325cdf0e10cSrcweir 		m_aPasswordRequired.Show( bShowUserAuthenfication );
326cdf0e10cSrcweir         if ( !bShowUser && bShowUserAuthenfication )
327cdf0e10cSrcweir             m_aPasswordRequired.SetPosPixel(m_aUserNameLabel.GetPosPixel());
328cdf0e10cSrcweir 
329cdf0e10cSrcweir 		// collect the items
330cdf0e10cSrcweir 		SFX_ITEMSET_GET(_rSet, pUidItem, SfxStringItem, DSID_USER, sal_True);
331cdf0e10cSrcweir 
332cdf0e10cSrcweir 		SFX_ITEMSET_GET(_rSet, pJdbcDrvItem, SfxStringItem, DSID_JDBCDRIVERCLASS, sal_True);
333cdf0e10cSrcweir 		SFX_ITEMSET_GET(_rSet, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True);
334cdf0e10cSrcweir 		SFX_ITEMSET_GET(_rSet, pAllowEmptyPwd, SfxBoolItem, DSID_PASSWORDREQUIRED, sal_True);
335cdf0e10cSrcweir 
336cdf0e10cSrcweir 		// forward the values to the controls
337cdf0e10cSrcweir 		if ( bValid )
338cdf0e10cSrcweir 		{
339cdf0e10cSrcweir 			m_aUserName.SetText(pUidItem->GetValue());
340cdf0e10cSrcweir 			m_aPasswordRequired.Check(pAllowEmptyPwd->GetValue());
341cdf0e10cSrcweir 
342cdf0e10cSrcweir 			String sUrl = pUrlItem->GetValue();
343cdf0e10cSrcweir 			setURL( sUrl );
344cdf0e10cSrcweir 
345cdf0e10cSrcweir             const sal_Bool bEnableJDBC = m_pCollection->determineType(m_eType) == ::dbaccess::DST_JDBC;
346cdf0e10cSrcweir             if ( !pJdbcDrvItem->GetValue().Len() )
347cdf0e10cSrcweir             {
348cdf0e10cSrcweir                 String sDefaultJdbcDriverName = m_pCollection->getJavaDriverClass(m_eType);
349cdf0e10cSrcweir                 if ( sDefaultJdbcDriverName.Len() )
350cdf0e10cSrcweir                 {
351cdf0e10cSrcweir                     m_aJavaDriver.SetText(sDefaultJdbcDriverName);
352cdf0e10cSrcweir 			        m_aJavaDriver.SetModifyFlag();
353cdf0e10cSrcweir                 }
354cdf0e10cSrcweir             } // if ( !pJdbcDrvItem->GetValue().Len() )
355cdf0e10cSrcweir             else
356cdf0e10cSrcweir 			    m_aJavaDriver.SetText(pJdbcDrvItem->GetValue());
357cdf0e10cSrcweir 
358cdf0e10cSrcweir 			m_aJavaDriverLabel.Show(bEnableJDBC);
359cdf0e10cSrcweir 			m_aJavaDriver.Show(bEnableJDBC);
360cdf0e10cSrcweir 			m_aTestJavaDriver.Show(bEnableJDBC);
361cdf0e10cSrcweir 			m_aTestJavaDriver.Enable( m_aJavaDriver.GetText().Len() != 0);
362cdf0e10cSrcweir 			m_aFL3.Show(bEnableJDBC);
363cdf0e10cSrcweir 
364cdf0e10cSrcweir 			checkTestConnection();
365cdf0e10cSrcweir 
366cdf0e10cSrcweir 			m_aUserName.ClearModifyFlag();
367cdf0e10cSrcweir 			m_aConnectionURL.ClearModifyFlag();
368cdf0e10cSrcweir 			m_aJavaDriver.ClearModifyFlag();
369cdf0e10cSrcweir 		}
370cdf0e10cSrcweir 	}
371cdf0e10cSrcweir 	// -----------------------------------------------------------------------
fillWindows(::std::vector<ISaveValueWrapper * > & _rControlList)372cdf0e10cSrcweir 	void OConnectionTabPage::fillWindows(::std::vector< ISaveValueWrapper* >& _rControlList)
373cdf0e10cSrcweir 	{
374cdf0e10cSrcweir 		_rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL1));
375cdf0e10cSrcweir 
376cdf0e10cSrcweir 		_rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL2));
377cdf0e10cSrcweir 		_rControlList.push_back(new ODisableWrapper<FixedText>(&m_aJavaDriverLabel));
378cdf0e10cSrcweir 		_rControlList.push_back(new ODisableWrapper<PushButton>(&m_aTestJavaDriver));
379cdf0e10cSrcweir 
380cdf0e10cSrcweir 		_rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aFL3));
381cdf0e10cSrcweir 		_rControlList.push_back(new ODisableWrapper<FixedText>(&m_aUserNameLabel));
382cdf0e10cSrcweir 		_rControlList.push_back(new ODisableWrapper<PushButton>(&m_aTestConnection));
383cdf0e10cSrcweir         OConnectionHelper::fillWindows(_rControlList);
384cdf0e10cSrcweir 
385cdf0e10cSrcweir 	}
386cdf0e10cSrcweir 	// -----------------------------------------------------------------------
fillControls(::std::vector<ISaveValueWrapper * > & _rControlList)387cdf0e10cSrcweir 	void OConnectionTabPage::fillControls(::std::vector< ISaveValueWrapper* >& _rControlList)
388cdf0e10cSrcweir 	{
389cdf0e10cSrcweir 		_rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aJavaDriver));
390cdf0e10cSrcweir 		_rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aUserName));
391cdf0e10cSrcweir 		_rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aPasswordRequired));
392cdf0e10cSrcweir         OConnectionHelper::fillControls(_rControlList);
393cdf0e10cSrcweir 	}
394cdf0e10cSrcweir 
395cdf0e10cSrcweir 	// -----------------------------------------------------------------------
FillItemSet(SfxItemSet & _rSet)396cdf0e10cSrcweir 	sal_Bool OConnectionTabPage::FillItemSet(SfxItemSet& _rSet)
397cdf0e10cSrcweir 	{
398cdf0e10cSrcweir 		sal_Bool bChangedSomething = sal_False;
399cdf0e10cSrcweir 
400cdf0e10cSrcweir 		if (m_aUserName.GetText() != m_aUserName.GetSavedValue())
401cdf0e10cSrcweir 		{
402cdf0e10cSrcweir 			_rSet.Put(SfxStringItem(DSID_USER, m_aUserName.GetText()));
403cdf0e10cSrcweir 			_rSet.Put(SfxStringItem(DSID_PASSWORD, String()));
404cdf0e10cSrcweir 			bChangedSomething = sal_True;
405cdf0e10cSrcweir 		}
406cdf0e10cSrcweir 
407cdf0e10cSrcweir 		fillBool(_rSet,&m_aPasswordRequired,DSID_PASSWORDREQUIRED,bChangedSomething);
408cdf0e10cSrcweir 
409cdf0e10cSrcweir 		if ( m_pCollection->determineType(m_eType) ==  ::dbaccess::DST_JDBC )
410cdf0e10cSrcweir 		{
411cdf0e10cSrcweir 			fillString(_rSet,&m_aJavaDriver, DSID_JDBCDRIVERCLASS, bChangedSomething);
412cdf0e10cSrcweir 		}
413cdf0e10cSrcweir 
414cdf0e10cSrcweir 		fillString(_rSet,&m_aConnectionURL, DSID_CONNECTURL, bChangedSomething);
415cdf0e10cSrcweir 
416cdf0e10cSrcweir 		return bChangedSomething;
417cdf0e10cSrcweir 	}
418cdf0e10cSrcweir 	// -----------------------------------------------------------------------
419cdf0e10cSrcweir 	IMPL_LINK(OConnectionTabPage, OnTestJavaClickHdl, PushButton*, /*_pButton*/)
420cdf0e10cSrcweir 	{
421cdf0e10cSrcweir 		OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF");
422cdf0e10cSrcweir 		sal_Bool bSuccess = sal_False;
423cdf0e10cSrcweir 		try
424cdf0e10cSrcweir 		{
425cdf0e10cSrcweir 			if ( m_aJavaDriver.GetText().Len() )
426cdf0e10cSrcweir 			{
427cdf0e10cSrcweir 				::rtl::Reference< jvmaccess::VirtualMachine > xJVM = ::connectivity::getJavaVM(m_pAdminDialog->getORB());
428cdf0e10cSrcweir 				bSuccess = ::connectivity::existsJavaClassByName(xJVM,m_aJavaDriver.GetText());
429cdf0e10cSrcweir 			}
430cdf0e10cSrcweir 		}
431cdf0e10cSrcweir 		catch(Exception&)
432cdf0e10cSrcweir 		{
433cdf0e10cSrcweir 		}
434cdf0e10cSrcweir 
435cdf0e10cSrcweir 		sal_uInt16 nMessage = bSuccess ? STR_JDBCDRIVER_SUCCESS : STR_JDBCDRIVER_NO_SUCCESS;
436cdf0e10cSrcweir 		OSQLMessageBox aMsg( this, String( ModuleRes( nMessage ) ), String() );
437cdf0e10cSrcweir 		aMsg.Execute();
438cdf0e10cSrcweir 		return 0L;
439cdf0e10cSrcweir 	}
440cdf0e10cSrcweir 	// -----------------------------------------------------------------------
checkTestConnection()441cdf0e10cSrcweir 	bool OConnectionTabPage::checkTestConnection()
442cdf0e10cSrcweir 	{
443cdf0e10cSrcweir 		OSL_ENSURE(m_pAdminDialog,"No Admin dialog set! ->GPF");
444cdf0e10cSrcweir 		sal_Bool bEnableTestConnection = !m_aConnectionURL.IsVisible() || (m_aConnectionURL.GetTextNoPrefix().Len() != 0);
445cdf0e10cSrcweir 		if ( m_pCollection->determineType(m_eType) ==  ::dbaccess::DST_JDBC )
446cdf0e10cSrcweir 			bEnableTestConnection = bEnableTestConnection && (m_aJavaDriver.GetText().Len() != 0);
447cdf0e10cSrcweir 		m_aTestConnection.Enable(bEnableTestConnection);
448cdf0e10cSrcweir         return true;
449cdf0e10cSrcweir 	}
450cdf0e10cSrcweir 	// -----------------------------------------------------------------------
IMPL_LINK(OConnectionTabPage,OnEditModified,Edit *,_pEdit)451cdf0e10cSrcweir 	IMPL_LINK(OConnectionTabPage, OnEditModified, Edit*, _pEdit)
452cdf0e10cSrcweir 	{
453cdf0e10cSrcweir 		if ( _pEdit == &m_aJavaDriver )
454cdf0e10cSrcweir 			m_aTestJavaDriver.Enable( m_aJavaDriver.GetText().Len() != 0 );
455cdf0e10cSrcweir 
456cdf0e10cSrcweir 		checkTestConnection();
457cdf0e10cSrcweir 		// tell the listener we were modified
458cdf0e10cSrcweir 		callModifiedHdl();
459cdf0e10cSrcweir 		return 0L;
460cdf0e10cSrcweir 	}
461cdf0e10cSrcweir //.........................................................................
462cdf0e10cSrcweir }	// namespace dbaui
463cdf0e10cSrcweir //.........................................................................
464cdf0e10cSrcweir 
465